注意:
- 本教學課程包含在 Oracle 提供的免費實驗室環境中。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室之後,請將這些值取代為您雲端環境特有的值。
在 Oracle Linux 上使用並啟用 ACL
簡介
存取控制清單 (ACL) 提供對目錄和檔案的存取控制。ACL 可以設定擁有者、群組以及所有其他系統使用者的讀取、寫入以及執行權限。
ACL 包括一組規則,指定特定使用者或群組如何存取 ACL 啟用的檔案和目錄。一般 ACL 項目會指定單一檔案或目錄的存取資訊。預設的 ACL 項目只會在目錄上設定,並指定目錄內具有存取 ACL 之任何檔案的預設存取資訊。
在目錄上設定預設 ACL 時,其子目錄會自動繼承相同的權限。ACL 可與 btrfs、ext3、ext4、OCFS2 和 XFS 檔案系統搭配使用,以及掛載的 NFS 檔案系統。
目標
- 檢查檔案系統 ACL 支援
- 使用
setfacl和getfacl指令來新增和顯示 ACL 規則
需求
具有可用磁碟的系統,以及完整修補的 Oracle Linux 安裝。
設定實驗室環境
注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics,瞭解連線和其他使用指示。
-
如果尚未連接,請開啟終端機並透過 ssh 連線至 ol-node01 執行處理。
ssh oracle@<ip_address_of_instance> -
確認區塊磁碟區存在。
sudo lsblk -f免費實驗室環境的輸出顯示兩個區塊裝置:
sda,其中包含此實驗室所使用的基本作業系統和sdb。使用-f選項,會顯示檔案系統類型 (FSTYPE) 和區塊通用唯一 ID (UUID)。
以 ACL 支援掛載檔案系統
-
建立掛載點目錄。
sudo mkdir /test -
檢查 ACL 支援是否存在。
Oracle Linux 檔案系統 (例如
ext4、btrfs和xfs) 預設會啟用 acl 掛載選項。在ext4檔案系統上 (例如/dev/sdb1),使用tune2fs進行驗證。sudo tune2fs -l /dev/sdb1 | grep -i acl範例輸出:
[oracle@ol-node01 ~]$ sudo tune2fs -l /dev/sdb1 | grep -i acl Default mount options: user_xattr acl -
以 ACL 支援掛載磁碟。
如果檔案系統預設未啟用 acl 掛載選項,請在使用
mount指令時傳送-o acl。由於/dev/sdb1使用ext4,因此預設已經開啟此選項。sudo mount -t ext4 /dev/sdb1 /test若要讓此掛載點在重新啟動後持續有效,請將它增加到 fstab 檔案。
MYUUID=$(sudo blkid | grep UUID= | grep sdb1 | awk '{ print $2 }') echo "$MYUUID /test ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null -
確認檔案系統掛載存在。
df -T | grep sdb1輸出顯示 ext4 檔案系統
/dev/sdb1存在於掛載點/test。
使用 ACL 功能
-
嘗試在新的掛載點下建立檔案。
touch /test/file1範例輸出:
touch: cannot touch '/test/file1': Permission denied此指令失敗,因為
oracle使用者沒有在/test目錄中建立檔案的權限。 -
取得目錄的 ACL 資訊。
sudo getfacl /test範例輸出:
[oracle@ol-node01 ~]$ sudo getfacl /test getfacl: Removing leading '/' from absolute path names # file: test # owner: root # group: root user::rwx group::r-x other::r-x -
新增 ACL 規則至目錄。
sudo setfacl -m u:oracle:rwx /test規則會將 read、write 以及 execute 權限授予
oracle使用者。 -
檢查目錄的更新 ACL 資訊。
sudo getfacl /test範例輸出:
getfacl: Removing leading '/' from absolute path names # file: test # owner: root # group: root user::rwx user:oracle:rwx group::r-x mask::rwx other::r-x輸出顯示新增的
user:oracle:rwx行。 -
只顯示目錄的長列表格式 。
ls -ld /test範例輸出:
drwxrwxr-x+ 3 root root 4096 Jul 13 20:48 /test輸出中顯示的權限包括指示包含 ACL 的加號 (
+)。 -
嘗試再建立檔案。
touch /test/file1命令應該在此時間之後執行。
-
確認建立檔案。
ls -l /test
請參閱 man getfacl 或 man setfacl 頁面以瞭解其他選項與範例。
其他相關資訊
請參閱其他相關資源:
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或前往 Oracle Learning YouTube 通道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。
Use and Enable ACLs on Oracle Linux
F60352-01
July 2022
Copyright © 2022, Oracle and/or its affiliates.