useradd命令
useradd用户管理命令。帐号建立或更新新用户资讯的工具。
当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则,根据设置的规则添加用户,同时会向/etc/passwd和/etc/group文件内添加新建用户和用户组记录。/etc/passwd和/etc/group对应的加密资讯文件/etc/shadow和/etc/gshadow也会同步生成记录,同时系统还会根据/etc/default/useradd文件中所配置的信息建立用户的家目录,并复制/etc/skel中的所有文件到新用户的家目录中。
useradd语法
useradd [-c comment] [-d home_dir]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-m [-k skeleton_dir] | -M] [-s shell]
[-u uid [ -o]] [-n] [-r] login
useradd -D [-g default_group] [-b default_home]
[-f default_inactive] [-e default_expire_date]
[-s default_shell]
当不加-D参数时,useradd指令使用命令列来指定新帐号的设定值和使用系统上的预设值(/etc/login.defs和/etc/default/useradd等配置文件)。
useradd参数选项 | 说明 |
---|---|
-c comment | 就是 /etc/passwd 第五栏的用户说明信息 |
-d home_dir | 用此参数后面指定的路径做为新帐号的家目录,而不使用默认值 |
-e expire_date | 帐号终止日期 |
-g initial_group | 后面接的用户组名称就是之前提到的初始用户组。该group ID(GID)会放置到 /etc/passwd 的第四个字段内。 |
-G group,[…] | 定义此用户为多个不同groups的成员。每个用户组使用“,”分隔 |
-M | 不建立家目录,优先于/etc/login.defs文件的设定。一般创建虚拟用户时不建立家目录,部署服务时需要创建虚拟用户 |
-s shell | 指定预设的登入shell |
-u uid | 用户的ID值 |
实例
1.-c 加说明信息
2.-d 指定家目录
3.-e 帐号终止日期
[root@ianLinux ~]# useradd -e "2016/09/21" Lisa3
之前测试时我将时间改为2016/09/21,但注销Lisa3之后却能再次登录。
但是当我把时间改为2016/09/30时,注销Lisa3之后不能再次登录了,提示帐号已经过期。
[Lisa3@ianLinux ~]$ whoami
Lisa3
[Lisa3@ianLinux ~]$ logout
...
Your account has expired; please contact your system administrator
4.useradd -c、-u、-G、-s、-d多个参数组合例子,自定义用户的家目录、shell类型、所属的用户组等。
添加用户Lisa4,并设置其用户注释信息为TestAccount,UID指定位806。归属为用户组root、Ian、Lisa,其shell类型为/bin/sh,设置家目录为/opt/Lisa4。
[root@ianLinux ~]# useradd Lisa4 -c TestAccount -u 806 -G root,Ian,Lisa -s /bin/sh -d /opt/Lisa4
5.添加一个用户IanA,并指定属于sa组,要求组ID为801,uid为808,并且不建立家目录及禁止其登陆。
[root@ianLinux data]# groupadd -g 801 sa
[root@ianLinux data]# useradd -u 808 -g sa -M -s /sbin/nologin IanA
[root@ianLinux data]# tail -1 /etc/passwd
IanA:x:808:801::/home/IanA:/sbin/nologin
[root@ianLinux data]# id IanA
uid=808(IanA) gid=801(sa) 组=801(sa)
与useradd相关联的文件
- /etc/passwd 用户账号文件
- /etc/shadow 用户账号密码文件
- /etc/group 用户组文件
- /etc/gshadow 组密码文件
- /etc/login.defs
- /etc/default/useradd
- /etc/skel
/etc/login.defs
/etc/login.defs文件是用来定义创建用户时需要的一些用户的配置信息。如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等等。
要不要创建家目录
密码的最大有效期限99999,更换密码的最小天数,密码的最小长度,密码失效前提前多少天开始警告
UID与GID的范围
家目录的umask 077
家目录的权限为777-077=700
删除用户同时删除用户组
/etc/default/useradd
/etc/default/useradd文件是在使用useradd添加用户时的一个需要调用的一个默认的配置文件,可以使用“useradd -D 参数”,这样的命令格式来修改文件里面的内容。也可以直接用vim编辑文件。
GROUP=100
HOME=/home # 把用户的家目录建在/home中
INACTIVE=-1 # 是否启用帐号过期停权,-1表示不启用
EXPIRE= # 帐号终止日期,不设置表示不启用
SHELL=/bin/cat # 新用户默认所用的shell类型
SKEL=/etc/skel #配置新用户家目录的默认文件存放路径
CREATE_MAIL_SPOOL=yes # 创建mail文件
(1)SKEL
将SKEL=/etc/skel
改为SKEL=/tmp
(2)SHELL
将SHELL=/bin/bash
改为SHELL=/bin/cat
使用useradd -D +参数
(1)useradd -D -e default_expire_date (修改默认过期时间)
(2)useradd -D -s default_shell(修改新用户默认登入shell)
/etc/skel
有关/etc/skel详细内容: