GNU/Linux >> Linux の 問題 >  >> Linux

「実行のみ」のファイル権限の有効な使用例?

私はchmodとその8進モードについて読んでいました。その1を見ました 実行のみです。実行のみの権限の有効なユースケースは何ですか?ファイルを実行するには、通常、読み取りと実行のアクセス許可が必要です。

$ echo 'echo foo' > say_foo
$ chmod 100 ./say_foo
$ ./say_foo
bash: ./say_foo: Permission denied
$ chmod 500 ./say_foo
$ ./say_foo
foo

承認された回答:

シェルスクリプト 実行するには読み取り権限が必要ですが、バイナリファイル しないでください:

$ 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

ファイルの内容を表示して実行することは、2つの異なることです。シェルスクリプトでは、単純化を許せば、新しいシェル(または現在のシェル)に「読み込む」ことで「実行」されるため、これらは関連しています。これがあなたがそれらを読むことができる必要がある理由です。バイナリはそのメカニズムを使用しません。

ディレクトリの場合、実行権限は少し異なります。これは、のファイルに対して何かを実行できることを意味します そのディレクトリ(例:それらを読んだり実行したりする)。したがって、/toolsに一連のツールがあるとします。 人々が彼らについて知っている場合にのみ、人々が使用できるようにしたいということです。 chmod 711 /tools 。次に、/toolsで実行可能なもの 明示的に実行できます(例:/tools/mytool )、ただしls /tools/ 拒否されます。同様に、ドキュメントは/private-docsに保存できます。 これは、ファイル名がわかっている場合にのみ読み取ることができます。


Linux
  1. Inotifywaitを使用して、特定の拡張子のファイルを作成するためのディレクトリを監視する方法は?

  2. Linux –ファイルパーミッションは実行のみですか?

  3. Linuxファイルパーミッションの概念

  1. ファイル名に / を使用できますか?

  2. shm_open を使用する理由

  3. rsync がローカル ファイルにデルタ転送を使用しないのはなぜですか?

  1. 安全なファイル転送のためにSFTPコマンドを使用する方法

  2. Tmuxで使用する用語の有効な値を見つける方法は?

  3. 構成ファイルのバージョン管理に git を使用するのは良い考えですか?