Wenn Sie Linux als Ihr Hauptbetriebssystem verwenden oder Linux-Server verwalten, werden Sie auf eine Situation stoßen, in der Sie versuchen, eine Datei zu erstellen oder zu bearbeiten, und einen „Permission deny“-Fehler erhalten. Normalerweise können Fehler im Zusammenhang mit unzureichenden Berechtigungen behoben werden, indem die richtigen Dateiberechtigungen oder Eigentumsrechte festgelegt werden.
Linux ist ein Mehrbenutzersystem, und der Zugriff auf die Dateien wird über die Dateiberechtigungen, Attribute und Eigentumsrechte gesteuert. Dadurch wird sichergestellt, dass nur autorisierte Benutzer und Prozesse auf Dateien und Verzeichnisse zugreifen können.
Weitere Informationen zu Dateiberechtigungen finden Sie unter „Umask-Befehl in Linux“.
In diesem Artikel erklären wir, wie Sie die Berechtigungen von Dateien und Verzeichnissen rekursiv ändern.
Chmod rekursiv #
Der chmod
Mit dem Befehl können Sie die Berechtigungen von Dateien im symbolischen oder numerischen Modus ändern.
Um alle Dateien und Verzeichnisse in einem bestimmten Verzeichnis rekursiv zu bearbeiten, verwenden Sie chmod
Befehl mit dem -R
, (--recursive
) Möglichkeit. Die allgemeine Syntax zum rekursiven Ändern der Dateiberechtigungen lautet wie folgt:
chmod -R MODE DIRECTORY
Zum Beispiel, um die Berechtigungen aller Dateien und Unterverzeichnisse unter /var/www/html
zu ändern Verzeichnis nach 755
Sie würden verwenden:
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 Benutzer mit sudo
Privilegien können die Berechtigungen einer Datei ändern. Seien Sie besonders vorsichtig, wenn Sie die Berechtigungen der Dateien rekursiv ändern.
Mit dem find
Befehl #
Im Allgemeinen sollten die Dateien und Verzeichnisse nicht die gleichen Berechtigungen haben. Für die meisten Dateien ist keine Ausführungsberechtigung erforderlich, während Sie Ausführungsberechtigungen für die Verzeichnisse festlegen müssen, um in sie wechseln zu können.
Das häufigste Szenario besteht darin, die Berechtigungen der Website-Datei rekursiv auf 644
zu ändern und die Berechtigungen des Verzeichnisses auf 755
.
Mit der numerischen Methode:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
Mit 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
Der Befehl sucht nach Dateien oder Verzeichnissen unter /var/www/html
und übergibt jede gefundene Datei oder jedes Verzeichnis an chmod
Befehl zum Festlegen der Berechtigungen.
Bei Verwendung von find
mit -exec
, der chmod
Der Befehl wird für jeden gefundenen Eintrag ausgeführt. Verwenden Sie die xargs
Befehl, um die Operation zu beschleunigen, indem mehrere Einträge gleichzeitig übergeben werden:
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
Schlussfolgerung #
Der chmod
Befehl mit dem -R
Optionen können Sie die Berechtigungen der Datei rekursiv ändern.
Verwenden Sie chmod
, um rekursiv Berechtigungen für Dateien basierend auf ihrem Typ festzulegen in Kombination mit find
Befehl.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.