Permissions

為什麼我看不到這個“可讀”目錄?

  • June 2, 2021

今天,我的一位同事在安排新實習生工作時遇到了麻煩。我們的 IT 團隊為實習生設置了一個帳戶,但我們無法訪問它。當我調查時,我發現:

$ ls -ld /acct/c33408
drwxr-xr-x    1 root     system            1 May 23 09:48 /acct/c33408

顯然,設置帳戶的管理員忘記更改所有者和組。然而令我困惑的是,帳戶目錄顯示為每個人都可讀和可搜尋。但是,當我嘗試查看其中的內容時:

$ ls /acct/c33408
ls: /acct/c33408: The file access permissions do not allow the specified action.

同樣嘗試更改到該目錄。

當權限似乎允許時,為什麼它不會向我顯示該目錄的內容?我檢查過,這個目錄上沒有 ACL。

這是一個 AIX 網路,目錄位於 NFS 掛載上。

我懷疑 NFS 文件系統(/acct/c33408)根目錄的權限比存根目錄的權限更嚴格。在掛載 NFS 文件系統之前,您可以檢查存根目錄權限,但是一旦觸發自動掛載程序掛載 NFS 文件系統,新權限就不允許您的使用者訪問它。

我在本地(使用不同的目錄結構)對此進行了測試,結果相似:

# stub directory permissions
user@host/$ ls -ld /u/testdir
drwxr-xr-x    1 root     system            1 Jun  2 17:00 /u/testdir

# trigger automount as root
user@host/$ sudo -s 
root@host/# cd /u/testdir
root@host/u/testdir# exit

# NFS permissions
user@host/$ ls -ld /u/testdir
drwx------    2 root     somegroup          4096 Dec  1 2015  /u/testdir

# ls on the NFS mountpoint as a regular user
user@host:/$ ls -l /u/testdir
ls: /u/testdir: Permission denied
total 0

引用自:https://unix.stackexchange.com/questions/445591