命令简介

usermod 是 Linux 系统中用于修改已存在用户帐户信息的命令。它允许系统管理员更改用户的登录名、主目录、默认 Shell、组成员资格等属性。该命令是管理用户帐户的重要工具之一。

命令格式

1
usermod [选项] 用户名

参数说明

参数 说明 备注
-c 更改用户的备注信息 例如:”New Full Name”
-d 更改用户的主目录 默认为 /home/用户名
-g 更改用户的主组 可以是组名或 GID
-G 更改用户的附加组 多个组使用逗号分隔
-l 更改用户的登录名 需要与 -d 和 -m 配合使用
-m 同时移动用户的主目录 与 -d 和 -l 配合使用
-s 更改用户的默认 Shell 默认为 /bin/bash
-u 更改用户的 UID 需要非常小心
-L 锁定用户帐户 防止用户登录
-U 解锁用户帐户 允许用户登录

命令实例

基本用法

1.更改用户的备注信息

1
usermod -c "John Doe" johndoe

这将更改用户 johndoe 的备注信息为 “John Doe”。

2.更改用户的主目录

1
usermod -d /home/newdir -m johndoe

这将更改用户 johndoe 的主目录为 /home/newdir,并移动该用户原有主目录下的文件和目录。

3.更改用户的主组和附加组

1
usermod -g developers -G admins,finance johndoe

这将更改用户 johndoe 的主组为 developers,并将其添加到 adminsfinance 附加组中。

4.更改用户的登录名

1
usermod -l newname -d /home/newname -m oldname

这将更改用户 oldname 的登录名为 newname,并更改其主目录为 /home/newname,同时移动该用户原有主目录下的文件和目录。

5.锁定和解锁用户帐户

1
2
usermod -L johndoe  # 锁定用户帐户
usermod -U johndoe # 解锁用户帐户

这将锁定用户 johndoe 的帐户,防止其登录。然后再解锁该用户的帐户,允许其登录。

扩展用法

1.批量修改用户的附加组

1
2
3
cat users.txt | while read user; do
usermod -G developers "$user"
done

这将从 users.txt 文件中读取用户名,并将每个用户添加到 developers 附加组中。

2.更改用户的主目录权限

1
2
usermod -d /home/newdir -m johndoe
chmod 750 /home/newdir

这将更改用户 johndoe 的主目录为 /home/newdir,并移动该用户原有主目录下的文件和目录。然后,使用 chmod 命令更改新主目录的权限,只允许用户和同组用户具有读/写/执行权限。

高级用法

1.更改用户的资源限制

1
usermod -K FSGID=1000 -K FSUID=1000 -K FSMASK=027 johndoe

这将更改用户 johndoe 的资源限制,包括:

  • 设置新用户的文件系统 GID 为 1000
  • 设置新用户的文件系统 UID 为 1000
  • 设置新用户创建文件的默认权限掩码为 027

通过这些设置,您可以控制用户对文件系统的访问权限和默认文件权限。

2.批量更改用户的默认 Shell

1
2
3
for user in $(cat users.txt); do
usermod -s /bin/zsh "$user"
done

这将从 users.txt 文件中读取用户名,并将每个用户的默认 Shell 更改为 /bin/zsh

3.更改用户的过期时间

1
usermod -e "2024-12-31" johndoe

这将设置用户 johndoe 的帐户在 2024 年 12 月 31 日过期。过期后,该用户将无法登录系统。

以上是关于 usermod 命令的详细文档,包括命令简介、语法格式、参数使用说明、演示实例以及扩展和高级使用方法。如果您需要更多关于用户管理的信息,可以查阅 useradduserdelgroupaddgroupmodgroupdel 等相关命令的文档。