Welche Dateirechte muss ein Shell-Skript besitzen, damit es ausgeführt werden kann?
r
w
x
SetUID (s statt x für den Eigentümer)
LPI-Lernziel Einfache Skripte anpassen oder schreiben (105.2)
Vergegenwärtigen wir uns einmal kurz, welche Rechte es überhaupt gibt:
Leserecht (»read«, kurz r), Schreibrecht (»write«, kurz w),
Ausführungsrecht (»execute«, kurz x). Daneben existieren noch die
Sonderrechte SUID, SGID und Sticky Bit (falls Sie sich mit der
Anwendung der Rechte nicht sicher sind, ist dies eine gute Gelegenheit
zur Rekapitulation!).
Wenn ein Shell-Skript nicht gelesen werden kann, kann es auch nicht
ausgeführt werden. Damit muss ein Shell-Skript die Rechte r und x
besitzen (Antworten 1 und 3). Wenn Sie dieses Skript auch verändern
wollen, müssen Sie zusätzlich über Schreibrechte verfügen oder das
Skript in Ihr HOME-Verzeichnis kopieren und dort bearbeiten; Schreibrecht
(Antwort 2) ist zur reinen Ausführung aber nicht nötig.
Das SetUID-Bit auf einem Shellskript wäre eine kapitale Sicherheitslücke (warum?) und wird vom Linux-Kernel darum nicht befolgt, selbst wenn es gesetzt ist.
Nicht angemeldet
Teilnehmer
Peter Kluge (eingetragen) · 24. März 2010, 11:02
Wenn nur das r-Recht vergeben ist, lässt sich das Shellscript mit dem Aufruf:
bash skript_name.sh
ausführen.
Richtig wäre hier nur r.
x ist nur nötig falls man das Shellscript wie ein Kommando aufrufen möchte.
gruß
Peter
Ausführen vs. Verarbeiten
Michael Mattiszik (eingetragen) · 19. Juli 2011, 12:36
Das mag jetzt zwar Wortklauberei sein, aber IMHO führt die Befehlszeile
bash skript_name.sh
das Programm bash und nicht das Skript aus. Das Skript ist in diesem Beispiel ein Argument, welches übergeben wird.
Alternativ kann ich ja auch mittels
cat skript_name.sh
die Befehele Stück für Stück manuell eingeben - aber habe ich damit das Skript auch ausgeführt?
Ich denke prüfungesrelevant richtig ist hier R-X für die Skripte im direkten Gegensatz zu Binaries, die auch bei --X ausgeführt werden können.