私はchmodとその内容について読んでいます。オクタルモード。私はそれが1
単なる処刑であることを知っています。実行専用権限の有効なユースケースは何ですか?ファイルを実行するには通常、読み取りおよび実行権限が必要です。
$ echo 'echo foo' > say_foo
$ chmod 100 ./say_foo
$ ./say_foo
bash: ./say_foo: Permission denied
$ chmod 500 ./say_foo
$ ./say_foo
foo
ベストアンサー1
シェルスクリプト実行するには読み取り権限が必要ですが、バイナリファイル望ましくないもの:
$ cat hello.cpp
#include<iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission
ファイルの内容の表示と実行は異なります。シェルスクリプトの場合、これは単純化を許すと新しいシェル(または現在のシェル)に「読み込まれて」実行されるためです。だから読むことができるはずです。バイナリはこのメカニズムを使用しません。
実行権限はディレクトリによって若干異なります。これは、ファイルに対して特定のタスクを実行できることを意味します。以内にディレクトリ(読み取りや実行など)/tools
人々が理解できる場合にのみ使用できるツールセットがあるとします。chmod 711 /tools
。これにより、実行可能なエントリが/tools
明示的に実行される可能性がありますが(たとえば/tools/mytool
)ls /tools/
拒否されます。同様に、/private-docs
ファイル名がわかっている場合にのみ読み取り可能な文書を保存できます。