萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 存取控制列表 (ACL) 實戰:精細化檔案權限管理

傳統 rwx 權限模型僅支援「擁有者/群組/其他」三元組,無法滿足多用戶協作的精細授權需求。ACL (Access Control List) 提供針對特定用戶/群組的獨立權限控制,支援 ext2/3/4、XFS、Btrfs 等主流檔案系統。

環境準備與啟用

安裝工具

# Ubuntu/Debian
apt-get install acl

# CentOS/RHEL/Fedora
yum -y install acl

# Archlinux
pacman -S acl

啟用分區 ACL 支援

# 檢查現狀
mount | grep acl

# 未啟用則編輯 /etc/fstab 加入 acl 掛載選項
UUID=xxx  /  ext4  defaults,acl  0  1

# 重新掛載生效
mount -o remount /

ACL 核心指令與實戰範例

建立測試場景

mkdir /shared
# 目標:user test 完整權限,user test2 唯讀

設定 ACL

# 給 test 完整權限
setfacl -m u:test:rwx /shared

# 給 test2 唯讀(目錄需 x 進入)
setfacl -m u:test2:rx /shared

查看 ACL

# ls -lh /shared  # 權限位後有 + 號表示含 ACL
# getfacl /shared  # 詳細 ACL 列表
# file: shared
# owner: root
# group: root
user::rwx
user:test:rwx
user:test2:r-x
group::r-x
mask::rwx
other::r-x

移除 ACL

# 移除特定用戶
setfacl -x u:test /shared

# 清除所有 ACL
setfacl -b /shared

指令格式解析

setfacl -m u:用戶名:權限  路徑
       -m g:群組名:權限  路徑
       -x u:用戶名       路徑  # 刪除
       -b                路徑  # 清空

複製/移動時的 ACL 行為

  • cp -p 保留 ACL,否則警告且不複製
  • mv 預設移動 ACL,不可行時警告

適用場景

  • NFS/Samba 多用戶共享儲存
  • 專案協作目錄:不同成員差異化權限
  • Web 伺服器上傳目錄:特定服務帳號寫入、其他唯讀
copyright © 萬盛學電腦網 all rights reserved