使用者看不到目錄權限
我在 Ubuntu 3.13 中工作。
驅動器上的權限使得所有者可以看到具有這些權限的目錄和文件:
drwxrwxr-x 2 michael atlas 4096 Feb 15 12:34 temp2 drwxrwxr-x 2 michael atlas 12288 Mar 18 16:14 temp3
而“atlas”組的另一個成員(ubuntu)看到了這個:
d????????? ? ? ? ? ? temp2 d????????? ? ? ? ? ? temp3
除非 ubuntu 使用
sudo ls -l
.,否則所有者、組和權限看起來與 michael 使用ls -l
.在這裡可以看到兩個使用者在同一個組中:
ubuntu@lincloud:~$ grep '^atlas' /etc/group atlas:x:1001:ubuntu,michael
問題的原因是什麼?我如何解決它?
temp2 和 temp3 的父目錄是問題所在。
您的 atlas 組對父目錄具有讀取權限,您需要讀取並執行才能查看文件及其權限。
如果您在包含 temp2 和 temp3 的目錄中,則可以使用以下命令解決問題:
sudo chmod g+x .
文件的屬性儲存在與inode 編號相關的inode 資料結構中,例如permission、size、uid、gid(by
ls -l
andlsattr
)。文件名不儲存在 inode 資料結構中。它儲存在目錄文件中,該文件與一個inode編號有關。[luchaoqun@centos-7 ~]$ ls -i www 1704095 overflow_1 8722125 overflow_2
如果同時設置了目錄
r
和x
權限,則可以看到文件名和inode資訊(通過ls -i
命令)。如果有r
權限,沒有x
權限,只能看到文件名,看不到目錄中的inode資訊。
[lu@centos-7 www]$ ls -l total 8 -rw-r--r--. 1 luchaoqun luchaoqun 0 Jun 3 13:19 overflow_1 -rw-r--r--. 1 luchaoqun luchaoqun 0 Jun 3 13:19 overflow_2
[lu@centos-7 ~]$chmod u-x [lu@centos-7 ~]$ ls -ld www drw-r-xr-x. 2 luchaoqun luchaoqun 40 Jun 3 13:19 www [lu@centos-7 ~]$ ls -l www ls: cannot access www/overflow_1: Permission denied ls: cannot access www/overflow_2: Permission denied total 0 ?????????? ? ? ? ? ? overflow_1 ?????????? ? ? ? ? ? overflow_2