1、用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
3A机制,3A机制组成系统中最底层的安全架构
2)用
户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
电脑对数字敏感
id
人类对字符串敏感 名称
id
<------->
名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行
3.用户切换
1
)
用户查看
*
whomai
查看当前用户
*
id
查看用户
id
信息
-
u
查看用户的用户
id
-
g
查看用户主组
id
-
G
查看用户所有的组的
id
-
n
显示名称
用户
id
范围
:
0
-
65535
0
:
Linux超级用户
ID
1
-
999
: Liunx系统自用
ID
1000
65535
: 用户 级ID
以上
ID
设定规则都被记录在
/
etc
/
login.defs
2)用户切换
su
-
username
-
切换用户环境
username
如果
root
---->
commonuser 不需要后者密码
commonuser
---->
root 需要密码
commonuser
---->
commonuser 需要密码
注意:在做用户切换时当使用完毕用户身份及时退出 不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱。
![](https://i-blog.csdnimg.cn/blog_migrate/2bc74996310275237f055db947ee726f.png)
4.用户涉及到的系统配置文件
/etc/passwd
用户身份信息文件
用户名称
:
用户密码
:
用户
id
:
用户主组
id
:
用户说明
:
用户家目录
:
用户默认
shell
/etc/group
组身份信息文件
组名称:
组密码
:
组
id
:
组的附加成员
/
etc
/
skel
/.*
用户环境配置文件模板
/etc/shadow
用户认证信息文件
/
home
/
username 用户家目录
/var/spool/mail/username
用户邮箱文件
5.用户和用户组建立及删除
监控用户建立的命令
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"
useradd username 用
户建立
-
u id username uid
-
g id username
主组
id
-
G id username
附加组
id
-
d dir username
指定用户家目录
-
M username
建立用户时不建立家目录
-
c word username
指定用户说明
-
s shell username
指定用
shell
userdel
-
r username 用户删除
-r 删除用户的系统配置文件
groupadd groupname
组建立
-
g id groupname
指定组名称
groupdel groupname
组删除
![](https://i-blog.csdnimg.cn/blog_migrate/6d3c3fff62ad3db85001d77496d8eb80.png)
6.用户和用户组的信息管理
usermod
-
l
更改用户名称
-
u
更改用户
id
-
g
更改主组
id
-
G
更改用户附加组身份
-
aG
添加用户附加组身份
-
c
更改用户说明
-
d
更改家目录指向
-
md
更改家目录指向同时更改家目录名称
-
s
更改默认
shell
-
L
冻结账号
-
U
解锁
groupmod
-
g
更改用户组
id
![](https://i-blog.csdnimg.cn/blog_migrate/041ac29d4cbf6398f832cce6bd2c74d2.png)
7.用户认证信息管理
监控
用户认证信息管理的过程
watch -n 1 "tail -n 4 /etc/shadow ;passwd -S lee”
/etc/shadow 文件内容说明
用户名称
:
用户密码的加密字符
:
用户密码最后一次被修改时间
:
密码最短有效期
:
密码最长有效期
:
密码过期前警告期
:
账号非活跃期
:
账号到期时间
:
用户自定义
(
未使用
)
1.用户名称
passwd -S lee 查看密码状态
2.用户加密字符
更改密码)`
passwd lee 只有root可以执行
“echo 123 | passwd --stdin lee”
passwd 普通用户改密码
Changing password for user lee.
Current password: 输入原始密码
New password: 输入新密码(8位以上无序数字+无序字母组合)
Retype new password: 重复输入
passwd: all authentication tokens updated successfully.
冻结认证)
passwd -l lee
冻结账号认证
passwd -u lee
解锁账号认证
密码删除)
passwd -d lee
密码使用天数 (从1970-1-1算其到今天的时间)
passwd -e lee
修改默认使用时间为0
chage -d 0 lee
账号必须改密码才能登陆系统
密码最短有效期
paswd -n 1 lee
lee在1天内不能改密码
chage -m 1 lee
密码最长有效期
passwd -x 40 lee
40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
密码过期警告
passwd -w 2 lee
账号过期前警告时间
chage -W 1 lee
认证非活跃天数
passwd -i 2 lee
账号认证最大时间超过后还能用多久
chage -I 1 lee
账号认证到期时间
chage -E "2020-05-11" lee
到2020-5-11这天账号会被冻结
未启用功能
![](https://i-blog.csdnimg.cn/blog_migrate/db574dc122ec6eb547ce10ba842b86b7.png)
8.用户权力下放
在系统中普通用户时无法执行系统管理命令的 ,如果需要普通用户执行系统管理动作那么需要,
root
用户来进行授权
普通用户授权方式 “sudo”
作用
:
可以使普通用户使用指定的用户身份运行命令
授权方法
:
visudo
此命令作用是编辑
/
etc
/
sudoers
并提供语法检测
在文件的
100
行左右
代码规范性
username hostname
=
(newusername) [NOPASSWD
:
]
/
command,
/
command1
lee
用户 在
linux.wesots.com
主机
=
(
用超级用户身份
) 执行useradd
命令
lee linux.westos.com=(root) /usr/sbin/useradd
westos
用户 在
linux.wesots.com
使用超户
免密
执行
useradd
和
userdel
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/ sbin/userdel
测试
: su
-
lee
sudo useradd westostest
在
lee
第一次使用
sudo
命令时需要输入
lee
密码
exit
退出
lee
su
-
west
sudo userdel
-
r westostest westos
可以免密执行
userdel
命令
![](https://i-blog.csdnimg.cn/blog_migrate/18b632c2c63adfc06635ebbb8c13e14e.png)