ACL主要是針對單一用戶、單一文件或目錄來進行r、w、x的特殊權限,實現靈活的權限管理,除了文件的所有着,所有組和其他人,可以對更多用戶設置權限。
centos7默認創建的xfs和ext4文件系統具有ACL功能。
centos6以下(包含)的版本,默認手工創建的ext4文件系統無ACL功能,手動添加的代碼如下:
1.首先可以先查看下之前可有安裝過acl,如下圖。
2.安裝代碼:tune2fs -o acl /dev/sda1
3.若是安裝後想卸載的代碼:tune2fs -o ^acl /dev/sda1
4.無論是安裝還是卸載都可用:tune2fs -l /dev/sda1|grep option該行命令通過管道過濾查看acl是否安裝。
以下示例
如在app目錄下存在一testdir目錄,先查看其對不同用戶所開放的權限,用ll命令查看現有權限爲:rwxr-xr-x.
drwxr-xr-x. 3 root root 4096 Jul 21 16:37 testdir
如現有一用戶劉備,爲該用戶單獨設置一些權限用setfacl命令設置格式如下。
置默認權限
setfacl -Rm u:username:rwx 要設置的文件名/ 設置當前的權限 (R表示遞歸,在該可能存在別的文件 m爲固定格式)
setfacl -Rm d:u:username:rwx 要設置的文件名/ 設置未來文件的權限(d 爲默認,可表未來)
設置acl權限後可以清晰的看到下圖標示處, 由符號點變成符號+,說明acl設置成功。
setfacl --Rm u:liubei testdir/ 對指定的文件或目錄設置用戶的acl權限
setfacl --Rm g:weiguo testdir/ 對指定的文件或目錄設置用戶組的acl權限
查看文件的acl列表命令用getfacl,格式爲getfacl filename,具體格式看下圖。
我們設置成功後可以測試下,首先切換用戶爲liubei看所有者和所有組在不是劉備的情況下看是否可以創建成功,acl的權限設置是否發揮作用。
根據上圖明顯查看到acl的設置生效,在所有者和所有者不是liubei的情況下文件創建成功。
ACl權限判斷順序
在文件的權限設置過程中存在權限的衝突,判斷順序爲:owner > acl user > group > other。
如把文件的owner改爲liubei,權限設置命令“chmod u=--- testdir/”,設置成功後登錄liubei用戶後在testdir目錄創建文件看是否成功,
根據下圖實驗說明owner權限最大。
刪除用戶或組的acl權限,示例如下。
setfacl -x u:liubei testdir/
setfacl -x u:guanyu testdir/
setfacl -x g:weiguo testdir/
刪除所有權限,清空acl屬性
setfacl -b testdir
mask 權限的閥值 即權限上限
setfacm -m m:rwx testdir或 chmod g=rwx testdir
1.備份已存在的acl權限列表設置,不支持在線存儲。
2.利用tar備份文件。
tar cvf filename.tar *
3.恢復文件
tar xvf filename.tar
4.恢復acl
setfacl --restore /root/aa