1. 添加用户:useradd
[root@localhost~ ] # useradd [选项] 用户名
选项:
-u UID:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d 家目录:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-c 用户说明,即/etc/passwd中的第五个字段
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。/etc/passwd中的第八个字段
-g:指定用户的基本组名(或使用 GID 号)。
-G:指定用户的附加组名(或使用 GID 号)。
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s shell:指定用户的登录 Shell。
-o 允许创建的用户的UID相同,useradd -u 0 -o local
1.1 useradd 默认值
useradd 添加用户时参考的默认值文件主要有两个, 分别是 /etc/default/useradd 和
/etc/login.defs
1.1.1/etc/default/useradd
[root@localhost ~]# vi /etc/default/useradd
挨个解释下:
GROUP=100
这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。
目前我们采用的机制私有用户组机制,即系统会创建一个和用户名系统的用户组作为用户的初始组。
HOME=/home
这个选项是用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下。
INACTIVE=-1
这个选项就是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。如果是天数,比如 10 代表密码过期后 10 天后失效;如果是 0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里默认值是-1,所以所有新建立的用户密码都不会失效。
EXPIRE=
这个选项是密码失效时间,也就是/etc/shadow 文件的第八个字段。也就说用户到达这个日期后就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash
这个选项是用户的默认 shell 的。/bin/bash 是 Linux 的标志 shell,所以所有新建立的用户默认都具备 shell 赋予的权限。
SKEL=/etc/skel
这个选项就是定义用户的模板目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中。
CREATE_MAIL_SPOOL=yes
这个选项定义是否给新建用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spool/mail/下和用户名相同。
注:该文件可通过useradd -D 进行查看。
1.1.2/etc/login.defs
[root@localhost ~]# vi /etc/login.defs
#这个文件有些注释,把注释删除掉,文件内容就变成下面这个样子了
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
UMASK 077
USERGROUPS_ENAB yes
ENCRYPYT_METHOD SHA512
我们一行一行解释下文件内容:
MAIL_DIR /var/spool/mail
这行指定了新建用户的默认邮箱位置。比如 user1 用户的邮箱是就/var/spool/mail/user1。、
PASS_MAX_DAYS 99999
这行指定的是密码的有效期,也就是/etc/shadow 文件的第五字段。代表多少天之后必须修改密码,默认值是 99999。
PASS_MIN_DAYS 0
这行指定的是两次密码的修改间隔时间,也就是/etc/shadow 文件的第四字段。代表第一次修改密码之后,几天后才能再次修改密码。默认值是 0。
PASS_MIN_LEN 5
这行代表密码的最小长度,默认不小于 5 位。但是我们现在用户登录时验证已经被 PAM 模块取代, 所以这个选项并不生效。
PASS_WARN_AGE 7
这行代表密码修改到期前的警告天数,也就是/etc/shadow 文件的第六字段。代表密码到底有效期前多少天开始进行警告提醒,默认值是 7 天。
UID_MIN 500
UID_MAX 60000
这两行代表创建用户时,最小 UID 和最大的 UID 的范围。我们 2.6.x 内核开始,Linux 用户的 UID
最大可以支持 232 这么多,但是真正使用时最大范围是 60000。还要注意如果我手工指定了一个用户的
UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500-549 之间的 UID 没有使用(小于 500 的 UID 是给伪用户预留的)。
GID_MIN 500
GID_MAX 60000
这两行指定了 GID 的最小值和最大值之间的范围。
CREATE_HOME yes
这行指定建立用户时是否自动建立用户的家目录,默认是建立
UMASK 077
这行指定的是建立的用户家目录的默认权限,因为 umask 值是 077,所以新建的用户家目录的权限是 700,
USERGROUPS_ENAB yes
这行指定的是使用命令 userdel 删除用户时,是否删除用户的初始组,默认是删除。
ENCRYPT_METHOD SHA512
这行指定 Linux 用户的密码使用 SHA512 散列模式加密,这是新的密码加密模式,原先的 Linux只能用 DES 或 MD5 方式加密
2.修改用户密码命令
[root@localhost~ ] # passwd [选项] 用户名