Einführung
Mehrbenutzersysteme wie Linux erfordern das Einrichten und Verwalten von Dateiberechtigungen, die sicherstellen, dass nur autorisierte Benutzer Zugriff auf die Dateien haben, für die sie vorgesehen sind.
Wenn Sie eine Dateiberechtigung ändern müssen, verwenden Sie chmod Befehl. Es ermöglicht auch, die Dateiberechtigung rekursiv zu ändern um mehrere Dateien und Unterverzeichnisse mit einem einzigen Befehl zu konfigurieren.
In diesem Tutorial erfahren Sie, wie Sie chmod rekursiv verwenden und die Dateiberechtigungen unter Linux ändern.
Voraussetzungen
- Ein Befehlszeilen-/Terminalfenster (Strg + Alt +T oder Strg +Alt+F2 )
- Ein Benutzerkonto mit sudo Privilegien (optional)
- Ein Linux-System
Dateiberechtigung prüfen
Wenn Sie die Dateiberechtigungen im Arbeitsverzeichnis überprüfen müssen, verwenden Sie den Befehl:
ls –l Die Ausgabe listet die Berechtigungen aller Dateien im Verzeichnis auf.
Zum Beispiel das Beispiel Verzeichnis enthält drei Dateien (test1.txt , test2.txt und test3.txt ) mit denselben Berechtigungen (-rw-rw-r– ).
Die oben aufgeführten Dateiberechtigungen sagen uns Folgendes:
- Der Eigentümer hat Lese- und Schreibrechte
- Die Eigentümergruppe hat Lese- und Schreibrechte
- Andere Benutzer Leserechte haben
Berechtigung rekursiv ändern
Es ist üblich, den einfachen chmod zu verwenden Befehl, um die Berechtigung einer einzelnen Datei zu ändern. Möglicherweise müssen Sie die Berechtigung jedoch rekursiv für alle Dateien innerhalb eines Verzeichnisses ändern.
In solchen Fällen die chmod rekursive Option (-R oder --recursive ) setzt die Berechtigung für ein Verzeichnis (und die darin enthaltenen Dateien).
Die Syntax zum rekursiven Ändern der Dateiberechtigung lautet:
chmod -R [permission] [directory] Stellen Sie daher die 755 ein Berechtigung für alle Dateien im Beispiel Verzeichnis würden Sie Folgendes eingeben:
sudo chmod -R 755 Example Der Befehl gibt lesen, schreiben und ausführen aus Privilegien für den Besitzer (7 ) und lesen und ausführen Zugriff für alle anderen (55 ).
Berechtigungen mit dem Find-Befehl ändern
Um Verzeichnissen und Dateien getrennte Berechtigungen zuzuweisen, können Sie die Datei find verwenden Befehl.
Die grundlegende Syntax umfasst die Verwendung von find Befehl, um Dateien/Verzeichnisse zu finden und dann an chmod weiterzuleiten um die Berechtigung zu setzen:
sudo find [directory] -type [d/f] -exec chmod [privilege] {} \; - Ersetzen Sie
[directory]mit dem Verzeichnispfad, der die Dateien und Unterverzeichnisse enthält, die Sie konfigurieren möchten. - Geben Sie an, ob nach einem Verzeichnis gesucht wird
-type dein oder eine Datei-type f. - Setzen Sie die Datei
[privilege]mit demchmodBefehl im numerischen oder symbolischen Modus.
Vermeiden Sie es, Dateien Ausführungsrechte zuzuweisen. Eine übliche Einrichtung würde die Ausführung der folgenden Befehle beinhalten:
sudo find Example -type d -exec chmod 755 {} \; sudo find Example -type f -exec chmod 644 {} \; In diesem Beispiel haben die Verzeichnisse 755 (u=rwx,go=rx )-Berechtigungen, während die Dateien 644 (u=rw,go=r)-Berechtigungen haben.
Sie können überprüfen, ob Verzeichnisse und Dateien unterschiedliche Berechtigungseinstellungen haben, indem Sie zum Beispiel wechseln Verzeichnis (cd Example ) und den Inhalt auflisten (ls -l ). Die Ausgabe sollte der folgenden ähneln:
Berechtigung bestimmter Dateien rekursiv ändern
Kombinieren der find Befehl mit chmod kann auch verwendet werden, um die Berechtigung von Dateien eines bestimmten Typs zu ändern.
Die Befehlssyntax zum Ändern der Berechtigung eines bestimmten Dateityps in einem Verzeichnis lautet:
find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \; Zum Beispiel, um alle .sh zu machen Dateien im aktuellen Verzeichnis ausführbar , würden Sie verwenden:
find . -name "*.sh" -exec chmod +x {} \;