1. 程式人生 > >ACL訪問控制列表的基本設置操作

ACL訪問控制列表的基本設置操作

刪除 在線 ffffff 過濾 訪問控制列表 分享圖片 rep image png

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


ACL訪問控制列表的基本設置操作