Linux系统用户认证管理与权限下放
145 浏览量
更新于2024-08-31
收藏 865KB PDF 举报
在Linux系统中,用户管理是操作系统安全性的核心组成部分。本资源主要讨论了用户认证信息管理和用户权利下放。重点集中在 `/etc/shadows` 文件,该文件存储了用户的敏感认证信息,并介绍了如何通过命令行工具进行用户权限的控制。
### 一、用户认证信息管理
`/etc/shadows` 文件包含了每个用户账户的加密密码以及与密码相关的多个属性,这些属性通常分为九列:
1. **用户名称**:与 `/etc/passwd` 文件中的用户名相对应。
2. **用户密码**:加密后的密码,一般不为空表示账户可用。
3. **密码最后更改日期**:自1970年1月1日以来的天数。
4. **密码最小有效期**:密码必须在多长时间内更改。
5. **密码最大有效期**:密码在多长时间后必须更改。
6. **密码过期警告**:在密码过期前多少天给出警告。
7. **非活动天数**:在密码过期后允许用户无密码登录的天数。
8. **账户过期日期**:账户认证到期时间。
9. **保留字段**:目前未启用的功能。
监控用户认证信息可以使用 `watch` 命令结合 `tail` 和 `passwd -S` 命令,例如:
```bash
watch -n 1 "tail -n 1 /etc/shadow ; echo '==============='; passwd -S westos"
```
查看特定用户的密码状态则使用 `passwd -S` 命令:
```bash
passwd -S name
```
### 二、密码管理
1. **更改密码**:root用户可以为任何用户更改密码,普通用户只能更改自己的密码。
- 作为root:
```bash
passwd name
```
- 普通用户:
```bash
passwd
```
2. **冻结/解锁认证**:
- 冻结账号:
```bash
passwd -l name
```
- 解锁账号:
```bash
passwd -u name
```
3. **删除密码**:
```bash
passwd -d name
```
4. **密码过期策略**:
- 设置密码立即过期:
```bash
passwd -e name
```
- 设置账号必须更改密码才能登录:
```bash
chage -d 0 name
```
- 最小和最大密码有效期:
- 1天内不允许更改密码:
```bash
passwd -n 1 name
```
或
```bash
chage -m 1 name
```
- 40天内必须更新密码:
```bash
passwd -x 40 name
```
或
```bash
chage -M 40 name
```
5. **密码过期警告**:
- 提前2天警告密码即将过期:
```bash
passwd -w 2 name
```
或
```bash
chage -W 2 name
```
6. **非活动天数**:
- 密码过期后允许登录2天:
```bash
passwd -i 2 name
```
或
```bash
chage -I 1 name
```
### 三、用户权利下放
在大型系统中,通常需要将部分用户管理权限下放到管理员。在Linux中,可以通过添加用户到不同的组来实现权限的控制。使用 `usermod` 命令可以改变用户所属组,从而控制用户访问特定资源的能力。例如:
```bash
usermod -a -G groupname username
```
这会将 `username` 添加到 `groupname` 组,允许他们访问该组有权访问的文件和目录。
此外,`sudo` 工具用于临时提升普通用户的权限,允许他们以root身份执行指定命令,而不必直接使用root账户。
对Linux用户认证信息的精细管理是确保系统安全的关键,而用户权利的适当下放则有助于日常维护和管理效率的提升。理解并熟练运用上述命令和概念,能够更好地掌控Linux系统的用户权限。
2023-03-31 上传
2021-09-14 上传
2019-01-20 上传
2021-10-30 上传
2021-05-31 上传
2021-09-20 上传
2021-09-14 上传
weixin_38709816
- 粉丝: 8
- 资源: 909
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常