注意:
- 本教學課程包含在 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.