GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein gültiger Anwendungsfall für eine Dateiberechtigung „nur ausführen“?

Ich habe über chmod und seine Oktalmodi nachgelesen. Ich habe diesen 1 gesehen wird nur ausgeführt. Was ist ein gültiger Anwendungsfall für eine Nur-Ausführen-Berechtigung? Um eine Datei auszuführen, benötigt man normalerweise eine Lese- und Ausführungsberechtigung.

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

Akzeptierte Antwort:

Shell-Skripte erfordern die Leseberechtigung, um ausgeführt zu werden, aber Binärdateien nicht:

$ 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

Den Inhalt einer Datei anzuzeigen und auszuführen sind zwei verschiedene Dinge. Bei Shell-Skripten sind diese Dinge verwandt, weil sie „ausgeführt“ werden, indem sie in eine neue Shell (oder die aktuelle) „eingelesen“ werden, wenn Sie die Vereinfachung verzeihen. Aus diesem Grund muss man sie lesen können. Binärdateien verwenden diesen Mechanismus nicht.

Für Verzeichnisse ist die Ausführungsberechtigung etwas anders; es bedeutet, dass Sie innerhalb Dinge mit Dateien tun können dieses Verzeichnis (z. B. lesen oder ausführen). Nehmen wir also an, Sie haben eine Reihe von Tools in /tools die Menschen verwenden können sollen, aber nur, wenn sie davon wissen. chmod 711 /tools . Dann ausführbare Dinge in /tools kann explizit ausgeführt werden (z. B. /tools/mytool ), aber ls /tools/ wird verweigert. Ebenso könnten Dokumente in /private-docs gespeichert werden die gelesen werden könnten, wenn und nur wenn die Dateinamen bekannt sind.


Linux
  1. So verwenden Sie den SFTP-Befehl für die sichere Dateiübertragung

  2. Wie verwendet man Inotifywait, um ein Verzeichnis für die Erstellung von Dateien einer bestimmten Erweiterung zu überwachen?

  3. Wie finde ich die gültigen Werte für den Begriff, der in Tmux verwendet werden soll?

  4. Linux-Dateiberechtigungskonzepte

  5. Abschnitt zur ELF-Datei hinzufügen

So verwenden Sie CherryTree für Notizen

So verwenden Sie den SCP-Befehl für die Dateiübertragung

So verwenden Sie Bluetooth unter Ubuntu für die Dateiübertragung

Wie verwende ich gzip unter Linux?

Warum verwendet rsync keine Delta-Übertragung für lokale Dateien?

Ist es eine gute Idee, Git für die Versionskontrolle der Konfigurationsdatei zu verwenden?