「usermod(8)」-

  LINUX MANUAL PAGES

修改用户账户信息

命令语法格式

usermod [options] LOGIN

命令描述

命令usermod通过命令行指定的选项来修改系统帐户文件中对应的字段。

命令支持的选项及含义

命令usermode支持如下选项:

-c, –comment COMMENT
用户密码文件中注释字段的新值。通常使用chfn(1)命令进行修改,因为虽然它只是一个字段,但是里面包含了许多其他的信息。

-g, –gid GROUP
用户的新初始登录组的组名或编号。该GROUP必须是一个已经存在的组。

在用户主目录中,属于前一个用户基本组的任何文件都将归该新组所有。而用户主目录之外的文件的组所有权必须手动修复。

-G, –groups GROUP1[,GROUP2,…[,GROUPN]]]
修改用户的补充组列表。每个组用逗号分隔,而之间没有空格。这些组受到的限制与-g选项给出的组相同。

如果用户当前是未列出的组的成员,则将从该组中删除该用户。可以通过-a选项更改此行为,该选项-a会将用户附加到当前的补充组列表。

-a, –append
将用户追加到补充组。只能与-G选项一起使用。

-d, –home HOME_DIR
用户的新的主目录。如果给出了-m选项,则当前主目录的内容将被移动到新的主目录,如果该主目录尚不存在,则创建该目录。

-m, –move-home
将用户主目录的内容移动到新位置。此选项仅与-d(或–home)选项一起使用时有效。

命令usermod将尝试调整文件的所有权,并复制权限、ACL、扩展属性,但之后也可能需要手动更改某些东西。

-l, –login NEW_LOGIN
用户名将从LOGIN更改为NEW_LOGIN。不做其他改变。特别是,应该手动重命名用户的主目录或邮件目录以反映新的登录名。

-p, –password PASSWORD
加密密码,由crypt(3)返回,而不是密码明文。注意:建议不要使用此选项,因为列出进程的用户可以看到密码(或加密密码)。

密码将写入本地/etc/passwd或/etc/shadow文件中。 这可能与PAM配置中配置的密码数据库不同。

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

-L, –lock
锁定用户的密码。该命令是在加密密码前面添加了一个’!’,有效地禁用了密码。 您不能将此选项与-p或-U一起使用。

注意:如果您希望锁定帐户(不仅禁止密码访问),还应将EXPIRE_DATE设置为1。

-U, –unlock
解锁用户密码。该选项删除了在加密密码前面添加的‘!’ 。您不能将此选项与-p或-L一起使用。

注意:如果您希望解锁帐户(不仅要使用密码访问),还应修改EXPIRE_DATE的值(例如,设置为99999,或设置在/etc/default/useradd中的EXPIRE值)。

-R, –root CHROOT_DIR
在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。

-s, –shell SHELL
指定用户新的登录Shell。如果为空将使用系统默认的Shell。

-u, –uid UID
设置UID的新数值。除非使用-o选项,否则此值必须是唯一的,且该值必须是非负的。

用户的邮箱、用户所有且位于用户主目录中的任何文件的UID都将被自动更改。用户主目录之外的文件所有权必须手动修复。

不会对/etc/login.defs中的UID_MIN,UID_MAX,SYS_UID_MIN,SYS_UID_MAX执行任何检查。

-o, –non-unique
与-u选项一起使用时,此选项允许UID为非唯一值。

-v, –add-subuids FIRST-LAST
将一系列从属uid添加到用户的帐户。可以多次指定此选项以将多个不同范围的UID添加到用户帐户。

不会对/etc/login.defs中的SUB_UID_MIN,SUB_UID_MAX,SUB_UID_COUNT执行任何检查。

-V, –del-subuids FIRST-LAST
从用户的帐户中删除一系列从属UID。可以多次指定此选项以删除多个范围的用户帐户。如果同时指定了–del-subuids和–add-subuids,则在添加任何从属UID范围之前,先删除所有从属UID范围。

不会对/etc/login.defs中的SUB_UID_MIN,SUB_UID_MAX,SUB_UID_COUNT执行任何检查。

