Linux命令之useradd
useradd [选项] LOGIN(登录名)
useradd –D
useradd –D [选项]
创建⼀个新⽤户或更新默认新⽤户信息。useradd和adduser命令相同,adduser是useradd的软连接。如果使⽤时不带-D选项,useradd 命令使⽤命令⾏上指定的值和系统的默认值创建⼀个新的⽤户。根据命令⾏选项,useradd命令也会更新系统⽂件和创建新⽤户的主⽬录并复制初始⽂件。默认上也会为⽤户创建组(查看-g,-N,-U和USERGROUPS_ENAB)。
(1).⽤户的分类
超级⽤户:root,拥有对系统的最⾼管理权限,UID默认为0。
虚拟⽤户:⼜叫系统⽤户或伪⽤户,具有⼀定特权,与系统或程序服务相关,但没有真正的使⽤者。⼀般不会⽤来登录系统,它主要⽤于维持某个访问的正常运⾏,如ftp,apache等。
普通⽤户:是⼀种受限制的⽤户,⼀般新建的⽤户都是普通⽤户。默认只能执⾏/bin、/usr/bin、/usr/local/bin以及⾃⾝主⽬录⾥的命令。
在CentOS7中系统⽤户UID为1~999,普通⽤户UID为1000+;以前的CentOS6中系统⽤户UID为1~499,普通⽤户UID为500+
注意:UID即每个⽤户的⾝份标识,虽然可以修改/etc/passwd(命令设置的UID不允许重复),但尽量保持唯⼀性,类似于每个⼈的⾝份证号码
(2).常⽤选项
-d,--home-dir HOME_DIR 创建新⽤户时,⽤HOME_DIR作为⽤户主⽬录。默认情况是将⽤户名附加到BASE_DIR(默认/home/)并将其⽤作主⽬录名称。
-m,--create-home 其实这是⼀个临时开关,表⽰如果不存在⽤户主⽬录,则⽣成⽤户主⽬录(/home/[⽤户名]),⾻架⽬录中的⽂件和⽬录(可以使⽤-k选项指定)将会被复制到主⽬录。默认上,如果没有指定此选项,并且/etc/login.defs(CREATE_HOME)的系统设置没有启⽤,则不会创建主⽬录。创建⽤户主⽬录必须存在且具有适当的SELinux环境和权限。否则⽆法创建或访问⽤户的主⽬录。
-M,--no-create-home 和-m选项⼀样是⼀个临时开关,即使/etc/login.defs(CREATE_HOME)的系统设置是yes,也不创建⽤户的主⽬录。
-g,--gid GROUP ⽤户初始登录组的组名或号码。组名必须已存在,组号码必须指代已存在的组。如果没有指定,useradd的⾏为将会依赖于/etc/login.defs⽂件中的USERGROUPS_ENAB参数。如果此参数设置为yes(或在命令⾏上指定了-U/--user-group),将会为⽤户创建⼀个组,组名和登录名相同。如果选项设置为no(或在命令⾏上指定-N/--no-user-group),useradd会把新⽤户的主组设置
为/etc/default/useradd中GROUP变量指定的值,再或者默认100。
-G,--groups GROUP1[,GROUP2,…[GROUPN]] ⽤户还属于的附加组列表。每个组都⽤逗号隔开,中间没有空格。这⾥的组受到-g 选项给定的组同样的限制。默认上,⽤户只属于初始组。(⼀个⽤户只允许有⼀个主组,可以有多个附加组)
-s,--shell SHELL ⽤户登录shell名。默认为留空,让系统根据/etc/default/useradd中的SHELL变量选择默认的登录shell,默认为空字符串。有时需要禁⽌某些⽤户执⾏登录动作,例如⽤来执⾏系统服务的⽤户,这时将shell设置为/sbin/nologin就可以禁⽌⽤户登
录。(Shell类型详见:)
(3).简单了解的选项
-b,--base-dir BASE_DIR 如果未指定-d HOME_DIR,系统使⽤默认基⽬录(BASE⽬录)。此时,BASE_DIR与账户名称联系起来定义主⽬录(HOME⽬录)。这时的BASE_DIR必须存在,否则⽆法创建主⽬录。如果选项没有指定,useradd将使⽤/etc/default/useradd中的HOMR变量,过默认的/home。
-c,--comment COMMENT 通常是关于登录的简短描述,当前⽤于⽤户全名,可以是任何字符串。
-D,--defaults 显⽰或更改默认的useradd配置。
-e,--expiredate EXPIRE_DATE ⽤户账户将被禁⽤的⽇期,以YYYY-MM-DD格式指定。如果没有指定,useradd将使
⽤/etc/default/useradd中的EXPIRE变量指定的默认过期时间,或者⼀个空字符串(永不过期)。
-f,--inactive INACTIVE 密码过期后,账户被彻底禁⽤前的天数。0表⽰⽴即禁⽤,-1表⽰禁⽤这个功能。如果未指定,useradd将使⽤/etc/default/useradd中的INACTIVE指定的默认禁⽤周期,或默认为-1。
-k,--skel SKEL_DIR ⾻架⽬录,包含使⽤useradd创建⽤户时,要复制到⽤户主⽬录中的⽂件和⽬录。这个选项只有在指定-m(或--create-home)选项时才有效。如果此项没有设置,⾻架⽬录使⽤/etc/default/useradd中的SKELeton的变量或默认为/etc/skel。如果可以,也复制ACL和扩展属性。
-K,--key KEY=VALUE 覆盖/etc/login.defs默认值(UID_MIN,UID_MAX,UMASK,PASS_MAX_DAYS及其他)。例如:-K PASS_MAX_DAYS=-1可以⽤于创建⼀个密码不会过期的系统账户,即使系统账户没有密码。你还可以指定多个-K选项,如:-K
UID_MIN=100 –K UID_MAX=499。
-l,--no-log-init 不要将⽤户添加到登录和登录失败数据库。默认上,最近登录和登录失败中⽤户的条⽬会被重置,以避免重新使⽤先前删除的⽤户的条⽬。
-N,--no-user-group 不要创建同名组,⽽是将⽤户添加到-g选项指定的组,或根据/etc/default/useradd中的GROUP变量。如果没有指定-g,-N和-U选项,默认⾏为由/etc/login.defs中的USERGROUPS_ENAB变量指定。
-o,--non-unique 允许使⽤重复的UID创建⽤户账户。此选项只有和-u选项组合使⽤才有效。
-p,--password PASSWORD 加密了的密码,就像crypt(3)的返回值。默认为禁⽤密码。注意:不推荐
使⽤这个选项,因为加密过的密码会被⽤户通过列出这个过程⽽看到。你应该确保密码符合系统的密码政策
-r,--system 创建⼀个系统账户。将在/etc/shadow中创建没有陈旧信息的系统⽤户,并且在选择/etc/login.defs中定义的
SYS_UID_MIN到SYS_UID_MAX范围中的数字标识,⽽不是UID_MIN到UID_MAX(以及它们的GID对应的创建组)。注意:useradd不会为这种⽤户或篡改建主⽬录,⽆论/etc/login.defs(CREATE_HOME)中的默认设置是怎样。如果⾹味要创建的系统账户创建主⽬录,需要指定-m选项。
-R,--root CHROOT_DIR 在CHROOT_DIR⽬录中应⽤更改,并使⽤CHROOT_DIR⽬录中的配置⽂件。
-u,--uid UID ⽤户ID的数字值。此值必须为唯⼀的,除⾮使⽤了-o选项。此值必须⾮负,默认使⽤⼤于等于UID_MIN,且⼤于任何其他⽤户ID最⼩值。
-U,--user-group 创建⼀个和⽤户同名的组,并将⽤户添加到组中。如果没有指定-g,-N和-UID_MIN选项,默认⾏为有/etc/login.defs 中的USERGROUPS_ENAB变量指定。
linux登录命令
-Z,--selinux-user SEUSER ⽤户登录的SELinux⽤户。默认为留空,这会造成系统选择默认的SELinux⽤户。
注意1:只带-D选项使⽤时,useradd将显⽰当前的默认值。-D和其他选项配合使⽤时,useradd将为指定的选项更新默认值。有效的更新默认值选项有-b,-e,-f,-g,-s。
注意2:系统管理源负责将默认的⽤户⽂件放在/etc/skel/⽬录中(或者命令⾏上、/etc/default/useradd中指定的任何其他⽬录)。
注意3:你可能不能向NISsan组或LDAP组添加⽤户。这只能在相应服务器上进⾏。相似的,如果⽤户名已经存在于外部⽤户数据库中,⽐如NIS或LDAP,useradd将拒绝创建⽤户账户的请求。
注意4:⽤户名不能超过32个字节长。
(4).配置⽂件
在/etc/login.defs中有如下配置变量,可以⽤来更改此⼯具的⾏为:
CREATE_HOME(boolean)指⽰是否应该为新⽤户默认创建主⽬录。此设置并不应⽤到系统⽤户,并且可以使⽤命令⾏覆盖。
GID_MAX(number),GID_MIN(number) useradd,groupadd或newusers创建的常规组的组ID范围。GID_MIN默认值
1000(CentOS6为500),GID_MAX默认值60000。
MAIL_DIR(string)邮箱⽬录。修改或删除⽤户账户时需要处理邮箱,如果没有指定,将使⽤编译时指定的默认值。
MAIL_FILE(string)定义⽤户邮箱⽂件的位置(相对于主⽬录)。
注意:MAIL_DIR和MAIL_FILE变量由useradd,usermod和userdel⽤于创建、移动或删除⽤户邮箱。如果MAIL_CHECK_ENAB设置为yes,它们也被⽤于定义MAIL环境变量。
MAX_MEMBERS_PER_GROUP(number)每个组条⽬的最⼤成员数。达到最⼤值时,在/etc/group开始⼀个新条⽬(⾏)(使⽤同样的名称,同样的密码,同样的GID)。默认值是0,意味着组中的成员数没有限制。此功能(分割组)允许限制组⽂件中的⾏长度。这对于确保NIS组的⾏⽐长于1024字符。如果要强制这个限制,可以使⽤25。
注意:分割组可能不受所有⼯具的⽀持(甚⾄在Shadow⼯具集中)。如果没有必要你不应该使⽤这个变量。
PASS_MAX_DAYS(number)⼀个密码可以使⽤的最⼤天数。如果密码⽐这个旧,将会强迫更改密码。如果不指定,就假定为-1,这会禁⽤此限制。
PASS_MIN_DAYS(number)两次更改密码时间最⼩间隔。将会拒绝任何早于此的更改密码的尝试。如果不指定就假定为-1,将会禁⽤此限制。
PASS_WARN_AGE(number)密码过期之前⿁畜警告的天数。0表⽰在过期当天警告,负值表⽰不警告。如果没有指定,不会给出警告。
SYS_GID_MAX(number),SYS_GID_MIN(number) useradd、groupadd或newusers创建的系统组的组ID范围。SYS_GID_MIN默认101(CentOS6为201),SYS_GID_MAX默认GID_MIN-1。
SYS_UID_MAX(number),SYS_UID_MIN(number) useradd或newusers创建的系统⽤户的⽤户ID的范围。SYS_UID_MIN默认
101(CentOS6为201),SYS_UID_MAX默认UID_MIN-1。
UID_MAX(number),UID_MIN(number) useradd或newusers创建的普通⽤户的⽤户ID的范围。UID_MIN默认1000(CentOS6为500),UID_MAX默认60000。
UMASK(number)⽂件模式创建掩码初始化为此值。如果没有指定,掩码初始化为022。Useradd和newusers使⽤此掩码设置它们创建的⽤户主⽬录的模式。也被login⽤于指定⽤户的初始umask。注意,此掩码可以被⽤户的GECOS⾏覆盖(当设置了QUOTAS_ENAB时),也可以被带K指⽰符的limits(5)定义的限制值覆盖。
USERGROUPS_ENAB(boolean)如果uid和gid相同,⽤户名和主⽤户名也相同,使⾮root组的组掩码位和属主位相同(如:022-
>002,077->007)。如果设置为yes,组中也没有成员了,userdel将移除此⽤户组,useradd创建⽤户时,也会创建⼀个同名的默认组。(5).⽤户信息存放⽂件
/etc/passwd ⽤户基本信息
/etc/shadow ⽤户安全信息(包含密码)
/etc/group ⽤户组信息
/etc/gshadow ⽤户组安全信息
/etc/default/useradd ⽤户创建的默认值
/etc/skel/ ⽤户默认⾻架⽬录(创建新⽤户时,默认复制⽬录下所有⽂件)
/etc/login.defs Shadow密码套件配置
(6).退出值(返回值)
0 成功
1 ⽆法更新命令⽂件
2 ⽆效的命令语法
3 给了选项⼀个⽆效的参数
4 UID已经使⽤(且没有-o)
6 指定的组不存在
9 ⽤户名已被使⽤
10 ⽆法更新组⽂件
12 ⽆法创建主⽬录
14 ⽆法更新SELinux⽤户映射
(7).实例
1)添加⽤户
[root@xuexi ~]# useradd tt
[root@xuexi ~]# tail -1 /etc/passwd
tt:x:1001:1001::/home/tt:/bin/bash //⽤户名:密码占位符:UID:GID:⽤户描述:⽤户主⽬录(即~):登录后的shell [root@xuexi ~]# tail -1 /etc/group
tt:x:1001: //UID=GID
说明:此命令会⾃动创建tt组,并成为tt⽤户的默认主组,同时默认登录shell为bash。
2)建⽴⽤户且指定UID
[root@xuexi ~]# useradd caojh -u 1044
[root@xuexi ~]# id caojh
uid=1044(caojh) gid=1044(caojh) 组=1044(caojh)
[root@xuexi ~]# tail -1 /etc/passwd
caojh:x:1044:1044::/home/caojh:/bin/bash
3)添加⽤户并指定主⽬录
root@xuexi ~]# useradd -d /home/myd t3
[root@xuexi ~]# tail -1 /etc/passwd
t3:x:1045:1045::/home/myd:/bin/bash //可以看到主⽬录为/home/myd
4)添加⽤户并加⼊指定⽤户组(主组和附加组)
[root@xuexi ~]# useradd -g tt t1 //指定⽤户主组
[root@xuexi ~]# id t1
uid=1046(t1) gid=1001(tt) 组=1001(tt)
[root@xuexi ~]# useradd -G tt,root t2 //指定⽤户附加组
[root@xuexi ~]# id t2
uid=1047(t2) gid=1047(t2) 组=1047(t2),0(root),1001(tt)
(8).扩展
userdel [选项] LOGIN
userdel删除⽤户账户和相关⽂件
-r,--remove 删除主⽬录和邮件池(/var/mail)
[root@xuexi ~]# ls /home/
caojh myd t1 t2 tt xf
[root@xuexi ~]# userdel -r tt //tt组包含其他⽤户
userdel:组“tt”没有移除,因为它包含其它成员。 //tt组删除失败,但⽤户删除成功
[root@xuexi ~]# userdel -r t1
[root@xuexi ~]# ls /home/
caojh myd t2 xf
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论