Linux基本功系列之usermod命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本功系列之usermod命令相关的知识,希望对你有一定的参考价值。

1. 命令概述

使用useradd添加的用户,如果不小心添加错了用户信息该如何修改呢?

这时候就会用到usermod 命令

usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。

这里一定要分清 useradd 命令和 usermod 命令的区别,前者用于添加用户,当然,添加用户时可以对用户信息进行定制;后者针对与已存在的用户,使用该命令可以修改它们的信息。

2. 命令格式

用法:usermod [参数] 用户名

usermod的参数和useradd的参数大同小异,这里我们可以使用 usermod --help来查看常用的命令参数选项:

3.常用选项

[root@doc ~]# usermod --help

Linux基本功系列之usermod命令_用户名

从上面的执行代码中可以看到,有很多参数与usermod相同,比如 -g 参数,指的是更换新的熟组。

4. 参考示例

4.1 修改用户的UID

## 创建测试用户
[root@mufenggrow ~]# useradd oracle
[root@mufenggrow ~]# id oracle
uid=1002(oracle) gid=1002(oracle) 组=1002(oracle)
## 修改用户的UID
[root@mufenggrow ~]# usermod -u 1111 oracle
[root@mufenggrow ~]# id oracle
uid=1111(oracle) gid=1002(oracle) 组=1002(oracle)
[root@mufenggrow ~]#

4.2 修改shell

## 查看oracle用户原来的shell
[root@mufenggrow ~]# grep oracle /etc/passwd
oracle:x:1111:1002::/home/oracle:/bin/bash
## 修改shell
[root@mufenggrow ~]# usermod -s /sbin/nologin oracle
[root@mufenggrow ~]# !grep
grep oracle /etc/passwd
oracle:x:1111:1002::/home/oracle:/sbin/nologin

4.3 更改用户主目录

## 先登录到用户家目录创建一个文件便于测试
[root@mufenggrow ~]# cd /home/oracle/
[root@mufenggrow oracle]# touch a.txt
## 可以看到刚刚创建的文件
[root@mufenggrow oracle]# ll
总用量 0
-rw-r--r--. 1 root root 0 1月 18 20:03 a.txt
## 使用-d参数移动家目录
[root@mufenggrow oracle]# usermod -m -d /tmp/mufeng oracle
[root@mufenggrow oracle]# cd /tmp/mufeng
## 可以看到家目录已经移动过来了
[root@mufenggrow mufeng]# ls
a.txt

这里的 -m选项会自动创建新目录并且移到内容到新目录里面

4.4 添加说明信息

## 查看没有添加之前的信息
[root@mufenggrow mufeng]# grep oracle /etc/passwd
oracle:x:1111:1002::/tmp/mufeng:/sbin/nologin
## 使用-c参数添加
[root@mufenggrow mufeng]# usermod -c "i am mufeng" oracle
## 查看添加之后的信息
[root@mufenggrow mufeng]# grep oracle /etc/passwd
oracle:x:1111:1002:i am mufeng:/tmp/mufeng:/sbin/nologin

4.5 修改用户名为zhangsan

[root@mufenggrow mufeng]# usermod -l zhangsan oracle
[root@mufenggrow mufeng]# id zhangsan
uid=1111(zhangsan) gid=1002(oracle) 组=1002(oracle)
# 可以看到原来的用户没有了
[root@mufenggrow mufeng]# id oracle
id: oracle: no such user

此处需要注意,把oracle 改为zhangsan

语法为:

usermod -l 新用户 要修改的用户名

4.6 锁定用户mufeng

[root@mufenggrow mufeng]# usermod -L mufeng

4.7 解锁用户mufeng

[root@mufenggrow mufeng]# usermod -U mufeng

4.8 添加新的附加组

[root@mufenggrow mufeng]# usermod -U root mufeng

4.9 指定帐号过期日期

[root@mufenggrow mufeng]# usermod -e 2023/11/11 mufeng

## 查看过期时间
[root@mufenggrow mufeng]# chage -l mufeng
最近一次密码修改时间 :1月 18, 2023
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :11月 11, 2023
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

4.10 指定用户帐号密码过期多少天后,禁用该帐号

## 先查看lisi用户的账号信息
[root@mufenggrow mufeng]# sed -n $p /etc/shadow
lisi:!!:19375:0:99999:7:::
## 使用 -f餐宿进行修改
[root@mufenggrow mufeng]# usermod -f 30 lisi
[root@mufenggrow mufeng]# !sed
sed -n $p /etc/shadow
lisi:!!:19375:0:99999:7:30::

可以看到实效的时间已经变成了30天

Linux命令之修改用户账户usermod

概述

usermod 命令可用于修改用户账号相关信息。

语法

该命令的语法如下:

usermod [选项] [参数]

该命令支持的选项有:

选项说明
-c <备注>修改用户账号的备注文字
-d <家目录>修改用户的家目录
-e <有效期限>修改账号的有效期限
-f <缓冲天数>修改在密码过期后多少天即关闭该账号
-g <群组>修改用户所属的群组,组必须存在
-G <附加群组>修改用户所属的附加群组
-l <账号名称>修改用户账号名称
-L锁定用户密码,使密码无效
-s <shell>修改用户登入后所使用的shell
-u <uid>修改用户id
-U解除密码锁定

使用

将用户加入到用户组【★★★★★】

可以将用户加入到指定用户组,指定用户组必须存在。语法如下:

# 语法
usermod -g 用户组名 用户名
# 示例,将 zhangsan 用户加入到 root 用户组
usermod -g root zhangsan

修改用户的家目录

修改用户家目录的语法如下:

# 语法
usermod -d 新家目录 用户名
# 示例,修改 zhangsan 用户的家目录为 /zhangsan-home
usermod -d /zhangsan-home zhangsan

修改用户名

可以修改用户名,语法如下:

# 语法
usermod -l 新用户名 旧用户名
# 示例,修改原用户名 zhangsan 为新用户名 zs
usermod -l zs zhangsan

以上是关于Linux基本功系列之usermod命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之——usermod

Linux命令之修改用户账户usermod

Linux常用命令之--useradd,userdel,usermod,groupadd,groupdel,groupmod,gpasswd

linux-10 基本命令之查看内存使用情况- free,history,who,last

linux系统命令学习系列-用户组管理

linux系统命令学习系列-用户组管理