Ist es schädlich, alle Dateien in ausführbare Dateien umzuwandeln?

Ist es schädlich, alle Dateien in ausführbare Dateien umzuwandeln?

Ich wollte bestimmte Software installieren. Das Paket enthielt viele Dateien, darunter auch einige Shell-Skriptdateien. Zunächst musste ich einige Dateien auswählen und sie dann ausführbar machen:

chmod 777 shellscr1

aber dann wurde mir klar, dass es viele solcher Dateien gibt, die ich ausführbar machen muss. Als Abkürzung habe ich also Folgendes gemacht:

chmod 777 *

und jetzt sind alle Dateien ausführbar.

Hat dies schwerwiegende Konsequenzen (abgesehen von der Sicherheit)?

Antwort1

Je nach Programm kann es keine negativen Auswirkungen haben oder die Software unbrauchbar machen.

Ändern Sie beispielsweise die Berechtigungen Ihres Verzeichnisses ~/.ssh und sehen Sie, welche Fehlermeldung angezeigt wird, wenn Sie versuchen, sich per SSH bei einem anderen Computer anzumelden.

Einige Programme greifen als bestimmter Benutzer auf Konfigurationsdateien zu. Mit 777 Berechtigungen könnte jeder die Datei überschreiben undihnender Dateibesitzer.

Antwort2

Wie von anderen angemerkt, gibt es keinen Grund (zumindest wird er in der Frage nicht genannt), warum die Dateien allgemein beschreibbar sein müssten. Etwas wie chmod 755 *oder chmod +x *sollte genügen.

Ich werde die Antwort jedoch noch weiter eingrenzen und Ihnen eine Antwort geben, diegenauwas Sie verlangen. Ein Shell-Skript sollte immer mit einemsiebangwie zum Beispiel

#!/usr/bin/env bash

Hier ist also ein Snippet, das im aktuellen Verzeichnis nach allen Dateien sucht, die mit den Zeichen beginnen, #!/und diese ausführbar macht. Mit anderen Worten, dieser Befehl markiert nur die Dateien als ausführbar, die wie Shell-Skripte aussehen.

for file in *; do [ "$(head -c 3 "$file")" = '#!/' ] && chmod +x "$file"; done;

Antwort3

Abgesehen von der Sicherheit gibt es keine schwerwiegenden Konsequenzen. (natürlich logisch gesprochen)

Antwort4

Zunächst musste ich einige Dateien auswählen und es dann ausführbar machen:

 chmod 777 shellscr1

Sie ausführbar zu machen bedeutet nicht,777, es bedeutet755. Sie können dies aus offensichtlichen Sicherheitsgründen zumindest ändern.

Das Ausführbarmachen von Shell-Skripten kann manchmal nachteilige Auswirkungen haben. Wenn Sie beispielsweise/bin/shauf eine andere Shell verweist als die, für die das Skript bestimmt ist, können Sie es im Wesentlichen unbrauchbar machen. Ein guter Programmierer hätte Schritte unternommen, um dies zu verhindern, und durch die Änderung der Berechtigungen haben Sie seine Bemühungen möglicherweise zunichte gemacht.

Aber ich wiederhole, dies gilt nur, wenn Ihr /bin/sh auf eine nicht standardmäßige Shell verweist.

verwandte Informationen