用户及用户组存在的意义
- 用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
即3A机制,3A机制组成系统中最底层的安全架构 - 用户组存在的意义
用户组是一个逻辑容器,它对用户进行归类和统一授权
用户及用户组在系统中的存在方式
电脑对数字敏感;人类对字符串敏感
id就是名称
必须要记录到文件当中用户才能存在
1.用户就是/etc/passwd文件中的一行字符
2.用户组存在的方式就是/etc/group 文件中的一行字符
用户切换
- 用户查看
whoami | 查看当前用户 |
---|---|
id | 查看用户id信息 |
-u | 查看用户的用户id |
-g | 查看用户主组id |
-G | 查看用户所有的组的id |
-n | 显示名称 |
- 用户切换
su - username | 切换用户环境 |
---|
username ##如果root ----> commonuser 不需要后者密码
##commonuser ----> root 需要密码
##commonuser ----> commonuser 需要密码
注意:在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱
用户涉及到的系统配置文件
/etc/passwd | #用户身份信息文件 ##用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell |
---|---|
/etc/group | #组身份信息文件 ##组名称:组密码:组id:组的附加成员 |
/etc/skel/.* | 用户环境配置文件模板 |
/etc/shadow | 用户认证信息文件 |
/home/username | 用户家目录 |
用户和用户组建立及删除
监控命令:
watch -n 1 “tail -n 4 /etc/passwd /etc/group; ls -l /home”
命令 | 功能 |
---|---|
useradd username | 用户建立 |
useradd -u id username | uid |
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 删除用户的系统配置文件 |
注:uid 2**16=0-65535
0 表示超级用户
1-200 系统预留id
201-999 系统用户
1000-60000 用户级用户
/etc/login.defs 记录用户建立的默认规则
新建用户
删除用户
用户组的建立与删除
groupadd groupname | 组建立 |
---|---|
groupadd -g id groupname | 指定组名称 |
groupdel groupname | 组删除 |
用户和用户组的信息管理
命令 | 功能 |
---|---|
usermod -l | 更改用户名称 |
usermod -u | 更改用户id |
usermod -g | 更改主组id |
usermod -G | 更改用户附加组身份 |
usermod -aG | 添加用户附加组身份 |
usermod -c | 更改用户说明 |
usermod -d | 更改家目录指向 |
usermod -md | 更改家目录指向同时更改家目录名称 |
usermod -s | 更改默认shell |
groupmod -g | 更改用户组id |
用户认证信息管理
用户名称
passwd -S lee | 查看密码状态 |
---|
用户加密字符
passwd | 普通用户改密码 |
---|---|
echo 密码 管道符 passwd --stdin | 只有root可以执行 |
普通用户修改密码要求:
需输入旧密码;有强度要求,最少八位字符,由至少四位无序数字加四位无序字母组成。
超级用户修改普通用户密码没有强壮度要求,并且无需输入旧密码
冻结认证
usermod -L | 冻结账号 |
---|---|
usermod -U | 解锁 |
passwd -l | 冻结账号认证 |
passwd -u | 解锁账号认证 |
passwd -d | 删除密码 |
---|
密码使用天数:默认从1970-1-1算其到今天的时间
passwd -e lee | 修改默认使用时间为0,账号必须改密码才能登陆系统 |
---|---|
chage -d 0 lee | 修改默认使用时间为0,账号必须改密码才能登陆系统 |
密码最短有效期 | 功能 |
---|---|
passwd -n 1 linux | linux在1天内不能改密码 |
chage -m 1 linux | linux在1天内不能改密码 |
密码最长有效期 | 功能 |
---|---|
passwd -x 40 linux | 40天内linux用户必须更新密码否则会被冻结 |
chage -M 40 linux | 40天内linux用户必须更新密码否则会被冻结 |
密码过期警告 | 功能 |
---|---|
passwd -w 2 lee | 账号过期前警告时间 |
chage -W 2 lee | 账号过期前警告时间 |
认证非活跃天数 | 功能 |
---|---|
passwd -i 1 lee | 账号认证最大时间超过后还能用多久 |
chage -I 1 lee | 账号认证最大时间超过后还能用多久 |
账号认证到期时间 | 功能 |
---|---|
chage -E “2020-05-11” | 到2020-5-11这天账号会被冻结 |
用户权力下放
在系统中普通用户时无法执行系统管理命令的
如果需要普通用户执行系统管理动作那么需要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