CentOS7當中,無論是操作系統安裝時還是之后手工創建的文件系統(xfs、ext4)均會開啟ACL功能。
CentOS6及之前的版本,僅操作系統安裝時創建的文件系統才會默認開啟ACL,手工創建的文件系統,需要手工開啟ACL
功能。
Acl如何設置
創建分區
mount -o acl /dev/sda7 取消的方式,重新掛載時不指定即可
tune2fs -o acl /dev/sda7 取消的方式 tune2fs -o ^acl /dev/sda7
這里的feiyan1 ,liluo2,qingchen3都是人名,加上1,2,3只是為了方便看
Liluo2在group組里,f1屬于feiyan1這個人,屬于liluo2這個組
Group權限是rw-,而liluo2只能對文件f1進行讀操作,rw-相當于是r
下面把group的權限改為了rwx,liluo2屬于group組成員,理論上也應當具有rwx權限
而實際上liluo2只具有rw-也就是只有r權限,和原來一樣權限并沒有改變,這樣為什么呢?
因為在設置了Acl以后,group的位置就被umask占了,所以你看到的原來組的位置實際上是umask的權限,一旦設置了acl,原來組的權限就無法改變了,原來group權限是什么就是什么,雖然設置acl后無法改變但依然生效,即使你使用了g+rwx 組的權限依然不變,變的是umask
實例如下:
權限的優先順序
文件的owner權限優先于acl權限
ACL權限判斷的順序
先判斷是否是文件的OWNER,如果是,則執行OWNER的權限后結束,如果不是OWNER,則判斷是否是ACL的USER,如果是則執行USER權限后結束,如果不是ACL的USER, 則判斷是否屬于GROUP或ACL GROUP,如果是,則取最大權限(兩個權限的并集)。如果不屬于任何GROUP,則執行OTHER。 原生的group和acl group沒有優先的關系,權限組合一起使用
我們之前設置的都是基于當前已存在的文件生效的,那么要想對于為來創建的文件也有acl權限(未來新創建的文件創建既有acl權限)該怎么做呢?
作用如圖
那么在liluo2用戶下創建的新文件有沒有acl屬性呢,我們來看實驗
發現依然有acl屬性
setfacl -m d:u:liluo2:rwx f2 設置這句之后發現只要是在f2下新創建的都會創建自帶acl屬性 —-這就是我們說的默認屬性,但是對當前目錄不生效
練習:
在/app目錄下創建一個名為d1的目錄,要求其owner,group均為root,權限設置為755。要求guanyu用戶對該目錄及所有用戶在其下創建的新文件新目錄均有rwx權限
設置ACL默認權限,僅影響新創建的文件及目錄,不影響當前。
實驗中guanyu換成了feiyan1
setfacl -x d:sunquan d11 刪除一條默認權限
setfacl -k d1 刪除全部默認權限
setfacl -b d1 刪除ACL屬性
getfacl -R /app/d1 > acl.txt 將目錄下的所有文件的ACL屬性備份到文件
setfacl -R –set-file=acl.txt /app/d1 通過文件還原ACL屬性的方法1
setfacl –restore acl.txt 通過文件還原ACL屬性的方法2
setfacl -R -b /app/d1 清除目錄下所有文件的ACL屬性
小知識點補充:
拿筆劃重點,注意^.的用法
如何恢復家目錄:只要一句命令就好了
恢復家目錄的操作
ls -a
rm -rf .*
cp -a /etc/skel/.[^.]* .
ls -al
Exit 重新登陸就好了,家目錄就回來了,不再演示!
原創文章,作者:sqjl,如若轉載,請注明出處:http://www.www58058.com/83080