[root@test etc]# useradd --help
useradd: invalid option -- -
usage: useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] name
useradd -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]
当不加 -D 参数, useradd 指令使用命令列来指定新帐号的设定值 and 使用系统上的预设值。新使用者帐号将产生一些系统档案,使用者目录建立,拷备起始档案等,这些均可以利用命令列选项指定。此版本为RedHatLinux提供。
参数说明:
-u 使用者的ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于999而逐次增加。0~999传统上是保留给系统帐号使用。
-g <群组>指定用户所属的群组。名称或以数字来做为使用者登入起始群组(group)。群组名须为现有存在的名称。群组数字也须为现有存在的群组。预设的群组数字为1。
-G <群组>指定用户所属的附加群组。定义此使用者为此一堆 groups 的成员。每个群组使用","区格开来,不可以夹杂空白字元。群组名同-g选项的限制。定义值为使用者的起始群组。
-d <登入目录>指定用户登入时的启始目录。新帐号每次登入时所使用的 home_dir。预设值为 default_home内login 名称,并当成登入时目录名称。
-s 使用者登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。
-c <备注>为新帐号加上备注文字(password档的说明栏),备注文字会保存在passwd的备注栏位中。
-m 使用者目录如不存在则自动建立。如使用-k选项 skeleton_dir 内的档案将复制至使用者目录下。然而在 /etc/skel 目录下的档案也会复制过去取代。任何在 skele-ton_dir or/etc/skel 的目录也相同会在使用者目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。
-M 不建立使用者目录,即使 /etc/login.defs 系统档设定要建立使用者目录。
-n 预设值使用者群组与使用者名称会相同。此选项将取消此预设值。
-f <缓冲天数>指定在密码过期后多少天即关闭该帐号。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1。
-e <有效期限>指定帐号的终止日期。日期的指定格式为 MM/DD/YY 。
-r 此参数是用来建立系统帐号。系统帐号的UID会比定义在系统档上/etc/login.defs。的UID_MIN来的小。注意useradd此用法所建 立的帐号不会建立使用者目录,也不会在乎纪录在 /etc/login.defs. 的定义值。如果你想要有使用者目录须额外指定-m参数来建立系统帐号。这是REDHAT额外增设的选项。
-p 使用者可以在创建账户时,一并设置好密码,-p参数后跟的是密文,在/etc/shadow文件中可以查找到相关密码所对应的密文。
-D 变更预设值。
改变预设值(没试验过,很少用)
当 -D 选项出现时,useradd秀出现在的预设值,或是藉由命令列的方式更新预设值。可用选项为∶
-b default_home定义使用者所属目录的前一个目录。使用者名称会附加在default_home后面用来建立新使用者的目录。当然使用-d后则此选项无效。
-e default_expire_date使用者帐号停止日期。
-f default_inactive帐号过期几日后停权。
-g default_group新帐号起始群组名或ID。群组名须为现有存在的名称。群组ID也须为现有存在的群组。
-s default_shell使用者登入后使用的 shell 名称。往后新加入的帐号都将使用此 shell.
如不指定任何参数,useradd 显示目前预设的值。
注记
系统管理者有义务在 /etc/skel 目录下放置使用者定义档。此版本『useradd』由RedHat修改。
警告
不可新增使用者于NIS群组中。你必须在NIS伺服器上执行。
档案
/etc/passwd - 使用者帐号资讯
/etc/shadow - 使用者帐号资讯加密
/etc/group - 群组资讯
/etc/default/useradd - 定义资讯
/etc/login.defs - 系统广义设定
/etc/skel - 内含定义档的目录
useradd 默认值:
上面的示例可以让我们了解到,系统其实已经规范好了一些新增用户时的参数了,像我没有指定用户的家目录,也没有指定用户的 UID 和 GID 可是系统会帮我们为用户加上,同时其默认shell被设置成了 /bin/bash ,也让我知道了,使用 useradd 命令一定要有root权限。那么,useradd 去新增用户时,其默认值是多少呢?使用上面所说的 useradd 的 -D 参数可以显示出其默认值,各位可以看出,其值完全与 /etc/default/useradd 这个文件里面的内容相同。原来在 linux 中使用 useradd 去新增用户时,一些在 /etc/passwd 中的值是会去参考 /etc/default/useradd 这个文件的。其文件内容基本如下:
# useradd defaults file
GROUP=100 # 默认的用户组
HOME=/home # 家目录的地址
INACTIVE=-1 # 密码过期的宽限时间,对应 /etc/shadow 的第七栏
EXPIRE= # 账号失效日期,对应 /etc/shadow 的第八栏
SHELL=/bin/bash # 默认使用的shell
SKEL=/etc/skel # 用户家目录里面的内容参照文件(里面基本上全为隐藏文件——>以“.”开头的文件)
CREATE_MAIL_SPOOL=yes# 建立使用者的mailbox
举例:
例一:增加一个mail_0001账户,属于mailuser组,密码是1234(\$1\$m3eaGHpj\$Gs5ElcfoROkdAgwZ1j8XC0假如为1234的密文),且没有登录系统的权限:
useradd -p \$1\$m3eaGHpj\$Gs5ElcfoROkdAgwZ1j8XC0 -g mailuser -s /sbin/nologin mail_0001
例二:不加任何参数,直接默认创建一个新用户chongpig
[root@xiaoxiaozi simaopig]# useradd chongpig
在和用户相关联的几个文件里面搜一下chongpig这个账号
[root@xiaoxiaozi simaopig]# grep chongpig /etc/passwd /etc/shadow /etc/group
/etc/passwd:chongpig:x:501:501::/home/chongpig:/bin/bash
/etc/shadow:chongpig:!!:14446:0:99999:7:::
/etc/group:chongpig:x:501:
例三:创建一个新账号 simaopig2 ,且看一下UID 888不存在,那么就指定给simaopig2,并且把它加到mysql 组中:
[root@xiaoxiaozi simaopig]# grep 888 /etc/passwd
[root@xiaoxiaozi simaopig]# useradd -u 888 -g mysql simaopig2
[root@xiaoxiaozi simaopig]# grep simaopig2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:simaopig2:x:888:27::/home/simaopig2:/bin/bash
/etc/shadow:simaopig2:!!:14446:0:99999:7:::
userdel命令:
功能说明:删除用户帐号。
语 法:userdel [options] [用户帐号]
补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
参数:
-f 删除用户登入目录以及目录中所有文件。
-r 使用者目录下的档案一并移除,在其他位置上的档案也将一一找出并删除.