5.1用户管理
用户的配置文件:-rw-r–r--. 1 root(所属者) root(所属组) 2416 Aug 25 10:11 /etc/passwd
用户名login名:密码占位符x:用户uid号:gid:备注(登录时的名):用户的家目录:和根交互使用的shell
用户:
超级用户:root,uid为0
系统用户:用来管理和运行服务,系统用户的shell为/sbin/nologin,不让该用户登录,uid为201-999
一般用户:1000-60000,添加一般用户时,系统默认为该用户创建主目录和邮箱(/home/用户名)(/var/mail/用户名)
添加用户
添加普通用户:useradd 用户名=adduser 用户名
添加系统用户:useradd -r 用户名,添加系统用户,不创建主目录和邮箱
添加用户并用选项指定参数:useradd 用户名 -u uid号
-g基本组 gid号/组名 -G 附加组/组名 -c 备注 -s 指定shell -d 指定家目录
添加用户时会创建的相关信息设置:
参数 含义
GR0UP=100 这个选项用于建立用户的默认组,也就是说,在添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在添加用户时会自动建立和用户名相同的组作为此用户的初始组。也就是说这个选项并不会生效。Linux中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个和用户名相同的用户组作为用户的初始组;另一种是公共用户组机制,系统用GID 是 100 的用户组作为所有新建用户的初始组。目前我们采用的是私有用户组机制。
HOME=/home 指的是用户主目录的默认位置,所有新建用户的主目录默认都在/home/下。
INACTIVE=-1 指的是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。这里默认值是 -1,代表所有新建立的用户密码永远不会失效。
EXPIRE= 表示账号过期时间,也就是
/etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash 表示所有新建立的用户默认Shell 都是 /bin/bash。
SKEL=/etc/skel 在创建一个新用户后,你会发现,该用户主目录并不是空目录,而是有.bash_profile、.bashrc 等文件,这些文件都是从/etc/skel 目录中自动复制过来的。因此,更改 /etc/skel 目录下的内容就可以改变新建用户默认主目录中的配置文件信息。
CREATE_MAIL_SPOOL=yes 指的是给新建用户建立邮箱,默认是创建。也就是说,对于所有的新建用户,系统都会新建一个邮箱,放在/var/spool/mail/ 目录下,和用户名相同。
选项+参数 含义
-b HOME 设置所创建的主目录所在的默认目录,只需用目录名替换HOME 即可,例如 useradd -D -b /mulu1。
-e EXPIRE 设置密码失效时间,EXPIRE参数应使用 YYYY-MM-DD 格式,例如useradd -D -e 2019-10-17。
-f INACTIVE 设置密码过期的宽限天数,例如useradd -D -f 7。
-g GROUP 设置新用户所在的初始组,例如useradd -D -g group1。
-s SHELL 设置新用户的默认shell,SHELL 必须是完整路径,例如useradd -D -s /usr/bin/csh。
修改/etc/default/useradd文件的方法,第一种可以直接用vim修改,第二种可以用useradd -D命令修改
/etc/login.defs定义了与/etc/passwd和/etc/shadow配套的用户限制设定
/etc/skel 用户家目录下相关隐藏文件
查看用户:
id 查看用户的uid、gid以及组
删除用户:
userdel -r 用户名
删除用户时userdel加参数-r和不加参数-r的区别
修改用户信息:usermod
-c 改变用户的全名或者说描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-f 密码的过期宽限时间
-g 改变用户的gid
-G 将用户添加入一个新组
-s 改变用户的默认shell
-l 改变用户用户名
-u 改变用户的uid
-L 锁住密码,使账号不能用
-U 为用户密码解锁
给用户追加附加组:usermod -a -G 组名 用户名
管理用户密码
用户的密码文件:----------. 1 root root 1434 Aug 25 10:10 /etc/shadow 用户名
密码( i d id idsalt$encrypted,1为md5,2a为Blowfish,5为SHA-256,6为SHA-512。salt是一个最多16字符的随机生成的字符串,用来增加破解难度。encrypted是经过加密算法和salt算出来的密文。!!表示锁定状态)。
最后一次修改密码的时间,从1970年1月1日到最后一次修改密码所经过的天数。
密码最短使用期限,为0表示不限制。
密码最长使用期限,密码使用多长时间之后必须要改密码,99999表示密码永久有效。
密码过期警告时间,密码过期前多少天进行警告,提示用户改密码,但是不锁定用户。
密码过期宽限期限,密码过期后必须改密码的时间,如果还没改,锁定用户,就只能找网管了。
账号过期精确时间,如果为99999,意味着永不过期。是从1970年1月1日之后的天数。
保留字段
修改密码:
passwd 用户名
-n 指定密码的最短使用期限
-x 指定密码的最长使用期限
-w 设置密码过期警告时间
-l 锁定用户账号密码
-u 解锁用户账号
-d 删除用户密码,在redhat中,空密码用户禁止登陆
echo 密码 | passwd --stdin 用户名