Arbeitest du hauptsächlich mit Linux oder administrierst Linux-Server, wirst du sicherlich auf das Problem stoßen, dass du eine Datei erstellen oder bearbeiten möchtest, aber aufgrund fehlender Zugriffsrechte eine Fehlermeldung erhältst. In der Regel können solche Fehler durch das Anpassen der Dateiberechtigungen oder des Besitzers behoben werden.
Da Linux ein Multi-User-System ist, erfolgt der Zugriff auf Dateien über Dateiberechtigungen, -attribute und -eigentümer. Das stellt sicher, dass nur berechtigte Nutzer und Prozesse auf die Dateien und Ordner zugreifen können.
Mehr Informationen zu Dateiberechtigungen erhältst du im Befehl Umask in Linux.
In diesem Artikel zeigen wir dir, wie du Berechtigungen von Dateien und Ordnern rekursiv änderst.
Rekursives Chmod
Mithilfe des chmod
-Befehls kannst du die Berechtigungen von Dateien im symbolischen oder numerischen Modus ändern.
Um rekursiv alle Dateien und Ordner innerhalb eines bestimmten Ordners zu bearbeiten, nutze den Befehl chmod
zusammen mit der Option -R
(--recursive
). Die grundlegende Syntax zum rekursiven Ändern der Dateiberechtigungen sieht wie folgt aus:
chmod -R MODE DIRECTORY
Um beispielsweise die Berechtigungen aller Dateien und Unterordner im Ordner /var/www/html
auf 755
zu setzen, verwende:
chmod -R 755 /var/www/html
Der Modus kann auch mit der symbolischen Methode angegeben werden:
chmod -R u=rwx,go=rx /var/www/html
Nur root, der Dateieigentümer oder ein Benutzer mit sudo
-Berechtigungen kann die Berechtigungen einer Datei ändern. Sei äußerst vorsichtig, wenn du Dateiberechtigungen rekursiv anpasst.
Den find
-Befehl verwenden
Normalerweise sollten Dateien und Ordner nicht dieselben Berechtigungen haben. Die meisten Dateien benötigen keine Ausführungsberechtigung, während du für die Ordner Ausführungsberechtigungen festlegen musst, um in sie wechseln zu können.
Das übliche Vorgehen ist, die Berechtigungen für die Dateien einer Website rekursiv auf 644
und die Berechtigungen für die Ordner auf 755
zu ändern.
Verwendung der numerischen Methode:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
Verwendung der symbolischen Methode:
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;
Der find
-Befehl sucht nach Dateien oder Ordnern unter /var/www/html
und übergibt jede gefundene Datei oder jeden gefundenen Ordner an den chmod
-Befehl, um die Berechtigungen festzulegen.
Wenn du find
zusammen mit -exec
verwendest, wird der chmod
-Befehl für jeden gefundenen Eintrag ausgeführt. Um den Prozess zu beschleunigen, verwende den xargs
-Befehl, um mehrere Einträge auf einmal zu übergeben:
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
Zusammenfassung
Der Befehl chmod
in Verbindung mit der Option -R
ermöglicht es dir, Dateiberechtigungen rekursiv zu ändern.
Um die Berechtigungen von Dateien rekursiv basierend auf ihrem Typ festzulegen, verwende chmod
in Kombination mit dem Befehl find
.
Bei Fragen oder Feedback zögere nicht, einen Kommentar zu hinterlassen.