私は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
。
ここでは、2 人のユーザーが同じグループにいることを確認できます。
ubuntu@lincloud:~$ grep '^atlas' /etc/group
atlas:x:1001:ubuntu,michael
問題の原因は何ですか?どうすれば解決できますか?
答え1
temp2とtemp3の親ディレクトリが問題です。
アトラスグループには親ディレクトリに対する読み取り権限があるため、ファイルとその権限を表示するには読み取りと実行が必要です。
temp2とtemp3を含むディレクトリにある場合は、次の方法で問題を解決できます。
sudo chmod g+x .
答え2
ls -l
ファイルの属性は、権限、サイズ、uid、gid(by、およびlsattr
)などのinode番号に関連付けられたinodeデータ構造に格納されます。ファイル名は inode データ構造には保存されません。これはディレクトリファイルに保存され、inode番号に関連付けられます。
[luchaoqun@centos-7 ~]$ ls -i www 1704095 overflow_1 8722125 overflow_2
ディレクトリーと権限の両方が設定されている場合は、r
コマンドを使用してファイル名とinode情報を表示できます。権限があるが権限がない場合は、ファイル名のみが表示され、ディレクトリのinode情報は表示されません。x
ls -i
r
x
[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