-w, –add-subgids FIRST-LAST
将一系列从属GID添加到用户的帐户。可以多次指定此选项以将多个不同范围的GID添加到用户帐户。

不会对/etc/login.defs中的SUB_GID_MIN,SUB_GID_MAX,SUB_GID_COUNT执行任何检查。

-W, –del-subgids FIRST-LAST
从用户的帐户中删除一系列从属GID。可以多次指定此选项以删除多个不同范围用户帐户。当同时指定–del-subgids和–add-subgids时,在添加任何从属GID范围之前,先删除所有从属GID范围。

不会对/etc/login.defs中的SUB_GID_MIN,SUB_GID_MAX,SUB_GID_COUNT执行任何检查。

-Z, –selinux-user SEUSER
用户登录的新SELinux用户。空白SEUSER将删除用户LOGIN(如果有)的SELinux用户映射。

-e, –expiredate EXPIRE_DATE
用户帐户将被禁用的日期。 日期以YYYY-MM-DD格式指定。空的EXPIRE_DATE参数将禁用帐户到期功能。

此选项需要/etc/shadow文件。 如果没有对应的条目,则会创建/etc/shadow条目。

-f, –inactive INACTIVE
密码过期后的不活动天数。如果在指定的天数内未活动,则帐户被永久禁用。

当值为0时,一旦密码过期,将禁用帐户,值为-1将禁用该功能。

此选项需要/etc/shadow文件。 如果没有对应的条目,则会在/etc/shadow中创建条目。

注意事项

如果正在执行更改用户的数字UID、用户名、用户主目录等操作,则必须确保执行此命令时,指定用户未执行任何进程。命令usermod在Linux上执行该检查。 在其他平台上,它只使用utmp来检查用户是否已登录。

您必须手动更改任何crontab文件的所有者或作业。

您必须在NIS服务器上进行涉及NIS的任何更改。

有关subguid与subgid的内容可以参见「What do the contents of /etc/subuid mean in the context of docker [closed]」一文。

配置文件

在/etc/login.defs中的以下配置变量会改变useradd命令的行为:

MAIL_DIR (string)
邮件目录。修改或删除相应的用户帐户时,需要该变量值来操作邮箱。如果未指定,则使用编译时默认值。

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

命令useradd、usermod、userdel会使用MAIL_DIR和MAIL_FILE变量来创建、移动、删除用户的邮件文件和目录。

MAX_MEMBERS_PER_GROUP (number)
每组条目的最大成员数。达到最大值时,将在/etc/group中创建新的组条目(行),并具有相同的名称、相同的密码、相同的GID值。

该属性默认值为0,表示组中的成员数没有限制。

此功能(拆分组)允许限制group文件中的行长度。这有助于确保NIS组的行不超过1024个字符。

如果你需要强制执行此类限制,则可以使用25。

注意:并不是所有工具都支持拆分组,即使在Shadow软件包中也有些工具不支持。除非确实有必要,否则不应使用此变量。

SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)
如果/etc/subuid存在,则命令useradd、newusers(除非用户已具有从属GID)为每个新用户分配从SUB_GID_MIN到SUB_GID_MAX范围的SUB_GID_COUNT个未使用的GID。

其中,SUB_GID_MIN,SUB_GID_MAX,SUB_GID_COUNT的默认值分别为100000,600100000和10000。

SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)
如果/etc/subuid存在,则命令useradd、newusers(除非用户已具有从属UID)为每个新用户分配SUB_UID_COUNT个从范围SUB_UID_MIN到SUB_UID_MAX的未使用的UID。

其中,SUB_UID_MIN,SUB_UID_MAX,SUB_UID_COUNT的默认值分别为100000,600100000和10000。

相关文件

/etc/passwd
用户帐户信息。

/etc/shadow
安全的用户帐户信息。

/etc/group
组帐号信息。

/etc/gshadow
安全组帐号信息。

/etc/login.defs
软件包Shadow中各个工具的配置文件,用于改变这些工具的行为。

/etc/subgid
每个用户的从属GID。

/etc/subuid
每个用户的从属UID。

相关手册

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

参考文献

  • man 8 usermod, Version shadow-utils 4.5

更新日志

  • 07/23/2018 创建文章