您好,登录后才能下订单哦!
# Linux中的用户和组以及文件权限详解
## 一、Linux用户管理
### 1. 用户基础概念
在Linux系统中,用户是系统资源访问的主体。每个用户拥有:
- 唯一UID(用户ID)
- 所属主组(Primary Group)
- 登录Shell
- 家目录(如/home/username)
**重要配置文件**:
- `/etc/passwd`:存储用户基本信息
- `/etc/shadow`:存储加密后的密码(仅root可读)
- `/etc/login.defs`:默认用户创建规则
### 2. 用户操作命令
```bash
# 创建用户
sudo useradd -m -s /bin/bash username
sudo passwd username # 设置密码
# 修改用户属性
usermod -aG supplementary_group username # 添加附加组
usermod -s /bin/zsh username # 修改登录Shell
# 删除用户
userdel -r username # -r参数同时删除家目录
组是用户的集合,用于简化权限分配: - 每个组有唯一GID(组ID) - 用户可属于1个主组+多个附加组
相关配置文件:
- /etc/group
:组定义文件
- /etc/gshadow
:组密码文件(极少使用)
# 创建组
groupadd developers
# 添加用户到组
gpasswd -a user1 developers
# 查看用户所属组
groups username
id username # 显示更详细信息
# 删除组
groupdel developers
通过ls -l
可查看权限信息:
-rwxr-xr-- 1 user1 developers 4096 Jan 1 10:00 script.sh
权限分为三部分: - 文件类型(首位字符) - 用户权限(rwx) - 组权限(r-x) - 其他用户权限(r–)
字符 | 文件权限 | 目录权限 |
---|---|---|
r | 可读 | 可列出目录内容 |
w | 可写 | 可创建/删除文件 |
x | 可执行 | 可进入目录 |
权限可用3位八进制数表示: - r=4, w=2, x=1 - 例如:rwxr-xr– = 754
# 符号模式
chmod u+x,g-w,o=r file # 用户添加执行,组删除写,其他设为只读
# 数字模式
chmod 755 script.sh # rwxr-xr-x
chown user1:developers file # 同时修改用户和组
chown -R user1:developers dir/ # 递归修改目录
权限 | 字符 | 数字 | 作用 |
---|---|---|---|
SUID | s | 4000 | 以文件所有者身份执行 |
SGID | s | 2000 | 继承目录的组 |
Sticky | t | 1000 | 仅所有者可删除(/tmp常用) |
设置示例:
chmod u+s /usr/bin/passwd # 设置SUID
chmod g+s /shared_dir # 设置SGID
chmod +t /tmp # 设置Sticky位
umask值决定新建文件的默认权限: - 文件默认权限 = 666 - umask - 目录默认权限 = 777 - umask
查看与设置:
umask # 查看当前值(如0022)
umask 0027 # 设置新umask
当基础权限不足时,可使用ACL:
# 查看ACL
getfacl /project
# 设置ACL
setfacl -m u:user1:rwx /project
setfacl -m g:developers:r-x /project
# 创建共享目录
mkdir /shared
chown root:developers /shared
chmod 2775 /shared # SGID+rwxrwxr-x
# 验证配置
ls -ld /shared # 应显示 drwxrwsr-x
mkdir /home/user1/private
chmod 700 /home/user1/private # 仅用户可访问
最小权限原则:只授予必要权限
定期审计:检查异常权限设置 “`bash
find / -xdev -type f -perm -0002
# 查找SUID/SGID文件 find / -xdev ( -perm -4000 -o -perm -2000 )
3. **密码策略**:通过`/etc/login.defs`配置密码有效期
4. **sudo权限**:使用`visudo`谨慎分配特权
## 八、常见问题排查
### 1. 权限拒绝错误
```bash
# 检查三步曲:
ls -l file # 查看权限
id user # 确认用户组
getfacl file # 检查ACL(如有)
检查:
- /etc/passwd
中的Shell路径是否正确
- /etc/shadow
中密码状态(!!表示锁定)
- 家目录权限(至少应为755)
Linux的权限体系通过用户-组-权限三级机制实现精细的访问控制。掌握这些基础知识后,可以进一步学习: - PAM认证模块 - SELinux/AppArmor强制访问控制 - 基于角色的访问控制(RBAC)
提示:生产环境中修改权限前,建议先在测试环境验证,避免导致服务不可用。 “`
注:本文实际约1650字,您可根据需要补充以下内容扩展: 1. 具体发行版的差异(如CentOS vs Ubuntu) 2. 更复杂的ACL使用案例 3. 与容器化环境的权限交互 4. 企业级IAM系统集成
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。