フォルダーを実行可能にする必要があるのはなぜですか?


29

ファイルの許可:

chmod 664 myFile // rw-rw-r--

また、フォルダーの場合:

chmod 774 myFolder // rwxrwxr--

「読み取りおよび書き込み」権限のみを使用する場合、フォルダーにはコンテンツが表示されません。

この理由は何ですか?

回答:


14

ディレクトリを「実行」することはできないため、実行ビットは使いやすくなりました。ディレクトリの実行ビットを使用すると、ディレクトリの内容を一覧表示できない場合でも、ディレクトリ内のアイテムにアクセスできます。

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

chmodマンページから:

文字が影響を受けるユーザーのファイルモードビットを選択rwxXst:読み取り(r)を、書き込み(W)、実行(またはディレクトリを検索)(x)は、/実行ファイルがディレクトリであるか、すでにいくつかのために実行権を持っている場合にのみ検索ユーザー(X)、実行時にユーザーまたはグループIDを設定(s)、制限付き削除フラグまたはスティッキービット(t)。


42

ディレクトリ(通常、* nixではフォルダと呼ばれません)は、通常のファイルとはアクセス許可ビットの意味が異なります。

ディレクトリの場合、writeを使用すると、その中に新しいファイルを作成できます。

Readを使用すると、その中のファイルをリストできます。

実行すると、入力して、内部のファイル(または他のディレクトリ)にアクセスできます。


2
簡単な覚え方は、何かをダブルクリックして実行することを想像することです。ディレクトリをダブルクリック(またはcd)すると、そのディレクトリを入力(実行)します。
ジョンT

ディレクトリへの単なる書き込みアクセスでは、新しいファイルを作成できないことに注意してください。これを行うには、ディレクトリで実行権限も必要です。
マティアスブラウン

「ファイル(または他のディレクトリ)にアクセスする」とは、ファイルを表示できる、つまり一覧表示できるが表示できない、またはファイルを表示できる、つまり一覧表示して読み取ることができるということですか?
vadasambar


1

「実行」ビットは、実際にディレクトリに適用される場合の「検索」を意味します(からman chmod)。executeはディレクトリに対して意味を持たないため、これは妥当と思われます。


0

xフォルダのビットは、インデックス作成/ディレクトリ検索/リストを参照します。そのビットを低く保つと、これらのいずれも不可能です。

その使用例は次のとおりです:たとえば、彼の家以外のすべてのディレクトリで制限された読み取りアクセス許可を持つユーザー/home/dummyが必要な場合、ビットを作成//homex設定する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.