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类型详见:查看所有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变量指定。
  -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

  

Linux命令之useradd的更多相关文章

  1. Linux命令:useradd

    Linux下:useradd 等价于 adduser     Aix下:useradd 来自为知笔记(Wiz)

  2. Linux命令之useradd和userdel(添加、删除用户)

    一.[useradd]:添加用户命令 1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s sh ...

  3. Linux命令学习-useradd和usermod

    1.useradd 创建用户的时候创建家目录 useradd luyun :创建用户luyun,系统会自动创建/home/luyun 目录,此目录便是luyun的家目录. useradd -d /ho ...

  4. 【每天一个Linux命令】10. 用户账号的新建/修改/删除以及密码修改 useradd/usemod/userdel/passwd

    在 Linux 系统中,与用户管理有关的文件主要有如下几个:分别是/etc/passwd,/etc/shadow,/etc/gfoup,/etc/gshadow .它们分别与用户的账号,密码,用户组及 ...

  5. 一起来学习linux创建用户useradd命令

    linux创建用户useradd命令 原文地址:linux创建用户useradd命令 http://www.xfcodes.com/linuxcmd/user/24308.htm 一,adduser与 ...

  6. linux命令(53):useradd,区别于adduser

    adduser和useradd的区别: useradd是一个linux命令,但是它提供了很多参数在用户使用的时候根据自己的需要进行设置: 而adduser是一个perl 脚本,在使用的时候会 出现类似 ...

  7. Linux 用户篇——用户管理命令之useradd、passwd、userdel、usermod

    一.用户重要,用户管理命令同样重要 用户是Linux系统安全的核心,每个登录Linux系统的用户都会分配相应的权限,这些权限取决于能否访问系统中各种对象.而管理这些用户的相关信息离不开用户管理命令,比 ...

  8. 在Linux中新增与删除用户可以使用命令:Useradd

    在Linux中新增与删除用户可以使用命令:Useradd 我们先使用man命令理解一下Useradd的用法 新增与删除用户操作需要先获取高级用户权限 输入命令:sudo -i 确定后输入高级用户密码 ...

  9. (转)linux命令详解之useradd命令使用方法

    linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...

随机推荐

  1. [洛谷P3444] [POI2006]ORK-Ploughing

    洛谷题目链接[POI2006]ORK-Ploughing 题目描述 Byteasar, the farmer, wants to plough his rectangular field. He ca ...

  2. HDFS不存在绝对路径,无法找到文件所在具体位置

    This is set in the dfs.datanode.data.dir property, which defaults to file://${hadoop.tmp.dir}/dfs/da ...

  3. HDU 1728 逃离迷宫 (广搜)

    题目链接 Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可 ...

  4. React组件生命周期小结

    React组件生命周期小结 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函 ...

  5. Android日历开发之右上角标注红点事件

    1.效果如下所示: 2.方法:      前提:已经知道如何在右上角画圆点的情况下.      这是一个任务显示器,每个任务都有一个时间,比如2014.01.12.      如果要标注2016.08 ...

  6. DIV+CSS综合实例【传智PHP首页】

    1.首页结构 2.准备工作 所有素材放到与当前网页同级的目录下: 网页背景色.背景图: 主页宽度:1000px: 创建CSS文件,将CSS文件引入到当前的HTML文件中. 3.实现 效果图: HTML ...

  7. java===java基础学习(1)---数据类型,运算,变量,常量

    今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...

  8. 如何用jQuery获得radio的值

    如何获得radio的值,在网上查了一下,下面总结几种解决方法,. 1.获取选中值: $('input:radio:checked').val(): $("input[type='radio' ...

  9. [LabVIEW架构]ActorFramework(一)

    前言 小黑结婚回来第二周了,每天忙于程序设计,时间比较紧张,所以文章一直没出来,也算憋大招了. 近期小黑将与大家一起认识一下ActorFramework,既是对自己一段时间写AF程序的总结,也是梳理, ...

  10. ie6、ie7下overflow失效

    如果父对象有overflow:hidden属性,子对象中的position属性是relative或者absolute, 那么在ie6和ie7下父对象的overflow会失效,解决办法是给父对象加rel ...