ACL支援多種Linux檔案系統,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不確定你的檔案系統是否支援ACL,請參考文件。 在檔案系統使ACL生效 首先,我們需要安裝工具來管理ACL。 Ubuntu/Debian 中: $ sudo apt-get install acl CentOS/Fedora/RHEL 中: # yum -y install acl Archlinux 中: # pacman -S acl 出於演示目的,我將使用ubuntu server版本,其他版本類似。 安裝ACL完成後,需要啟用我們磁碟分割槽的ACL功能,這樣我們才能使用它。 首先,我們檢查ACL功能是否已經開啟。 $ mount 你可以注意到,我的root分割槽中ACL屬性已經開啟。萬一你沒有開啟,你需要編輯/etc/fstab檔案,在你需要開啟ACL的分割槽的選項前增加acl標記。 現在我們需要重新掛載分割槽(我喜歡完全重啟,因為我不想丟失資料),如果你對其它分割槽開啟ACL,你必須也重新掛載它。 $ sudo mount / -o remount 乾的不錯!現在我們已經在我們的系統中開啟ACL,讓我們開始和它一起工作。 ACL 範例 基礎ACL透過兩條命令管理:setfacl用於增加或者修改ACL,getfacl用於顯示分配完的ACL。讓我們來做一些測試。 我建立一個目錄/shared給一個假設的使用者,名叫freeuser $ ls -lh / 我想要分享這個目錄給其他兩個使用者test和test2,一個擁有完整許可權,另一個只有讀許可權。 首先,為使用者test設定ACL: $ sudo setfacl -m u:test:rwx /shared 現在使用者test可以隨意建立資料夾,檔案和訪問在/shared目錄下的任何地方。 現在我們增加只讀許可權給使用者test2: $ sudo setfacl -m u:test2:rx /shared 注意test2讀取目錄需要執行(x)許可權 讓我來解釋下setfacl命令格式: -m 表示修改ACL。你可以增加新的,或修改存在的ACLu: 表示使用者。你可以使用 g 來設定組許可權test 使用者名稱:rwx 需要設定的許可權。 現在讓我向你展示如何讀取ACL: $ ls -lh /shared 你可以注意到,正常許可權後多一個+標記。這表示ACL已經設定成功。要具體看一下ACL,我們需要執行: $ sudo getfacl /shared 最後,如果你需要移除ACL: $ sudo setfacl -x u:test /shared 如果你想要立即擦除所有ACL條目: $ sudo setfacl -b /shared 最後,在設定了ACL檔案或目錄工作時,cp和mv命令會改變這些設定。在cp的情況下,需要新增“p”引數來複制ACL設定。如果這不可行,它將會展示一個警告。mv預設移動ACL設定,如果這也不可行,它也會向您展示一個警告。
ACL支援多種Linux檔案系統,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不確定你的檔案系統是否支援ACL,請參考文件。 在檔案系統使ACL生效 首先,我們需要安裝工具來管理ACL。 Ubuntu/Debian 中: $ sudo apt-get install acl CentOS/Fedora/RHEL 中: # yum -y install acl Archlinux 中: # pacman -S acl 出於演示目的,我將使用ubuntu server版本,其他版本類似。 安裝ACL完成後,需要啟用我們磁碟分割槽的ACL功能,這樣我們才能使用它。 首先,我們檢查ACL功能是否已經開啟。 $ mount 你可以注意到,我的root分割槽中ACL屬性已經開啟。萬一你沒有開啟,你需要編輯/etc/fstab檔案,在你需要開啟ACL的分割槽的選項前增加acl標記。 現在我們需要重新掛載分割槽(我喜歡完全重啟,因為我不想丟失資料),如果你對其它分割槽開啟ACL,你必須也重新掛載它。 $ sudo mount / -o remount 乾的不錯!現在我們已經在我們的系統中開啟ACL,讓我們開始和它一起工作。 ACL 範例 基礎ACL透過兩條命令管理:setfacl用於增加或者修改ACL,getfacl用於顯示分配完的ACL。讓我們來做一些測試。 我建立一個目錄/shared給一個假設的使用者,名叫freeuser $ ls -lh / 我想要分享這個目錄給其他兩個使用者test和test2,一個擁有完整許可權,另一個只有讀許可權。 首先,為使用者test設定ACL: $ sudo setfacl -m u:test:rwx /shared 現在使用者test可以隨意建立資料夾,檔案和訪問在/shared目錄下的任何地方。 現在我們增加只讀許可權給使用者test2: $ sudo setfacl -m u:test2:rx /shared 注意test2讀取目錄需要執行(x)許可權 讓我來解釋下setfacl命令格式: -m 表示修改ACL。你可以增加新的,或修改存在的ACLu: 表示使用者。你可以使用 g 來設定組許可權test 使用者名稱:rwx 需要設定的許可權。 現在讓我向你展示如何讀取ACL: $ ls -lh /shared 你可以注意到,正常許可權後多一個+標記。這表示ACL已經設定成功。要具體看一下ACL,我們需要執行: $ sudo getfacl /shared 最後,如果你需要移除ACL: $ sudo setfacl -x u:test /shared 如果你想要立即擦除所有ACL條目: $ sudo setfacl -b /shared 最後,在設定了ACL檔案或目錄工作時,cp和mv命令會改變這些設定。在cp的情況下,需要新增“p”引數來複制ACL設定。如果這不可行,它將會展示一個警告。mv預設移動ACL設定,如果這也不可行,它也會向您展示一個警告。