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
命令示例将用户名 oldname
修改为 newname
:
usermod -l newname oldname
注意:修改用户名不会自动修改用户的主目录名称,需要手动处理。
假设要将用户 bob
的主目录从 /home/bob
改为 /home/newbob
:
usermod -d /home/newbob bob
此命令只是修改用户主目录的路径,并不会移动现有的文件。如果想移动主目录中的所有文件,可以加上 -m
选项:
usermod -d /home/newbob -m bob
此命令会同时移动原来的 /home/bob
目录到 /home/newbob
。
将用户 bob
的登录 shell 修改为 /bin/bash
:
usermod -s /bin/bash bob
可以用 chsh
命令查看系统中可用的 shell:
chsh --list-shells
将用户 bob
的用户ID(UID)修改为 2001:
usermod -u 2001 bob
修改 UID 可能会导致用户对现有文件的访问问题,因此修改后需要确保文件权限也更新。
将用户 bob
的主组修改为 developers
:
usermod -g developers bob
此命令将 bob
的主组更改为 developers
。
将用户 bob
添加到 sudo
组,以授予 sudo 权限:
usermod -aG sudo bob
-aG
表示将用户追加到一个附加组,如果没有 -a
,则现有的附加组将被替换。
这个命令经常会用到
锁定用户 bob
的账号,使其无法登录:
usermod -L bob
解锁用户 bob
的账号:
usermod -U bob
将用户 bob
的描述修改为 “Bob the Developer”:
usermod -c "Bob the Developer" bob
设置用户 bob
的账号过期日期为 2024 年 12 月 31 日:
usermod -e 2024-12-31 bob
移除用户 bob
的账号过期日期,使其永不过期:
usermod -e "" bob