usermod

修改用户的账号信息


语法格式

usermod [-aLmoU] [-c comment] [-d homedir] [-e expire] [-f inactive] [-g group]
[-G g1[,g2,…[,gN]]]] [-l newlogin] [-s shell] [-u uid] [-Z seuser] login

命令简介

usermod命令用于修改系统的/etc/passwd、/etc/shadow及/etc/group等用户账号文件,修改指定用户的账号信息。其中,login是系统现有的用户名。

在修改用户的名字、用户ID或用户主目录等账号信息时,必须确保指定的用户没有注册,没有运行任何进程。

修改用户账号信息之后,还要注意手工修改crontab文件或at作业文件的属主属性。

命令选项

-a, --append  只能与“-G”选项一起使用,把指定的用户加到一个现有的从用户组。

-c comment, --comment comment  使用新的注释字符串替换用户账号文件/etc/passwd中的注释字段。

-d homedir, --home homedir  指定新的用户主目录。如果同时指定了“-m”选项,当前用户主目录中的文件将被移至新建(如果指定的目录不存在)的用户主目录。

-e expire, --expiredate expire  指定用户账号有效期的截止日期。到期后账号自动失效,用户无法再注册到系统。指定日期时应采用YYYY-MM-DD格式。

-f inactive, --inactive inactive  指定超出密码有效期之后一直不访问系统,但仍保证其账号信息有效的最多天数,超过此限将封锁用户账号。如果指定的数值为0,表示一旦密码有效期到期则立即封锁用户账号。-1表示禁用此特性。

-g group, --gid group  指定用户新的主用户组或主用户组ID。注意,指定的用户组必须存在。

-G g1[,g2,...[,gN]…], --groups g1[,g2,...[,gN]…]  指定用户从属的一个或多个从用户组。多个用户组之间需加逗号分隔符,前后不能有空格。指定用户组时可以使用名字或数字ID。如果用户属于未列举的某个用户组的成员,还要从该用户组中删除指定的用户。如果同时指定了“-a”选项,仅把指定的用户加到列举的从用户组中即可。

-l newlogin, --login newlogin  指定一个新的用户名,把指定的用户login改为newlogin。注意,用户主目录名及其中文件的属主属性需要手工修改,才能反映新的用户名。

-L, --lock  采用修改密码的方式封锁用户账号。在用户密码信息文件/etc/shadow的密码字段前面增加一个“?!?”字符串,使用户密码失效。注意,这个选项不能与“-p”或“-U”选项一起使用。

-m, --move-home  把当前用户主目录中的文件和子目录移至新建的用户主目录。注意,仅当与“-d”选项一起使用时这个选项才有效。

-o, --non-unique  与“-u”选项一起使用时,允许修改的用户账号使用重复的用户ID。

-s shell, --shell shell  指定注册Shell的完整路径名,用作用户注册后的命令解释程序。如果未指定,usermod命令将会自动选择一个默认的注册Shell。

-u uid, --uid uid  指定修改后的新用户ID。注意,用户ID是一个大于499或999的正整数(0~499或0~999保留作系统用户账号)。除非同时指定了“-o”选项,用户ID必须是唯一的。修改用户ID之后,usermod命令将会自动修改用户主目录中归用户拥有的任何文件的属主属性。但用户主目录之外的文件(包括用户邮箱)必须手工修改。

-U, --unlock  解除封锁的用户账号,删除用户密码信息文件/etc/shadow中密码字段前面的“?!?”字符串。注意,这个选项不能与“-L”选项一起使用。

-Z seuser, --selinux-user seuser  指定用户的SELinux用户名(与用户名不同)。如果未指定,可由系统选择一个默认的SELinux用户。

应用实例

1. 把用户guest的注册Shell改为tcsh。

# usermod -s /bin/tcsh guest
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z