Was macht dieser „Find“-Befehl?

Was macht dieser „Find“-Befehl?

Ich bin ein absoluter Linux-Anfänger und habe den folgenden Befehl ausgeführt, während ich online war /root:

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \

Ich wollte das auf einem bestimmten Ordner ausführen, habe aber nicht gemerkt, dass ich mich auf befand /root.

Hatte das Auswirkungen auf jede Datei auf dem Computer?

Antwort1

Vorausgesetzt, Sie verfügen über ausreichende Berechtigungen, findändern die Befehle rekursiv die Berechtigungsbits aller Dateien 660und aller Verzeichnisse, 770beginnend mit dem Verzeichnis, in dem sie ausgeführt werden.

Da Sie sich im Stammverzeichnis von /root( befanden und davon ausgegangen wurde, dass Sie als ausgeführt haben und der Eigentümer ist , sollte dies kein großes Problem darstellen, außer dass sich einige bestimmte Programme über bestimmte Dateien oder Verzeichnisse beschweren könnten. Beispielsweise könnten sich bei der schlüsselbasierten Authentifizierung die Berechtigungen von Verzeichnis und Datei beschweren. Diese müssen Sie manuell beheben.rootrootuser:grouproot:rootssh/root/.ssh/root/.ssh/authorized_keys

Führen Sie außerdem nicht blind jeden Befehl aus, den Sie irgendwo gefunden haben. Fragen Sie zuerst, was der Befehl bewirkt, und führen Sie ihn dann aus.

Antwort2

Dieser Befehl sucht alle Verzeichnisse innerhalb des Verzeichnisses, in dem Sie den Befehl ausgeführt haben, und ändert dessen Berechtigungen. Anschließend macht er dasselbe, nur mit Dateien. In diesem Fall ändert der Befehl die Berechtigungen der Verzeichnisse, sodass Sie vollen Zugriff haben, andere Benutzer jedoch keinen Zugriff haben. Wenn Sie der einzige Benutzer des Systems sind, sollte dies keine Rolle spielen. Der Befehl ändert dann die Berechtigungen der Dateien innerhalb von /root, sodass nur Lese- und Schreibzugriff, aber keine Ausführung möglich ist. Möglicherweise treten beim Ausführen von Programmen und Skripten einige Probleme auf, aber nichts, was größere Auswirkungen hätte. Andere Benutzer haben ebenfalls keinen Zugriff auf Dateien innerhalb von /root.

Wenn Sie ein Skript oder Programm finden, das Sie nicht von innen ausführen können, /rootkönnen Sie einfach diesen Befehl auf die Datei anwenden:

sudo chmod 775 filename

wobei filenameder Name der Datei ist, die Sie ausführen möchten.

Wenn das System noch von anderen Benutzern verwendet wird und Sie möchten, dass jeder Verzeichnisse und Dateien lesen kann, lohnt es sich möglicherweise, den Befehl erneut auszuführen, ihn jedoch leicht zu ändern:

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

Antwort3

Der erste Punkt nach dem Befehl ist die Wurzel des Suchbaums find. Er betrifft also die Dateien des Ordners, in dem Sie ihn ausgeführt haben, und den gesamten darunterliegenden Baum.

verwandte Informationen