USERMOD(8)

名称
usermod - 修改一个用户账户

大纲

usermod [选项] 登录

描述

usermod 修改系统账户文件和在命令行上指定的相关更改。

选项

usermod 可以接受的选项有：

-a, --append
    将用户添加到附加组。只能和 -G 选项一起使用。

-c, --commentCOMMENT
    用户密码文件中注释字段的新值。通常使用 chfn(1) 工具对其进行修改。

-d, --homeHOME_DIR
    用户的新登录目录。

    If the -m option is given, the contents of the current home directory will be moved to the new home directory, which is created if it does not already exist. If the current home directory does not exist the new home directory will not be created.

-e, --expiredateEXPIRE_DATE
    用户账户将被禁用的日期。日期以 YYYY-MM-DD 格式指定。

    空 EXPIRE_DATE 参数将禁用账户过期。

    此选项需要一个 /etc/passwd 文件。如果没有，将会创建一条 /etc/shadow 项目。

-f, --inactiveINACTIVE
    密码过期之后，账户被彻底禁用之前的天数。

    0 表示密码过期时，立即禁用账户；-1 表示不使用这个功能。

    此选项需要一个 /etc/passwd 文件。如果没有，将会创建一条 /etc/shadow 项目。

-g, --gidGROUP
    用户的新初始登录组的组名或数字代号。此组必须存在。

    用户主目录中，属于原来的主组的文件将转交新组所有。

    主目录之外的文件所属的组必须手动修改。

    The change of the group ownership of files inside of the user's home directory is also not done if the home dir owner uid is different from the current or new user id. This is safety measure for special home directories such as /.

-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]
    用户还属于的附加组列表。组之间使用逗号分隔，没有空格。这些组需要遵守和 -g 选项中给的组同样的限制。

    如果用户当前是一个组的成员，而这个组没有列在这里，用户将被从那个组里便删除。这个行为可以通过 -a 选项修改，这使用户追加到给出的附加组列表中。

-l, --loginNEW_LOGIN
    用户的名称将会从 LOGIN 修改为 NEW_LOGIN。不会更改别的任何东西。特别是，用户的主目录名和邮件池也需要手动修改以和新登录名对应。

-L, --lock
    锁定用户的密码。这会在用户加密的密码之前放置一个“!”，可以快速禁用密码。您可以和 -p 或 -U 配合使用此选项。

    注意：如果希望锁定账户(不仅仅是通过密码访问)，您也需要设置 EXPIRE_DATE 为 1。

-m, --move-home
    Move the content of the user's home directory to the new location. If the current home directory does not exist the new home directory will not be created.

    这个选项只有和 -d (或 --home) 选项组合使用时才有效。

    usermod 会改写文件的属主并复制模式、ACL 和扩展属性，但是稍后也可能需要手动修改。

-o, --non-unique
    使用 -u 选项时，可以将用户 ID 改为非唯一的值。

-p, --passwordPASSWORD
    已经加密过的密码，就像 crypt(3) 返回的那样。

    注意：不推荐使用这个选项，因为密码(或加密过的密码)会被用户通过列出这个过程而看到。

    您应该确保密码符合系统的密码政策。

-R, --rootCHROOT_DIR
    Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

-s, --shellSHELL
    用户的新登录 shell 的名称。将此字段设置为空会让系统选择默认的登录 shell。

-u, --uidUID
    用户 ID 的新数值。

    这个值必须是唯一的，除非使用了 -o 选项，必须是非负值。

    用户的邮箱，用户主目录中属于此用户的文件的属主 ID 也将自动更改。

    用户主目录之外文件所有权必须手动修复。

    The change of the user ownership of files inside of the user's home directory is also not done if the home dir owner uid is different from the current or new user id. This is safety measure for special home directories such as /.

    不会对 /etc/login.defs 中的 UID_MIN, UID_MAX, SYS_UID_MIN 和 SYS_UID_MAX 进行检查。

-U, --unlock
    解锁用户的密码。这将移除加密的密码之前的“!”。您可以将此选项和 -p 或 -L 配合使用。

    注意：如果您希望解锁账户(不只是使用密码访问)，您也应该设置 EXPIRE_DATE (例如设置为 99999，或者 /etc/default/useradd 中的 EXPIRE 值)。

-Z, --selinux-userSEUSER
    用户登陆的 SELinux 用户。

    空的 SEUSER 将移除用户 LOGIN 的 SELinux 用户映射(如果有)。

CAVEATS

如果要更改用户的数字 ID、用户名或主目录，需要确保允许命令时，用户没有执行任何进程。usermod 会在 Linux 上进行检查；但是在其它平台上，仅仅根据 utmp 检查用户是否已经登录。

您必须手动更改 crontab 文件或 at 作业的属主。

您必须更改 NIS 服务器上的 NIS 相关内容。

配置文件

在 /etc/login.defs 中有如下配置变量，可以用来更改此工具的行为：

MAIL_DIR (string)
    邮箱目录。修改或删除用户账户时需要处理邮箱，如果没有指定，将使用编译时指定的默认值。

MAIL_FILE (string)
    定义用户邮箱文件的位置(相对于主目录)。

MAIL_DIR and MAIL_FILE 变量由 useradd，usermod 和 userdel 用于创建、移动或删除用户邮箱。

如果 MAIL_CHECK_ENAB 设置为 yes，它们也被用于定义 MAIL 环境变量。

MAX_MEMBERS_PER_GROUP (number)
    每个组条目的最大成员数。达到最大值时，在 /etc/group 开始一个新条目(行)(使用同样的名称，同样的密码，同样的 GID)。

    默认值是 0，意味着组中的成员数没有限制。

    此功能(分割组)允许限制组文件中的行长度。这对于确保 NIS 组的行比长于 1024 字符。

    如果要强制这个限制，可以使用 25。

    注意：分割组可能不受所有工具的支持(甚至在 Shadow 工具集中)。您不应该使用这个变量，除非真的需要。

文件

/etc/group
    组账户信息。

/etc/gshadow
    安全组账户信息。

/etc/login.defs
    Shadow 密码套件配置。

/etc/passwd
    用户账户信息。

/etc/shadow
    安全用户账户信息。

参见

chfn(1), chsh(1), passwd(1), crypt(3), gpasswd(8), groupadd(8), groupdel(8), groupmod(8), login.defs(5), useradd(8), userdel(8).