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