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

Kann ein Skript ausführbar, aber nicht lesbar sein?

Ist es möglich, ein Skript auszuführen, wenn keine Berechtigung zum Lesen vorhanden ist? Im Root-Modus habe ich ein Skript erstellt und möchte, dass der andere Benutzer dieses Skript ausführt, aber nicht liest. Ich habe chmod gemacht um das Lesen und Schreiben zu verbieten, aber die Ausführung zuzulassen, aber im Benutzermodus sah ich die Meldung, die besagt:Erlaubnis verweigert.

Akzeptierte Antwort:

Das Problem ist, dass nicht das Skript ausgeführt wird, sondern der Interpreter (bash , perl , python , etc.). Und der Dolmetscher muss das Drehbuch lesen. Dies unterscheidet sich von einem „normalen“ Programm wie ls , indem das Programm direkt in den Kernel geladen wird, wie es der Interpreter tun würde. Da der Kernel selbst die Programmdatei liest, muss er sich nicht um den Lesezugriff kümmern. Der Interpreter muss die Skriptdatei lesen, so wie eine normale Datei gelesen werden müsste.


Linux
  1. Warum funktioniert dieses „beim Lesen“ in einem Terminal, aber nicht in einem Shell-Skript?

  2. nohup:Befehl nicht gefunden

  3. Zeile für Zeile im Bash-Skript lesen

  4. Kann eine .sh-Datei Malware sein?

  5. Wie kann ich lsof in einem Docker ersetzen (nativ, nicht LXC-basiert)

Dateien finden, die ein Benutzer nicht lesen kann?

Kann read(2) Null zurückgeben, wenn es nicht bei EOF ist?

Wie kann ich per Linux-Skript prüfen, ob PostgreSQL installiert ist oder nicht?

Skript mit rc.local ausführen:Skript funktioniert, aber nicht beim Booten

Jede Möglichkeit, das Bash-Skript zu beenden, aber das Terminal nicht zu verlassen

Kann über LAN ping/ssh, aber nicht mit Wi-Fi