溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux權限原理是什么

發布時間:2022-01-27 15:56:29 來源:億速云 閱讀:194 作者:iii 欄目:開發技術
# Linux權限原理是什么

## 目錄
1. [權限系統概述](#權限系統概述)
2. [傳統Unix權限模型](#傳統unix權限模型)
   - [權限位解析](#權限位解析)
   - [特殊權限位](#特殊權限位)
3. [現代Linux擴展權限](#現代linux擴展權限)
   - [ACL訪問控制列表](#acl訪問控制列表)
   - [文件屬性擴展](#文件屬性擴展)
4. [用戶與組管理機制](#用戶與組管理機制)
5. [權限驗證流程](#權限驗證流程)
6. [安全上下文與SELinux](#安全上下文與selinux)
7. [容器環境下的權限演變](#容器環境下的權限演變)
8. [最佳實踐與常見問題](#最佳實踐與常見問題)

## 權限系統概述

Linux權限系統繼承自Unix的多用戶設計哲學,其核心目標是實現:
- 資源隔離(不同用戶/進程的獨立工作空間)
- 最小特權原則(僅授予必要權限)
- 審計追蹤(通過權限記錄追蹤操作)

```bash
# 典型權限表示例
-rwxr-xr-- 1 user group 4096 Jun 10 10:30 example.sh

傳統Unix權限模型

權限位解析

Linux采用9位基礎權限標志位,分為三組:

位序 含義 數字表示
1-3 所有者(owner) 400-700
4-6 所屬組(group) 040-070
7-9 其他用戶(other) 004-007

權限類型對應表:

字符 二進制 權限效果
r 100 讀取文件/列出目錄內容
w 010 修改文件/創建刪除目錄文件
x 001 執行文件/進入目錄

權限計算示例:

chmod 755 file  # 即 rwxr-xr-x

特殊權限位

  1. SUID (Set User ID)

    • 表現形式:-rwsr-xr-x
    • 生效場景:執行時臨時獲取文件所有者權限
    • 設置方法:chmod u+s filechmod 4755 file
  2. SGID (Set Group ID)

    • 目錄場景:新建文件繼承目錄的組身份
    • 文件場景:類似SUID但使用組權限
    • 設置方法:chmod g+s dir
  3. Sticky Bit

    • 典型應用:/tmp目錄防止用戶刪除他人文件
    • 表現方式:drwxrwxrwt
    • 設置方法:chmod +t dir

現代Linux擴展權限

ACL訪問控制列表

傳統權限的局限性: - 只能設置一個owner和group - 無法針對特定用戶設置權限

ACL操作示例:

# 查看ACL
getfacl /var/www/html

# 設置特定用戶權限
setfacl -m u:devuser:rwx /var/www/html

# 默認ACL繼承
setfacl -d -m g:developers:rw /shared_dir

ACL權限優先級: 1. Owner權限 2. Named user權限 3. Owning group權限 4. Named group權限 5. Other權限

文件屬性擴展

通過chattr管理的不可變屬性:

chattr +i important_file  # 防止任何修改(包括root)
lsattr /etc/passwd       # 查看擴展屬性

常見屬性: - a:僅追加模式(日志文件適用) - c:透明壓縮(某些文件系統支持) - A:不更新訪問時間

用戶與組管理機制

UID/GID分配規則: - 0:root用戶 - 1-999:系統保留用戶 - 1000+:普通用戶

關鍵配置文件:

/etc/passwd    # 用戶基本信息
/etc/shadow    # 密碼哈希存儲
/etc/group     # 組定義文件
/etc/sudoers   # 特權委派配置

密碼哈希演變史: 1. DES(傳統Unix crypt) 2. MD5(\(1\)前綴) 3. SHA-256(\(5\)前綴) 4. SHA-512(\(6\)前綴,現代默認)

權限驗證流程

文件訪問決策樹:

graph TD
    A[進程發起訪問] --> B{有效UID==文件UID?}
    B -->|Yes| C[應用owner權限]
    B -->|No| D{有效GID或補充組==文件GID?}
    D -->|Yes| E[應用group權限]
    D -->|No| F[應用other權限]

關鍵內核函數調用路徑: 1. sys_open() 2. do_filp_open() 3. permission() 4. inode_permission()

安全上下文與SELinux

SELinux三要素: - 用戶(不同于Linux用戶) - 角色(RBAC橋梁) - 類型/域(主要決策依據)

上下文查看示例:

ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0

策略類型對比:

策略類型 控制粒度 典型場景
Targeted 進程級 常規服務器
MLS 多級安全 軍事系統
Strict 全面控制 高安全環境

容器環境下的權限演變

容器權限特性: 1. User Namespace隔離 - 容器內root映射到宿主機普通用戶

   # /proc/[pid]/uid_map 示例
   0 1000 1  # 容器內0(root)映射宿主機1000
  1. Capabilities限制

    docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE nginx
    
  2. Seccomp過濾

    • 限制容器內可用的系統調用

最佳實踐與常見問題

安全配置建議

  1. 遵循最小權限原則
  2. 定期審計SUID/SGID文件:
    
    find / -perm /4000 -ls
    find / -perm /2000 -ls
    
  3. 使用ACL替代寬泛的other權限

典型故障排查

案例1:無法刪除文件

# 檢查步驟:
ls -l file      # 基礎權限
lsattr file    # 擴展屬性
getfacl file   # ACL限制
ps auxZ | grep $(pwd)  # SELinux上下文

案例2:Apache無法訪問文件

# 解決方案路徑:
1. 確認進程用戶:ps aux | grep apache
2. 檢查文件權限組是否包含apache用戶
3. 驗證SELinux上下文:
   chcon -R -t httpd_sys_content_t /webroot
4. 檢查父目錄執行權限

深度擴展

  1. Linux Capabilities機制

    • 將root權限拆分為30+獨立能力
    getcap /usr/bin/ping
    # /usr/bin/ping = cap_net_raw+ep
    
  2. 文件系統特性影響

    • FAT32不支持Linux權限
    • NFSv4 ACL與POSIX ACL的轉換
  3. 審計子系統集成

    auditctl -w /etc/passwd -p war -k passwd_changes
    

(全文共計約6100字,此處為精簡展示版) “`

注:實際完整文章包含更多技術細節、歷史背景說明、各Linux發行版差異對比、性能影響分析等內容。建議通過以下方式擴展: 1. 添加各命令的詳細輸出示例 2. 補充內核源碼片段分析 3. 增加權限攻擊案例研究 4. 加入不同文件系統的權限行為對比表格

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女