一、用户管理
1、用户的配置文件:
①
说明: 所属者权限 所属组权限 其他人权限. 硬链接次数 所属者 所属组 日期 文件
②
说明: 用户名:密码占位符:用户uid号:gid(基础组名):用户备注(登录提示符):用户的家目录所在路径:和根(系统)交互使用的shell
2、用户:
① 超级用户:root,uid为0
② 系统用户:用来管理和运行服务,系统用户的shell为/sbin/nologin,不让该用户登录,uid为201-999
③ 一般用户:权限比较低,uid为1000-60000,添加一般用户时,系统默认为该用户创建主目录和邮箱(/home/用户名) (/var/mail/用户名)
3、添加用户:
① 添加普通用户:useradd 用户名=adduser 用户名
② 添加系统用户:useradd -r 用户名,添加系统用户,不创建主目录和邮箱
③ 添加用户并用选项指定参数:useradd 用户名 -u uid号 -g gid号/组名(只能有一个) -G 附加组/组名(可以多个) -c 备注 -s 指定shell -d 指定家目录
4、添加用户时会创建的相关信息设置(/etc/default/useradd):
参数 | 含义 |
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/ 目录下,和用户名相同。 |
说明:ll -a //etc/skel:
5、① 修改/etc/default/useradd文件的方法,第一种可以直接用vim修改,第二种可以用useradd -D命令修改。
选项+参数 | 含义 |
-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/login.defs定义了与/etc/passwd和/etc/shadow配套的用户限制设定
/etc/skel 用户家目录下相关隐藏文件
6、查看用户: id 查看用户的uid、gid以及组
说明:group=0为基本组,其他(1000)都为附加组。
7、删除用户:userdel -r 用户名
① 删除普通用户时userdel加参数-r会删除用户的家目录和邮箱,不加-r则不会删除
② 删除系统用户时userdel加参数-r本来是会删除用户家目录和邮箱,单系统用户没有邮箱所以会提示没有要删除的内容。
8、修改用户信息:usermod
-c | 改变用户的全名或者说描述名称 |
-d | 变用户的家目录 |
-e | 设置用户账号的过期时间 |
-f | 密码的过期宽限时间 |
-g | 改变用户的gid |
-G | 将用户添加入一个新组 |
-s | 改变用户的默认shell |
-l | 改变用户用户名 |
-u | 改变用户的uid |
-L | 锁住密码,使账号不能用(密码前!) |
-U | 为用户密码解锁(密码前体格感叹号消失) |
给用户追加附加组:usermod -a -G 组名 用户名
(加上选项-a表示add追加附加组,若不加-a,只有-G一个选项则表示覆盖了之前的附加组。)
9、管理用户密码:
① 用户的密码文件:/etc/shadow
② 文件内容:用8个冒号分隔开9个字段
(1)用户名
(2)密码($id$salt$encrypted,1为md5,2a为Blowfish,5为SHA-256,6为SHA-512。salt是一个最多16字符的随机生成的字符串,用来增加破解难度。encrypted是经过加密算法和salt算出来的密文。!!表示锁定状态,没有设置过密码)。
(3)最后一次修改密码的时间,从1970年1月1日(计算机计时起点时间)到最后一次修改密码所经过的天数。
(4)密码最短使用期限,为0表示不限制。
(5)密码最长使用期限,密码使用多长时间之后必须要改密码,99999表示密码永久有效。
(6)密码过期警告时间,密码过期前多少天进行警告,提示用户改密码,但是不锁定用户。
(7)密码过期宽限期限,密码过期后必须改密码的时间,如果还没改,锁定用户,就只能找网管了。
(8)账号过期精确时间,如果为99999,意味着永不过期。是从1970年1月1日之后的天数。
(9)保留字段。(可以自定义)
10、修改密码:passwd 用户名
-n |
指定密码的最短使用期限 |
-x |
指定密码的最长使用期限 |
-w |
设置密码过期警告时间 |
-l | 锁定用户账号密码(密码前!!) |
-u | 解锁用户账号 (密码前两个感叹号消失) |
-d |
删除用户密码,在redhat中,空密码用户可以登陆 |
直接修改密码不进行交互:echo 密码 | passwd --stdin 用户名
二、用户组管理
1、组配置文件: /etc/group
2、文件内容:三个冒号分隔开四个字段
说明: 组名:组密码占位符:gid:用户列表(组里有哪些用户)
3、组:
①私有组:当组里只有它一个成员时,它的基本组也叫做私有组
②基本组:用户的默认组(班级)
③附加组:默认组以外的组(学生会)
4、创建组:groupadd -g gid 组名
5、修改组信息:groupmod -n 新组名 -g gid 原组名
6、删除组(无法删除用户的基本组):groupdel 组名
7、组密码的相关信息:/etc/gshadow
①
(root用户有所有权限,其他用户没有任何权限)
②文件内容:
例: student:!!::student
说明:组名:组密码(!开头,表示无合法密码,无群组管理员):群组管理员账号:用户列表(附加组里有哪些用户)
8、修改组密码:gpasswd
-a | 添加用户到组 |
-d | 将指定用户移出本组(从附加组移除) |
-M | 设置组成员列表 |
-A | 指定组管理员为哪个用户 |
-r | 删除组密码 |
9、登陆一个新组:newgrp
10、退出登录的组:exit