Linux ?系統標準的 ugo/rwx 集合并不允許為不同的用戶配置不同的權限,所以 ACL 便被引入了進來,為的是為文件和目錄定義更加詳細的訪問權限,而不僅僅是這些特別指定的特定權限。
ACL 可以為每個用戶,每個組或不在文件所屬組中的用戶配置相應的權限。ACL 可使用?setfacl?來設置(和移除),可相應地使用 -m 或 -x 選項。
?
例如,創建一個名為 aliyun 的組,并將用戶 uread 和 uwrite 加入該組:
groupadd aliyun
useradd -G aliyun -M uread -p uread
useradd -G aliyun -M uwrite -p uwrite
?
?
在 /alidata 共有5個 txt 文件,只能 root 用戶進行修改,其他用戶只讀。
uread 用戶嘗試修改文件,提示沒有權限
?
?
使用 setfacl 修改權限,使 aliyun 組對 alidata 下 1.txt 文件可讀寫。
?
1. 修改前先查看一下1.txt 文件權限
getfacl /alidata/1.txt
?
2. 使用如下指令進行配置:
setfacl -m g:aliyun:rw /alidata/1.txt
?
3. 修改后權限 aliyun 組對1.txt 文件有寫權限:
?
4. 測試添加的權限,uread 和 uwrite 都可以讀寫 1.txt
?
5. 去掉 uread 的寫權限
setfacl -m u:uread:r /alidata/1.txt
?
6. 測試 uread 已經不能修改文件了
?
?
7. 去除權限 1.txt ?的權限
setfacl -x u:uread /alidata/1.txt
?
?
setfacl -x g:aliyun /alidata/1.txt
?