ACL是什么??
ACL英文原意是Access Control List(訪問控制列表).它能夠實現靈活的權限管理,除了文件的所有者,所屬組和其他人,設置相應的權限外,ACL允許你給任何用戶或是用戶組設置任何文件/目錄的訪問權限(注意的是有些不支持數字模式的權限給定)
ACL有什么用??
作為UGO權限管理的補充,acl有GUO辦不到或者是難以辦到的功能
1.可以針對用戶來設置權限
2.可以針對用戶組來設置權限
3.子文件/子目錄繼承父目錄的權限
檢查linux是否支持ACL??
acl需要linux內核和文件系統的配合才能工作,目前我們能見到的大多數linux發行版默認是支持的,但最好還是先檢查一下
注意:在linux中Vfat 文件系統不支持acl
centos7.0默認創建的xfs和ext4文件系統上有acl
centos7.x之前版本,手工創建的ext4文件系統也不支持acl
功能。需手動增加:
tune2fs -o acl /dev/sdb1
mount -o acl /dec/sdb1 /mnt
設置/dev/sda1掛載選項,用Posix Access Control Lists和用戶指定的擴展屬性
那如何設置acl呢??
1. setfacl -m u:用戶名:所給權限:文件
2. setfacl -m u:用戶名:所給的權限:目錄
如果后面是目錄,則只有所給的這個目錄有這個權限,其子目錄里面沒有。
3. setfacl -Rm g:組名:所給權限X:目錄
用R 就會遞歸到子目錄里和文件,用X只給目錄執行權限給文件件怎會沒有
4. setfacl -M file.acl 文件或是目錄
比如,編輯一個acl文件。以后用到這個權限時直接調用就行了 u:wang:0 g:tom:rw
大量文件對要求有相同的acl,可寫在文件里這樣統一管理比較方便
5. setfacl -m d:u:用戶名:權限 目錄
表示在這個目錄下新建的文件、目錄默認都會有這個acl
6. setfacl -x u:用戶名:文件|目錄
刪除所創建的acl
7. setfacl -X file.acl 目錄
默認acl權限給了x,文件也不會繼承x權限
base acl不能刪除
8. setfacl -k dir 刪除默認acl權限
9. setfacl -b file清除所有自己設置的acl權限
如何限制特殊用戶的最高權限呢??
acl文件上的group權限是mask值(自定義用戶,自定義組,擁有組的最大權限)而非傳統的組權限
mask 只影響除所用者和other的之外的人和組的最大權限
mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限
用戶或組的設置必須在mask權限設定范圍內才會生效
10. Setfacl -m mask ::rw 文件名(中間兩個冒號之間沒有空格)
–set選項會把原有的acl項都刪除,用新的替代,需要注意的是一定要包含UGO的設置,不能像-m一樣只是添加acl就可以如
11. setfacl –set u::rw,u:wang:rw,g::r,o::– 文件
12 . acl 的備份 getfacl -R /tmp/dir >acl.txt
13. getfacl 可看到特殊權限
原創文章,作者:yywan1314,如若轉載,請注明出處:http://www.www58058.com/27841