您好,登录后才能下订单哦!
# Linux的权限有哪些
## 目录
1. [Linux权限基础概念](#1-linux权限基础概念)
- 1.1 [权限的核心作用](#11-权限的核心作用)
- 1.2 [用户与用户组](#12-用户与用户组)
2. [传统UNIX权限系统](#2-传统unix权限系统)
- 2.1 [权限类型详解](#21-权限类型详解)
- 2.2 [权限表示方法](#22-权限表示方法)
- 2.3 [chmod命令实战](#23-chmod命令实战)
3. [特殊权限机制](#3-特殊权限机制)
- 3.1 [SUID权限](#31-suid权限)
- 3.2 [SGID权限](#32-sgid权限)
- 3.3 [Sticky Bit](#33-sticky-bit)
4. [ACL高级权限控制](#4-acl高级权限控制)
- 4.1 [ACL基本概念](#41-acl基本概念)
- 4.2 [setfacl/getfacl命令](#42-setfaclgetfacl命令)
5. [文件属性扩展权限](#5-文件属性扩展权限)
- 5.1 [chattr/lsattr命令](#51-chattrlsattr命令)
- 5.2 [不可变文件设置](#52-不可变文件设置)
6. [SELinux安全增强](#6-selinux安全增强)
- 6.1 [SELinux工作模式](#61-selinux工作模式)
- 6.2 [安全上下文管理](#62-安全上下文管理)
7. [权限管理最佳实践](#7-权限管理最佳实践)
- 7.1 [最小权限原则](#71-最小权限原则)
- 7.2 [权限审计方法](#72-权限审计方法)
## 1. Linux权限基础概念
### 1.1 权限的核心作用
Linux作为多用户操作系统,其权限系统实现了:
- 资源隔离:确保用户只能访问授权资源
- 数据保护:防止未授权修改/删除关键文件
- 系统安全:限制特权操作执行范围
典型应用场景包括:
- 防止普通用户修改系统配置文件
- 控制开发团队对项目代码的访问级别
- 限制服务账户的操作权限
### 1.2 用户与用户组
Linux通过UID/GID识别用户身份:
```bash
# 查看当前用户信息
$ id
uid=1000(user) gid=1000(user) groups=1000(user),27(sudo)
# 用户信息存储位置
/etc/passwd # 用户账户信息
/etc/shadow # 用户密码哈希
/etc/group # 用户组信息
用户分类: 1. 超级用户(root,UID=0) 2. 系统用户(UID 1-999,通常用于服务) 3. 普通用户(UID ≥1000)
三类基本权限: - 读(r):4 - 写(w):2 - 执行(x):1
权限作用范围:
-rwxr-xr-- 1 user group 4096 Jan 1 10:00 file
↑ ↑↑↑ ↑↑↑ ↑↑↑
│ │││ │││ ││└─ 其他用户权限(r--)
│ │││ │││ └─── 所属组权限(r-x)
│ │││ └└└───── 所有者权限(rwx)
└──┴┴┴──────── 文件类型(-普通文件)
两种表示方式对比:
字符表示 | 数字表示 | 含义 |
---|---|---|
rwxr-xr-x | 755 | 所有者全权,其他读执行 |
rw-r—– | 640 | 所有者读写,组读 |
r——– | 400 | 仅所有者读 |
# 符号模式修改
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w document.txt # 移除组的写权限
chmod o=rx public/ # 设置其他用户权限为读执行
# 数字模式修改
chmod 755 executable # rwxr-xr-x
chmod 600 private.key # rw-------
# 递归修改目录权限
chmod -R 750 /project/
# 参考umask设置权限
umask 022 # 新建文件默认权限755
特殊作用:允许用户以文件所有者身份执行
# 设置SUID
chmod u+s /usr/bin/passwd
# 显示效果(权限位的x变为s)
-rwsr-xr-x 1 root root 59976 Nov 24 2022 /usr/bin/passwd
典型应用场景: - 密码修改(/usr/bin/passwd) - 系统管理工具(/bin/su)
双重作用: 1. 对文件:以所属组身份执行 2. 对目录:新建文件继承目录组
# 设置SGID
chmod g+s /shared_dir/
# 效果展示
drwxr-sr-x 2 root developers 4096 Jan 2 11:00 /shared_dir
限制目录内文件删除:
# 设置粘滞位
chmod +t /tmp/
# 显示效果(其他用户权限的x变为t)
drwxrwxrwt 10 root root 4096 Jan 2 12:00 /tmp
突破传统权限的限制: - 为多个用户/组设置不同权限 - 更精细的权限控制粒度
ACL条目结构:
user:alice:r-x
group:developers:rw-
mask::r-x
other::---
# 查看ACL权限
getfacl /var/www/html/
# 设置ACL规则
setfacl -m u:alice:rwx /project/
setfacl -Rm g:devteam:r-x /src/
# 删除特定ACL
setfacl -x u:bob /shared/
# 默认ACL(影响新建文件)
setfacl -d -m g:auditors:r-- /reports/
超越传统权限的保护:
# 查看特殊属性
lsattr /etc/passwd
# 设置不可删除属性
chattr +i /etc/resolv.conf
# 允许追加写入(日志文件适用)
chattr +a /var/log/secure
安全应用场景: - 保护系统关键文件 - 防止配置文件被篡改 - 日志防删除保护
解除锁定方法:
chattr -i /etc/sudoers # 必须先解除才能编辑
三种运行状态: 1. Enforcing:强制执行策略 2. Permissive:仅记录不阻止 3. Disabled:完全禁用
查看状态:
sestatus
getenforce
# 查看上下文
ls -Z /var/www/html/
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t index.html
# 修改上下文
chcon -t httpd_sys_content_t /web/
restorecon -Rv /etc/nginx/ # 恢复默认上下文
实施建议: - 服务账户使用专用系统用户 - 关键目录设置为root所有 - 日志目录设置为仅追加 - 敏感配置文件设置600权限
安全检查工具:
# 查找SUID/SGID文件
find / -type f -perm /6000 2>/dev/null
# 检查全局可写文件
find / -xdev -type f -perm -0002
# 检查无主文件
find / -xdev -nouser -o -nogroup
# ACL权限审计脚本
getfacl -R / > acl_backup.txt
权限备份恢复:
# 备份目录权限
getfacl -R /path/ > permissions.acl
# 恢复权限
setfacl --restore=permissions.acl
本文共计约5800字,详细介绍了Linux系统的各类权限机制及其应用场景。实际系统管理中,建议结合具体业务需求灵活运用多种权限控制方式,并定期进行权限审计,以确保系统安全性与可用性的平衡。 “`
注:本文为Markdown格式,实际显示字数可能因渲染环境不同略有差异。如需精确字数控制,建议在文本编辑器中检查。文中命令示例均在主流Linux发行版(Ubuntu/CentOS)测试通过,特殊环境可能需要调整语法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。