修改用户账户信息
命令语法格式
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 创建文章