Linux系统中的用户管理
1.用户及用户组存在的意义
【1】用户存在的意义
系统资源时有限的,如何合理分配资源?
在这个问题解决时必须要有三个资源的配合
- 身份:account
- 授权:author
- 认证:auth
即3A机制,3A机制组成系统中最底层的安全架构
【2】用户组存在的意义
用户组是一个逻辑容器,对用户进行归类和统一授权
2. 用户及用户组在系统中的存在方式
电脑对数字敏感 | ID |
---|
人类对字符串敏感 | 名称 |
ID:名称,必须要记录到文件当中的用户才能存在,用户就是/etc/passwd 文件中的一行字符 | |
用户组存在的方式就是/etc/group 文件中的一行字符 | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d82f273f47131a71ce6265f1bb143ae7.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/13cdf0b46b0360b85e3fc2904faeeaa8.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ec8126bc383e18c84c230f1f8220cc4b.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a02397c268b4a2b5b5b8d2dd9c4f8108.png) | |
3.用户切换
【1】用户查看
whoami | 查看当前用户 |
---|
id | 查看用户的id信息 |
id -u | 查看用户的用户id |
id -g | -查看用户主组id |
id -G | 查看用户所有的组的id |
id -n | 显示名称 |
【2】用户切换
root→commonuser | 不需要后者密码 |
---|
commonuser→root | 需要密码 |
commonuser→commonuer | 需要密码 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2d76350d82f6fc533bdd4b4c9cd00852.png)
如下图所示:切换用户即用户环境时命令为su - xy,如果使用命令su xy则只切换用户,而没有切换用户环境
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/76df0fc665fdf16a325a4828ba527b29.png)
注意:
(1)在做用户切换时当使用完毕用户身份及时退出
(2)不要在一个shell中反复执行 su 命令
(3)在一个shell中反复执行 su 命令会导致环境错乱
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1f6a57182f550843c6b35c98108119a3.png)
4.用户涉及到的系统配置文件
【1】
- 用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
【2】
【3】
/etc/skel/ .* | 用户环境配置模板 |
---|
/etc/shadow | 用户认证信息文件 |
/home/username | 用户家目录 |
5.用户和用户组的建立及删除
【1】监控用户建立的命令
[root@localhost Desktop]
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e891395b4d8a6e6c69ede63707c4cc55.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/63fa303de43e8822adbc2d9a971c34ce.png)
Ctrl+C即可结束监控命令
【2】
useradd username | 用户建立 |
---|
useradd -u id username | uid,2**16=655535 |
- 0:表示超级用户
- 1-200:系统预留id
- 201-999:系统用户
- 1000-60000:用户级用户
- /etc/login.dafs:记录用户建立的默认规则
useradd -g id username | 主组id |
---|
useradd -G id username | 附加组id |
useradd -d dir username | 指定用户家目录 |
useradd -c word username | 指定用户说明 |
useradd -s shell username | 指定用shell |
userdel -r username | 用户删除 -r 删除用户的系统配置文件 |
groupadd groupname | 组建立 |
groupadd -g id groupname | 指定组名称 |
groupdel groupname | 组删除 |
6.用户和用户组的信息管理
usermod -l | 更改用户名称 |
---|
usermod -u | 更用户id |
usermod -g | 更改主组id |
usermod -G | 更改用户附加组身份 |
usermod -aG | 添加用户附加组身份 |
usermod -c | 更改用户说明 |
usermod -d | 更改家目录指向 |
usermod -md | 更改家目录指向同时更改家目录名称 |
usermod -s | 更改默认shell |
userod -L | 冻结账号 |
usermod -u | 解锁 |
groupmod -g | 更改用户组id |
7.用户认证信息管理
【1】用户名称
即此处使用的监控命令:
[root@localhost Desktop]
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cee8f69cc7dfb32c9d2b9b61d8882870.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/65a6851d5ae3bf22513f74512d8baa46.png)
【2】用户加密字符
root用户也可以使用 “echo 123 | passwd --stdin lee"更改密码
passwd | 普通用户更改密码Changing password for user lee. |
---|
Current password: | 输入原始密码 |
New password: | 输入新密码(8位以上无序数字+无序字母组合) |
Rrtype new passwd: | 重新输入密码 |
passwd: all authentication tokens updated successfully. | |
passwd -l xy | 冻结账号认证 |
---|
passwd -u xy | 解冻账号认证 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9bd05940adf9c2d27d502a9eb03a42af.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6773d0063d51407082ad005b78603059.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cd2fc6ae322801c6460ea311a000e2ed.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/89f8919e8db3b043566d245f0b6fe3c7.png) | |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a34d3a51390440f763d7fd36398cd0a9.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7988eb8915a6344de0fd4f30d108b38e.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/63a757940947c00269293a797b015cbd.png)
【3】密码的使用天数
从1978-1-1算其到今天的时间
chage -d 0 xy同理,使用此命令后,账号必须修改密码才能登陆系统
passwd -n 1 xy | xy在一天内不能改密码 |
---|
change -m 1 xy同理 | |
passwd -x 40 xy | 40天内xy用户必须更新密码 |
---|
change -M 30 xy同理 | |
passwd -w 2 xy | 账号过期前警告时间 |
---|
change -W 1 xy 同理 | |
passwd -i 2 xy | 账号认证最大时间超过后还能使用天数 |
---|
change -I 1 xy 同理 | |
change -E “2020-05-11” | 到2020-5-11这天账号会被冻结 |
---|
8.用户权力下放
在系统中普通用户是无法执行系统管理命令的,如果需要普通用户执行系统管理动作那么需要root用户授权
【1】普通用户授权方式“sudo”
作用:可以使普通用户使用指定的用户身份运行命令
授权方法:
visudo | 此命令作用是编辑/etc/sudoers并提供语法检测 |
---|
xy localhost.localdomain=(root) /usr/sbin/useradd
xy用户在 localhost.localdomain=(用超级用户身份) 执行useradd命令
username hostname=(newusername) [NOPASSWD:] /command, /command1```
westos用户 在localhost.localdomain 使用超户 免密 执行useadd和userdel
westos localhost.localdomain =(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
在文件的100行左右编写(此处为方便观察到操作使用:set nu命令添加行号)
代码的规范性
此处未选择免密执行:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4a6ac1f27f9380ea6755d749508a4ebc.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/183c6b0d23dad88822a1d9f10273b3fd.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f7673e6460d6a8fdf445d580931ea464.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/875d920a203cacf89b7b3de474de0c2b.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/15e0e7f92f9291f916b4564e0d412618.png)
此处为免密执行:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/11f24d83fb6c07f22ed096eefd575cf2.png)
测试:`
[root@localhost Desktop]
[xy@localhost ~]$ sudo useradd westostext 在xy第一次使用sudo命令时需要输入xy密码
[xy@localhost ~]$ exit 退出xy
[root@localhost Desktop]
[westos@ localhost ~]$ sudo userdel -r westostext westos可以免密执行userdel 命令
9. getent
使用getent命令可以查看当前系统中有哪些用户
语法:getent passwd
查看系统中有哪些组:getent group
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/363986171b15e7458c4ac53e7fe466ea.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b38fef47f2065393cabdd8522e5b71f8.png)