Linux權限管理——ACL權限
我們已經知道Linux的文件有所有者,所屬組,其他人三種權限,但這是遠遠不夠的,比如說,有一個project,項目管理員將所有項目人員添加到該項目的所屬組中,分配權限770,有一天,臨時來了一個成員,該成員需要先進行學習,然後才能工作,這時我們需要對該成員對project分配讀和可執行的權限,不能將其他人權限設爲5,文件只有一個所屬組,所以對project分配兩個所屬組的方式不成立,顯然此時的權限管理方式無法滿足要求,這時候就用到ACL權限了,所謂的acl權限,可以簡單的理解爲爲某一用戶或某一組分配不屬於所有,所屬組,其他人的額外權限。
1)
acl權限是對文件系統的管理,但它需要文件所在的分區支持acl權限
#查看文件所在分區
dumpe2fs -h 分區
若分區不支持acl權限:
#臨時使分區支持acl權限,重新掛載分區支持acl權限
mount -o remount,acl 分區
#永久生效,修改配置文件,重啓或重新掛載
vi /etc/fstab
mount -o remount /
注意:/etc/fstab文件是系統啓動時自動檢測掛載分區的識別文件,如果想讓系統啓動時自動掛載某一分區,可手動添加,注意添加格式
2)
#設定acl權限
#setfacl 選項 文件名
#-m 設定acl權限
setfacl -m u:用戶名:權限 文件
setfacl -m g:組名:權限 文件
#查看acl權限
getfacle 文件名
#刪除acl權限
setfacl -b 文件名 刪除該文件下的所有acl權限
setfacl -x u:用戶名 文件名 刪除指定用戶的acl權限
setfacl -x g:組名 文件名 刪除指定組的acl權限
3)
從getfacl中我們看到有個mask類權限,稱之爲最大有效權限,就是說我們在給文件賦予acl權限時,最終得到的是賦予的權限與mask權限的“與運算”結果
我們可以修改mask的權限
修改mask
setfacl -m m:權限 文件名
通過對mask權限的設置,可以避免權限賦予過大的問題
4)
遞歸acl權限和默認acl權限
遞歸針對已經存在的文件
該目錄下所有的文件都具有與目錄相同的acl權限(注意-R位置)
setfacl -m u:用戶名:權限 -R 目錄
setfacl -m g:組名:權限 -R 目錄
默認針對新添加的文件
該目錄下新添加的文件都具有與目錄相同的acl權限
setfacl -m d:u:用戶名:權限 目錄
setfacl -m d:g:組名:權限 目錄