ディレクトリの内容を読み取れないのはなぜですか? [コピー]

ディレクトリの内容を読み取れないのはなぜですか? [コピー]

ここに記載されているすべてのファイル名はディレクトリです。

権限は()/media/diskです。権限は()です。とにかく、私はこのディレクトリを所有していません。0744drwxr--r--/media/disk/directory0755drwxr-xr-x

なぜできますがls /media/diskできませんかls /media/disk/directory?私の考えではlsrunning access is require ですが/media/disk、ファイルへの読み取りアクセス権があれば (つまり、r設定された場合) ファイルを読み取ることができなければならないのでそれは愚かなことです。

上記の質問に加えて、問題が実行アクセス不足によるものであると言うのが正しい場合は、なぜそう言うのが愚かなのかを尋ねたいと思います。

システムメッセージ:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

私は提案された複製がこの機能が愚かでない理由を説明しないと思います。

答え1

ディレクトリは/media/diskありません。実行ビットグループと「その他」用。

これは(IMHO、やや混乱した方法で)成功することができることを意味します。読む次のディレクトリからビット読み出し設定)と内容を一覧表示すると行動それでもなく入力する(通過cd)、これには許可マスクによって引き起こされるサブアイテムのリストが含まれます744

特定のサブディレクトリ(-ies)にアクセスする場合いいえツリー全体へのアクセスを提供するのは簡単です。削除する読み取りアクセス権がありますが、環境実行ビット:

$ su
# mkdir -p /tmp/parent/child
# chmod 711 /tmp/parent/
# chmod 755 /tmp/parent/child/
# touch /tmp/parent/child/test
# exit
$ ls /tmp/parent/
ls: cannot open directory '/tmp/parent/': Permission denied
$ cd /tmp/parent/
$ pwd
/tmp/parent
$ ls
ls: cannot open directory '.': Permission denied
$ ls child/
test

答え2

愚かさは主にコメントに基づいていますが、パス内のすべてのディレクトリに対する「実行」権限を必要とすることは、そのサブツリーのルートへのアクセスを拒否することによってサブツリーへのアクセスを拒否できることを意味します。「実行中」ディレクトリがあまり意味がないようですので、そのxビットを呼び出す方が良いかもしれません。「使用権」ディレクトリ用。

つまり、権限を設定/home/$USER700たとえば)することで、他のユーザーや使用しているプログラムの中に、誤ってホームディレクトリにより自由な権限を持つファイルを作成した場合でも、他のユーザーがファイルにアクセスできないようにするrwx------ことができます。$USERすべてのファイルではなく、1つの場所でのみ確認できます。

関連情報