usermod
是 Linux 系统中用于修改用户账户的命令。它可以用来更改用户的属性,比如用户的组、家庭目录、Shell 等。
基本语法
usermod [选项] 用户名
常用参数详解
-
-a, --append
- 将用户添加到一个新组中,而不删除用户当前属于的其他组。必须与
-G
一起使用。 - 示例:
usermod -a -G group1 username
- 将用户添加到一个新组中,而不删除用户当前属于的其他组。必须与
-
-c, --comment
- 设置用户的注释(通常是全名)。对于用户的描述信息。
- 示例:
usermod -c "John Doe" username
-
-d, --home
- 改变用户的主目录。
- 示例:
usermod -d /new/home/directory username
-
-e, --expiredate
- 设置用户账户的过期日期,格式为
YYYY-MM-DD
。 - 示例:
usermod -e 2023-12-31 username
- 设置用户账户的过期日期,格式为
-
-f, --inactive
- 设置账户过期后,密码失效之前的天数。
- 示例:
usermod -f 30 username
-
-g, --gid
- 修改用户的主组。必须是已存在的组。
- 示例:
usermod -g newgroup username
-
-G, --groups
- 修改用户的附加组。多个组名用逗号分隔,注意不加空格。
- 示例:
usermod -G group1,group2 username
-
-l, --login
- 更改用户的登录名。
- 示例:
usermod -l newusername oldusername
-
-p, --password
- 设置用户的密码,通常是加密后的密码。需谨慎使用。
- 示例:
usermod -p $(openssl passwd -1 newpassword) username
-
-s, --shell
- 修改用户的登录 Shell。
- 示例:
usermod -s /bin/bash username
-
-u, --uid
- 修改用户的 UID (用户标识符)。必须是唯一的。
- 示例:
usermod -u 2001 username
-
-o, --non-unique
- 允许 UID 和 GID 非唯一(通常不推荐)。
- 示例:
usermod -o -u 1000 username
使用示例
-
添加用户到新组
usermod -a -G developers john
-
修改用户的主目录
usermod -d /home/john_doe john
-
更新用户的全名
usermod -c "John Doe" john
-
更改用户的主组
usermod -g users john
-
更改用户的登录 Shell
usermod -s /bin/zsh john
-
修改用户的 UID
usermod -u 1500 john
-
设置用户账户过期日期
usermod -e 2024-01-01 john
-
改变用户的登录名
usermod -l johnny john
注意事项
- 修改用户时需要管理员(root)权限。
- 某些操作(如改变主目录,需要使用
-d
参数)时,可能需要手动迁移用户主目录中的文件。 - 在变更用户的组或 UID 后,要注意文件和目录的权限,可能需要修改文件的拥有者。
使用 usermod
命令时,确保理解每个参数的作用,以免造成用户账户或权限设置的错误。