[关闭]
@cdmonkey 2016-05-17T09:30:21.000000Z 字数 2619 阅读 1300

useradd

命令总结


创建新用户,要求新创建的用户在系统中不能已经存在。可以使用useradd命令来新建用户,密码的给与则使用passwd命令。使用该指令所建立的帐号,实际上是保存在“/etc/passwd”文件中。

命令格式:

  1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明]
  2. [-d 主文件夹绝对路径] [-s shell] username

常用选项:

选项 长选项 说明
-u.. --uid 后面接的是UID,是组数字,直接指定一个特定的UID给这个用户账号。但是要求这个UID必须唯一而且符合/etc/login.defs中的设定范围。
-g --gid 后面接的用户组就是“初始用户组(initial group)”,该GID会被放置到/etc/passwd的第四个字段内。如果接GID,则这个指定的GID对应的组必须已经存在。
-G --groups 后面接的组名则是这个账号还可以加入的用户组。这个参数会修改/etc/group内的相关数据。
-M 强制!不创建用户的主目录(系统账号默认值)。优先于/etc/login.defs文件的设定。
-m --create-home 强制!要创建用户的主目录(一般账号默认值)。并且将/etc/skel目录下的文件全部复制到新建用户的主目录下。如果在创建新用户时没有用该选项,且/etc/login.defs文件中的配置项CREATE_HOME不是yes,则不会创建主目录。
-N --no-user-group 取消建立以用户名称为名的群组。
-c --comment 备注信息,这个就是/etc/passwd的第五个字段内的内容,随意。
-d --home 指定某个目录作为主目录,而不使用默认值,必须是绝对路径。如果指定的主目录不存在,系统会自动创建。
-D --defaults 变更预设值。
-e --expiredate 指定帐号的有效期限,缺省表示永久有效。日期的指定格式为:2014/08/18。CentOS 6.x到终止日期就无法登陆,比CentOS 5.x严格。
-f --inactive 指定在密码过期后多少天即关闭该帐号。当值为0时帐号立刻会被停权。而当值为-1时则表示关闭此功能,预设值为-1。
-r --system 建立系统帐号。
-s --shell 指定用户登录后使用的shell。如果指定了使用/sbin/nologin,则可以禁止用户登录。如果没有指定,则参考/etc/default/useradd中的配置内容。

需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

默认配置:创建新用户的默认配置文件为:/etc/default/useradd(useradd defaults file)

  1. [root@LB-N1 ~]# cat /etc/default/useradd
  2. # useradd defaults file
  3. GROUP=100
  4. HOME=/home
  5. INACTIVE=-1
  6. EXPIRE=
  7. SHELL=/bin/bash
  8. SKEL=/etc/skel
  9. CREATE_MAIL_SPOOL=yes
条目 作用
GROUP=100 表示可创建普通组。
HOME=/home 用户主目录的默认地址。
INACTIVE=-1 是否启用帐号过期停权:-1表示不启用;宽限天数;0表示立即停权。
EXPIRE= 帐号终止日期,不设置表示不启用。
SHELL=/bin/bash 默认shell。
SKEL=/etc/skel 用户家目录中的环境文件的所在地址。
CREATE_MAIL_SPOOL=yes 是否创建用户邮件缓冲。

经验技巧:

  1. [root@LB-N1 ~]# useradd -u 520 -g test oldboy
  2. [root@LB-N1 ~]# grep oldboy /etc/passwd
  3. oldboy:x:520:502::/home/oldboy:/bin/bash
  4. --------------
  5. [root@LB-N1 ~]# useradd -u 555 -g 555 nono
  6. useradd: group '555' does not exist
  7. #看来-g后面要跟一个已经存在的组名。
  8. --------------
  9. #创建用户并设置账号的有效期:
  10. [root@LB-N1 ~]# useradd nono -e "2015/02/20"

useradd指令通过使用-D选项可以修改默认选项(即修改配置文件/etc/default/useradd)。

  1. #单纯使用-D选项会显示当前的预设值:
  2. [root@LB-N1 ~]# useradd -D
  3. GROUP=100
  4. HOME=/home
  5. INACTIVE=-1
  6. EXPIRE=
  7. SHELL=/bin/bash
  8. SKEL=/etc/skel
  9. CREATE_MAIL_SPOOL=yes

总结:添加用户过程其实蛮复杂的,它涉及到的文件有很多。

此处输入图片的描述

  1. [root@LB-N1 ~]# cat /etc/login.defs
  2. MAIL_DIR /var/spool/mail
  3. PASS_MAX_DAYS 99999
  4. PASS_MIN_DAYS 0
  5. PASS_MIN_LEN 5
  6. PASS_WARN_AGE 7
  7. UID_MIN 500
  8. UID_MAX 60000
  9. GID_MIN 500
  10. GID_MAX 60000
  11. CREATE_HOME yes
  12. UMASK 077
  13. USERGROUPS_ENAB yes
  14. ENCRYPT_METHOD SHA512
  1. [root@LB-N1 ~]# ls -al /etc/skel/
  2. total 32
  3. drwxr-xr-x. 3 root root 4096 Nov 13 17:41 .
  4. drwxr-xr-x. 98 root root 12288 Dec 29 20:31 ..
  5. -rw-r--r--. 1 root root 18 Jul 18 2013 .bash_logout
  6. -rw-r--r--. 1 root root 176 Jul 18 2013 .bash_profile
  7. -rw-r--r--. 1 root root 124 Jul 18 2013 .bashrc
  8. drwxr-xr-x. 2 root root 4096 Nov 12 2010 .gnome2
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注