1. 程式人生 > 實用技巧 >Linux中ACL檔案訪問控制列表

Linux中ACL檔案訪問控制列表

一、ACL檔案訪問控制列表

前言

1️⃣:ACL—檔案訪問控制列表;

2️⃣:ACL可以針對單個使用者,單個檔案或目錄來進行r、w、x的許可權設定,特別適用於需要特殊許可權的使用情況。

3️⃣:ACL就是可以設定特定使用者或使用者組對於一個檔案/目錄的操作許可權,可以實現靈活的許可權管理,除了檔案的所有者,所屬組和其它人,可以對更多的使用者設定許可權

4️⃣:ACL就是可以設定特定使用者或者使用者組對於一個檔案/資料夾的操作許可權

5️⃣:LINUX上的ACL訪問控制列表,主要的目的是在提供傳統的u(user)、g(group)、o(other)的r(read)、w(write)、x(execute)許可權之外的區域性許可權設定

1、ACL管理命令

getfacl
setfacl

2、ACL形式

每個片段的形式都如:tag:name:perm
tag可以是下面形式的一種:
    user    表示這是一個使用者的ACL條目
    group   表示這是一個使用者組的ACL條目
    other   表示這是其它的ACL條目
    mask    表示這是一個掩碼的ACL條目
    
    name    可以是使用者名稱或組名
    perm    是指該使用者或組所具有的許可權,它是由"rwx"組成的一個字串

3、setfacl

setfacl
    使用 setfacl 設定檔案訪問控制列表
    語法  setfacl {-m|-x|-b|-d ...} filename  

選項
    -m, --modify=acl     設定ACL條目,不可與-x一起使用
    -x, --remove=acl     刪除所設定的ACL條目,不可與-m一起使用
    -b, --remove-all     刪除所有ACL條目(包括預設的ACL條目)
    -k, --remove-default 刪除預設ACL條目
    -R, -- recursion     遞迴設定ACL條目,包括餘下的子目錄或子檔案都將被設定ACL條目
    -d, --default        對目錄設定預設的ACL條目,並且在改目錄下建立的檔案都將繼承該目錄的預設ACL條目(該選項只能對目錄生效)
    
示例
    setfacl -m u:zyq:rwx test.sh
    user     簡寫為u,
    group    簡寫為g   
    other    簡寫為o

4、getfacl

getfacl
    使用getfacl可以獲取檔案訪問控制列表
    語法:getfacl filename

選項
    -a, --access 僅顯示檔案訪問控制列表
    -d, --default 僅顯示預設的訪問控制列表
    -c, --omit-header 不顯示註釋表頭
    
示例
    getfacl test.txt
    # file: test.txt         //檔名
    # owner: root            //檔案擁有者
    # group: root            //檔案擁有組
    user::rw-                //說明該檔案的擁有者擁有讀和寫的許可權
    group::rw-               //說明該檔案的擁有組有讀和寫的許可權
    mask::rw-                //說明mask的許可權是讀和寫
    other::---               //說明其他人沒有許可權訪問該檔案