一、命令简介
usermod
命令用于修改用户账号的属性,例如更改用户的家目录、登录 shell、用户 ID(UID)、所属组等。
二、命令参数
基本用法
usermod [选项] 用户名
常用选项
-
-c, --comment COMMENT
:修改用户账户的注释信息(通常称为 GECOS 字段)。 -
-d, --home HOME_DIR
:修改用户的家目录。 -
-e, --expiredate EXPIRE_DATE
:设置账户的过期日期,格式为 YYYY-MM-DD。 -
-f, --inactive INACTIVE
:设置账户密码过期后到账户被禁用前的天数。 -
-g, --gid GROUP
:修改用户的基本组(主组)。 -
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]
:修改用户附加组,原来的附加组会被覆盖。 -
-l, --login NEW_LOGIN
:修改用户账户的登录名。 -
-L, --lock
:锁定用户账户,使其无法登录。 -
-m, --move-home
:与-d
选项一起使用,将用户家目录的内容移动到新的位置。 -
-p, --password PASSWORD
:设置用户账户的加密密码。 -
-s, --shell SHELL
:修改用户的登录 shell。 -
-u, --uid UID
:修改用户的用户 ID。 -
-U, --unlock
:解锁用户账户。
三、命令示例
tips:usermod
命令需 sudo
权限运行
修改用户
john
的家目录到/home/newjohn
:usermod -d /home/newjohn john
将用户
john
添加到组docker
:usermod -aG docker john
注意:使用
-aG
而不是-G
可以保留用户原来的附加组。将用户
john
从组docker
中删除使用命令完成
gpasswd -d john docker
或者编辑 /etc/group 文件,找到 docker 组所在的行(如下),删除
,john
docker:x:999:soulio,john
修改用户
john
的用户 ID 为 2000:usermod -u 2000 john
锁定用户
john
的账户:锁定用户:禁止用户通过密码登录。
usermod -L john
解锁用户
john
的账户:usermod -U john
修改用户
john
的默认 shell 为zsh
:usermod -s /bin/zsh john
在使用 usermod
命令修改用户账户时,需要注意以下几点:
- 修改用户 ID(UID)或组 ID(GID)时,需要确保新的 ID 没有被其他账户使用。
- 修改家目录时,如果需要将现有数据移动到新位置,应使用
-m
选项。 - 设置或更改密码时,应使用加密后的密码字符串,可以通过
openssl
命令或passwd
命令的--stdin
选项生成。 - 在企业或生产环境中修改用户账户之前,建议先备份相关配置和数据。
四、更多
- 锁定用户
usermod -L john
命令的作用是锁定用户john
的账户,使其无法通过密码登录系统。具体来说,这个命令会在/etc/shadow
文件中,用户john
的密码字段前加上一个!
或*
符号,这会阻止系统的密码验证机制接受任何密码。
以下是该命令执行后/etc/shadow
文件中用户john
条目的示例变化:# Before locking john:$6$rounds=45678$asdasdasd...$asdasdasdasd:18000:0:99999:7::: # After locking john:!$6$rounds=45678$asdasdasd...$asdasdasdasd:18000:0:99999:7:::
锁定账户不会删除该账户或更改其任何其他属性,它只是防止用户通过密码登录。即使账户被锁定,以下情况仍然可能:
- 如果系统允许,用户可能仍然可以通过 SSH 密钥认证等方式登录。
- 系统管理员可以通过
usermod -U john
命令来解锁账户。- 账户的文件和目录仍然保持原有的权限和所有权。
请注意,使用usermod -L
命令需要管理员权限。
本文共 691 个字数,平均阅读时长 ≈ 2分钟
评论 (0)