一·ACL簡介
1)文件就三個權限
所有者權限 組權限 其他權限
有時候不夠用 這時候就需要ACL權限 用來解決用戶身份不夠的問題
查看分區ACL權限是否開啓?
[root@localhost ~]# dumpe2fs -h /dev/sda1 | grep acl
dumpe2fs 1.42.9 (28-Dec-2013)
Default mount options: user_xattr acl //支持acl的
dumpe2fs命令時查詢指定分區詳細文件系統信息的命令
-h 僅顯示超級塊中信息,而不顯示磁盤塊的詳細信息
2)臨時開啓分區ACL權限
mount -o remount,acl / //重新掛載根分區,並掛載加入acl權限
3)永久開啓分區ACL權限
vi /etc/fstab
UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1 1 //加入acl
mount -o remount / //重新掛載文件系統或重啓系統,使修改生效
二·設置ACL權限
1)
getfacl [文件名] //查看acl權限;
setfacl [選項] [文件名] //設定ACL權限的命令;
選項:
-m:設定ACL權限;
-x:刪除指定的ACL權限;
-b:刪除所有的ACL權限;
-d:設定默認ACL權限;
-k:刪除默認ACL權限;
-R:遞歸設定ACL權限;
爲用戶設定ACL權限
setfacl -m u:用戶名:rwx 文件名
爲用戶組設定ACL權限
setfacl -m g:組名:rwx 文件名
2)最大有效權限mask(使用命令getfacl 文件名顯示的結果中倒數第二排會出現mask這個詞)mask是用來指定最大有效權限的。如果我給用戶賦予了acl權限,是需要和mask的權限“相與”才能得到用戶的真正權限。相與是計算機中的術語,皆真方爲真,有假便爲假。
※最大權限也會影響到組權限
(例:某文件所有者爲tony,chmod賦予的普通權限爲7,而acl賦予tony的權限爲5,則acl權限會高於chmod權限)
1.修改mask值的命令 setfacl -m m:rx 文件
2.刪除acl權限的命令
setfacl -x u:用戶名 文件 (刪除指定用戶的acl權限)
setfacl -x g:組名 文件 (刪除指定用戶的acl權限)
setfacl -b 文件 (刪除所有的acl權限)
3)Linux中默認ACL權限和遞歸ACL權限
1.ACL 目錄下的子目錄 這就需要遞歸
遞歸是父目錄在設定ACL權限時,所有的子文件和子目錄也會擁有相同的ACL權限
遞歸只能對目錄設置,不能對文件
-R 選項:設置遞歸
例:
setfacl -m u:user1:rx -R /adult
對目錄使用遞歸權限 本來不想給權限 結果給了 出現權限溢出
不是默認的ACL權限 命令執行之後新建的目錄不會有ACL權限
2.默認的ACL權限
默認ACL權限的作用時如果給父目錄設定了默認的ACL權限,那麼父目錄中所有新建的
文件都會繼承父目錄的ACL權限
setfacl -m d:u:user1:rw -R /home/adult
d表示 default 默認