目录
一、用户及用户组存在的意义
-
用户存在的意义
系统资源是有限的,需要合理分配系统资源
在这个问题解决时必须要有资源配合
1)身份 account
2)授权 author
3)认证 auth
3A 机制,3A 机制组成系统中最底层的安全架构 -
用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
- 电脑对数字敏感 --> id
- 人类对字符串敏感 -->名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd 文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行字符
三、用户切换
01_用户查看
whomai 查看当前用户
id 查看用户 id 信息
id -u kiosk | 查看用户的用户 id |
id -g kiosk | 查看用户主组 id |
id -G kiosk | 查看用户所有的组的 id |
id -G -n kiosk | 显示名称 |
02_用户切换
su - 用户名 切换用户环境
root ----> commonuser:不需要后者密码
commonuser ----> root:需要密码
commonuser----> commonuser:需要密码
注:
- 在做用户切换时当使用完毕用户身份及时退出
- 不要在一个 shell 中反复执行 su 命令,因为在一个 shell 中反复执行 su 命令会导致环境错乱
四、用户涉及到的系统配置文件
/etc/passwd | 用户身份信息文件 (用户名称:用户密码:用户 id(uid):用户主组 id(gid):用户说明:用户家目录:用户默认shell) |
/etc/group | 组身份信息文件(组名称:组密码:组 id:组的附加成员) |
/etc/skel/.* | 用户环境配置文件模板 |
/etc/shadow | 用户认证信息文件 |
/home/username | 用户家目录 |
01_/etc/passwd
用户身份信息文件
- 用户名称:用户密码:用户 id:用户主组 id:用户说明:用户家目录:用户默认shell
02_/etc/group
组身份信息文件
- 组名称:组密码:组 id:组的附加成员
03_/etc/skel/.*
用户环境配置文件模板
04_/etc/shadow
用户认证信息文件
/home/username 用户家目录
五、用户和用户组建立及删除
01_用户建立
监控用户建立的命令:
**watch -n 1 “tail -n 3 /etc/passwd /etc/group;echo =======;ls -l /home”**
useradd username 建立用户
- userdel username 家目录仍保留
- userdel -r username 用户删除 -r 删除用户的系统配置文件(全部)较常用
useradd -u id username
uid范围:0-2**16=0-65535
范围 | 含义 |
---|---|
0 | 表示超级用户 |
1-200 | 系统预留 id |
201-999 | 系统用户 |
1000-60000 | 用户级用户 |
/etc/login.defs 记录用户建立的默认规则
命令 | 含义 |
---|---|
useradd -g id username | 主组 id |
useradd -G id username | 附加组 id |
useradd -d dir username | 指定用户家目录 |
useradd useradd -c word username | 指定用户说明 |
useradd -s shell username | 指定用 shell |
-g id username 主组 id
注:先groupadd,再useradd
-G id username 附加组 id
-d dir username 指定用户家目录
-c word username 指定用户说明
-M username 创建用户时,不建立家目录
-s shell username ##指定用 shell
02_用户组建立
命令 | 含义 |
---|---|
groupadd groupname | 组建立 |
groupadd -g id groupname | 指定组名称 |
groupdel groupname | 组删除 |
groupadd groupname 组建立
groupadd -g id groupname ##指定组名称
groupdel groupname ##组删除
六、用户和用户组的信息管理
01_用户管理
usermod
-l | 更改用户名称 |
-u | 更改用户 id |
-g | 更改主组 id |
-G | 更改用户附加组身份 |
-aG | 添加用户附加组身份 |
-c | 更改用户说明 |
-d | 更改家目录指向 |
-md | 更改家目录指向同时更改家目录名称 |
-s | 更改默认 shell |
-L | 冻结账号 |
-U | 解锁 |
usermod -l #更改用户名称
usermod -u 更改用户 id
usermod -g 更改主组 id
usermod -G 更改用户附加组身份
(附加组为无)
usermod -aG 添加用户附加组身份
usermod -c 更改用户说明
usermod -d 更改家目录指向
usermod -md 更改家目录指向同时更改家目录名称
usermod -s 更改默认 shell
usermod -L 冻结账号
usermod -U 解锁
02_用户组信息管理
groupmod -g 更改用户组 id
七、用户认证信息管理
01_用户名称
passwd -S username 查看密码状态
02_用户加密字符
- 更改密码
超级用户改密码:
passwd username
直接修改用户密码,无需输入之前密码
注:只有 root 可以执行 “echo 123 | passwd --stdin lee”
passwd 普通用户改密码:
Changing password for username.
Current password: 输入原始密码
New password: 输入新密码(8 位以上无序数字+无序字母组合)
Retype new password: 重复输入
passwd: all authentication tokens updated successfully.
- 冻结认证
passwd -l username 冻结账号认证
passwd -u username 解锁账号认证
- 密码删除
passwd -d username
- 密码使用天数
从 1970-1-1 算其到今天的时间
passwd -e username 修改默认使用时间为 0
chage -d 0 username 账号必须改密码才能登陆系统
- 密码最短有效期
passwd -n 1 username username 在 1 天内不能改密码
chage -m 1 username
- 密码最长有效期
passwd -x 40 username 40 天内 username 用户必须更新密码否则会被冻结
chage -M 30 username
- 密码过期警告
passwd -w 2 username 账号过期前警告时间
chage -W 1 username
- 认证非活跃天数
passwd -i 2 username 账号认证最大时间超过后还能用多久
chage -I 1 username
- 账号认证到期时间
chage -E “2020-05-11” 到 2020-5-11 这天账号会被冻结
- 未启用功能
最后一位为预留位
八、用户权力下放
- 在系统中普通用户时无法执行系统管理命令的,如果需要普通用户执行系统管理动作那么需要root 用户来进行授权
普通用户授权方式 “sudo”
- 作用:可以使普通用户使用指定的用户身份呢运行命令
- 授权方法:visudo此命令作用是编辑/etc/sudoers 并提供语法检测
在文件的 100 行左右 代码规范性
格式:username hostname=(newusername) [NOPASSWD:] /command, /command1
说明:dezasseis 用户在foundation31.ilt.example.com 主机=(用超级用户身份) 执行 useradd和userdel 命令
格式:dezasseis foundation31.ilt.example.com=(root) /usr/sbin/useradd /usr/sbin/userdel
说明:#dezasseis 用户 在 foundation31.ilt.example.com 使用超户 执行 useradd 和 userdel
格式:dezasseis foundation31.ilt.example.com=(root) NOPASSWD:/usr/sbin/useradd /usr/sbin/userdel
说明:#dezasseis 用户 在 foundation31.ilt.example.com 使用超户 免密执行 useradd 和 userdel