@[toc]
01. 命令概述
使用useradd添加的用户,如果不小心添加错了用户信息该如何修改呢?
这时候就会用到usermod 命令
usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。
这里一定要分清 useradd 命令和 usermod 命令的区别,前者用于添加用户,当然,添加用户时可以对用户信息进行定制;后者针对与已存在的用户,使用该命令可以修改它们的信息。
02. 命令格式
用法:usermod [参数] 用户名
usermod的参数和useradd的参数大同小异,这里我们可以使用 usermod --help来查看常用的命令参数选项:
03. 常用选项
[root@mufenggrow ~]# usermod --help
用法:usermod [选项] 登录
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
从上面的执行代码中可以看到,有很多参数与usermod相同,比如 -g 参数,指的是更换新的熟组。
04. 参考示例
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天
05. 附录
linux系统基本功命令实战汇总参考链接:linux基本功之命令篇系列博文汇总