usermod命令

usermod 是 Linux 中用于修改用户账号属性的命令。通过 usermod可以修改用户的基本信息,如用户名、用户ID、主目录、用户组、登录shell等。

usermod 命令的基本语法

usermod [选项] 用户名
  • 选项:用于指定修改的内容。
  • 用户名:要修改的现有用户账号名称。

常用选项

  • -l:修改用户名。
  • -d:修改用户的主目录。
  • -m:配合 -d 一起使用,将用户的主目录移动到新位置。
  • -c:修改用户的描述信息。
  • -s:修改用户的登录 shell。
  • -L:锁定用户账号(禁用登录)。
  • -U:解锁用户账号(启用登录)。
  • -u:修改用户ID (UID)。
  • -g:修改用户的主组。
  • -G:修改用户的附加组(secondary group)。
  • -aG:将用户添加到新的附加组,不会移除其已属于的附加组。

usermod 命令示例

1. 修改用户名

将用户名 oldname 修改为 newname

usermod -l newname oldname

注意:修改用户名不会自动修改用户的主目录名称,需要手动处理。

2. 修改用户的主目录

假设要将用户 bob 的主目录从 /home/bob 改为 /home/newbob

usermod -d /home/newbob bob

此命令只是修改用户主目录的路径,并不会移动现有的文件。如果想移动主目录中的所有文件,可以加上 -m 选项:

usermod -d /home/newbob -m bob

此命令会同时移动原来的 /home/bob 目录到 /home/newbob

3. 修改用户的登录 shell

将用户 bob 的登录 shell 修改为 /bin/bash

usermod -s /bin/bash bob

可以用 chsh 命令查看系统中可用的 shell:

chsh --list-shells

4. 修改用户的 UID

将用户 bob 的用户ID(UID)修改为 2001:

usermod -u 2001 bob

修改 UID 可能会导致用户对现有文件的访问问题,因此修改后需要确保文件权限也更新。

5. 修改用户的主组

将用户 bob 的主组修改为 developers

usermod -g developers bob

此命令将 bob 的主组更改为 developers

6. 将用户添加到附加组

将用户 bob 添加到 sudo 组,以授予 sudo 权限:

usermod -aG sudo bob

-aG 表示将用户追加到一个附加组,如果没有 -a,则现有的附加组将被替换。

这个命令经常会用到

7. 锁定用户账号

锁定用户 bob 的账号,使其无法登录:

usermod -L bob

8. 解锁用户账号

解锁用户 bob 的账号:

usermod -U bob

9. 修改用户的描述信息

将用户 bob 的描述修改为 “Bob the Developer”:

usermod -c "Bob the Developer" bob

10. 修改用户的过期日期

设置用户 bob 的账号过期日期为 2024 年 12 月 31 日:

usermod -e 2024-12-31 bob

11. 移除用户的过期日期

移除用户 bob 的账号过期日期,使其永不过期:

usermod -e "" bob