GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive

Sind Sie es leid, Datei- und Verzeichnisberechtigungen manuell ändern zu müssen? Suchen Sie nach einer schnelleren und effizienteren Möglichkeit, Ihre Datei- und Verzeichnisberechtigungen zu ändern? Dann sind Sie hier genau richtig, denn in diesem Artikel erfahren Sie, wie Sie Datei- und Verzeichnisberechtigungen mit dem Befehl chmod ändern rekursiv!

Kein Leser? Sehen Sie sich dieses zugehörige Video-Tutorial an! Sie sehen das Video nicht? Stellen Sie sicher, dass Ihr Werbeblocker deaktiviert ist.

Lesen Sie weiter, um mehr zu erfahren!

Voraussetzungen

Um mitzumachen, benötigen Sie ein Linux-Gerät und ein Verzeichnis, dessen Berechtigungen für Dateien und Unterverzeichnisse zum Üben verfügbar sind.

Lernen Sie etwas über Linux-Benutzer und -Gruppen

Besitzer und Gruppen sind wichtig in Linux, notwendig, um Dateien und Verzeichnisse sicher zu verwalten. Der Besitzer ist derjenige, dem eine Datei oder ein Verzeichnis zugewiesen wird, was standardmäßig der Ersteller ist. Unter Linux gehören auch Dateien und Verzeichnisse zu Gruppen. Sowohl Benutzer als auch Gruppen werden über chown eingestellt Befehl.

Im Screenshot unten zeigt der grün hervorgehobene Inhalt den Benutzer, dem die Datei oder das Verzeichnis gehört, mihail in diesem Beispiel. Der blau markierte Inhalt zeigt an, zu welcher Gruppe die Datei oder das Verzeichnis gehört, das staff gehört Gruppe in diesem Beispiel.

Datei- und Verzeichnisberechtigungen von Linux verstehen

Berechtigungen legen fest, welche Aktionen ein Benutzer oder eine Gruppe für eine bestimmte Datei oder ein bestimmtes Verzeichnis ausführen darf. Sie werden durch eine Zeichendarstellung gekennzeichnet und zusätzlich mit einem Zahlenwert versehen.

  • Lesen (r oder 4 ): Gibt an, ob ein Benutzer oder eine Gruppe den Inhalt der Datei oder des Verzeichnisses lesen darf. Die Leseberechtigung wird standardmäßig auf alle neu erstellten Dateien und Verzeichnisse für alle Beteiligten erteilt.
  • Schreiben (w oder 2 ): Gibt an, ob ein Benutzer oder eine Gruppe den Inhalt eines Objekts bearbeiten kann. Diese Berechtigung wird standardmäßig nur einem Datei- oder Verzeichniseigentümer gewährt.
  • Ausführen (x oder 1 ): Gibt an, ob ein Benutzer oder eine Gruppe eine Datei oder Befehle in einem Verzeichnis ausführen kann. Die Ausführungsberechtigung wird standardmäßig nur Verzeichnissen, nicht aber Dateien erteilt.

Wenn Sie dem Benutzer (u ) Berechtigungen für ein Verzeichnis ausführen, können sie keine Inhalte auflisten, da der Benutzer keine Befehle innerhalb des Verzeichnisses ausführen kann!

Ein Beispiel ist unten gezeigt, die Ausgabe des Befehls ls -l demonstriert die verschiedenen Berechtigungstypen. Diese Berechtigungen mit vorangestelltem d Wert, geben Sie ein Verzeichnis an.

Warum gibt es dann scheinbar drei Berechtigungssätze für jedes Objekt? Eine granulare Kontrolle der Berechtigungen wird erreicht, indem die Berechtigungen in die unten aufgeführten Abschnitte (für die Zwecke dieses Tutorials als Parteien bezeichnet) unterteilt werden.

  • Benutzer (u ): Der Eigentümer einer Datei oder eines Verzeichnisses, blau hervorgehoben.
  • Gruppe (g ): Mitglieder der Gruppe, zu der eine Datei oder ein Verzeichnis gehört, grün hervorgehoben.
  • Andere (o ): Alle weiteren nicht explizit zugewiesenen Benutzer und Gruppen, rot markiert.

Dateiberechtigungen über den rekursiven Befehl chmod ändern

Lesen Sie mit dem richtigen Linux-Berechtigungsverständnis weiter, um zu erfahren, wie Sie Dateiberechtigungen ändern. Berechtigungen werden über den chmod geändert rekursiver Befehl, wie in den folgenden Beispielen gezeigt.

1. Überprüfen Sie zuerst die aktuellen Berechtigungen mit dem ls -l Befehl. Hier die my_dir/index.js Datei wird angezeigt.

2. Führen Sie chmod aus Befehl, der die Partei angibt, a (alle) und die Berechtigungen, rwx , oder lesen/schreiben/ausführen. Es folgt der vollständige Befehl:chmod a=rwx index.js .

3. Wie Sie sehen können, führen Sie chmod aus rekursiv gibt keine Ausgabe zurück. Um zu überprüfen, ob sich die Berechtigungen geändert haben, führen Sie den Befehl ls -l aus wieder.

Festlegen von Dateiberechtigungen über numerische Werte

Erinnern Sie sich an die Zahlen, die Berechtigungen wie Lesen oder Schreiben zugeordnet sind? Anstatt die Zeichenwerte anzugeben, können Sie bestimmte Berechtigungen über eine Zahl angeben. Indem Sie die Werte hinzufügen, erstellen Sie eine bestimmte Berechtigung wie 6 Dies ist eine Kombination aus schreiben (2 ) und lesen (4 ) Berechtigungen.

Legen Sie im folgenden Beispiel Berechtigungen für main.py fest Datei über den Befehl chmod 664 main.py . Die Zahlenwerte gliedern sich wie folgt auf.

  • Benutzer: Lesen und Schreiben (6 ).
  • Gruppe: Lesen und Schreiben (6 ).
  • Sonstiges: Lesen (4 ).

Nachdem die Berechtigungen geändert wurden, überprüfen Sie die neuen Berechtigungen für main.py Datei mit dem Befehl ls -l .

Entfernen und Hinzufügen von Dateiberechtigungen

Die bisher ausgeführten nicht-numerischen Befehle verwendeten den Zuweisungsparameter (= ) mit chmod rekursiv, um explizite Berechtigungen festzulegen. Stattdessen können Sie (- ) oder hinzufügen (+ ) Berechtigungen für vorhandene Berechtigungssätze.

1. Listen Sie zunächst die vorhandenen Berechtigungen für die README.md auf Datei über den Befehl ls -l README.md .

2. Fügen Sie als Nächstes (+ ) ausführen (x ) Berechtigungen für die Benutzerpartei (u ), beim Entfernen (- ) lesen (r ) Berechtigungen von der anderen Partei (o ) für README.md , mit dem folgenden Befehl chmod u+x,o-r README.md . Abweichende Parteiberechtigungen werden durch Kommas getrennt (, ).

3. Führen Sie ls -l README.md aus Befehl, um zu überprüfen, ob Berechtigungen geändert wurden.

Datei- und Verzeichnisberechtigungen rekursiv ändern

Obwohl Sie Fortschritte machen, bearbeiten Sie jeweils nur eine Datei. Was ist, wenn Sie eine große Anzahl von Dateien haben, für die Sie Berechtigungen ändern müssen? Es ist an der Zeit, Ihr Spiel zu verbessern und zu lernen, wie Sie Berechtigungen für mehrere Dateien ändern.

Eine der Optionen zum Ändern mehrerer Dateien besteht darin, chmod auszuführen rekursiv mit dem -R (rekursiv, und nicht das Kapital) Option. Die rekursive Option ändert die Berechtigungen für alle Dateien, einschließlich derer in Unterverzeichnissen, innerhalb eines bestimmten Pfads.

1. Betrachten Sie den folgenden Befehl, chmod -R a=r,u=rwx my_dir . Die meisten Optionen haben Sie bereits zuvor gesehen.

Dieser Befehl ändert die Berechtigungen für alle Dateien im Verzeichnis my_dir und Unterverzeichnisse über die rekursive Option (-R ). Die Dateien werden auf lesbar gesetzt (r ) für alle (a ), mit abweichender Berechtigung für den aktuellen Benutzer (u ) auf volle Berechtigungen (Lesen, Schreiben, Ausführen) gesetzt.

Im folgenden Screenshot sehen Sie die resultierenden Berechtigungen nach Ausführung des Befehls, der keine resultierende Ausgabe hat.

2. Angenommen, Sie führen den Befehl chmod -R a=rwx my_dir aus , im selben Verzeichnis wie zuvor, my_dir. Wieder einmal ändern Sie alle Dateien in my_dir, und seinen Unterverzeichnissen, um alles zu geben (a ) volle Berechtigungen (Lesen, Schreiben, Ausführen). Hier ist das Ergebnis des Befehls als chmod rekursiv zeigt keine Ausgabe an.

3. Wie wäre es mit der numerischen Methode? Wie unten gezeigt, funktioniert die rekursive Methode auch mit numerischen Berechtigungen, chmod -R 770 my_dir . Hier erteilen Sie dem Benutzer und der Gruppe vollständige Berechtigungen, der anderen Partei jedoch keine Berechtigungen.

4. Führen Sie ls -l aus um das my_dir zu überprüfen Berechtigungen für Dateien und Unterverzeichnisse werden mit der numerischen Methode festgelegt.

Datei- und Ordnerverhalten über spezielle Berechtigungen definieren

Spezielle Berechtigungen ermöglichen mehrere zusätzliche Berechtigungen, die von den Standardberechtigungssätzen einzigartig sind. Es gibt drei Sonderberechtigungen. So funktionieren diese speziellen Berechtigungen und wie Sie sie einer Datei oder einem Verzeichnis hinzufügen können.

Festlegen der SUID-Berechtigungen (Benutzer + S)

Allgemein bekannt als SUID , es ist eine spezielle Berechtigung für den Benutzer. Die SUID hat eine einzige Funktion:eine Datei mit SUID wird immer als der Benutzer ausgeführt, dem die Datei gehört, unabhängig davon, wer die Datei ausführt.

Betrachten Sie zum Beispiel index.js . Um die zusätzliche SUID anzugeben Berechtigung, führen Sie chmod u+s index.js aus .

Wenn Sie jetzt ls -l index.js ausführen , werden Sie feststellen, dass der Benutzer ein s hat in ihren Berechtigungen anstelle eines x.

Festlegen der SGID-Berechtigungen (Gruppe + S)

Allgemein bekannt als SGID , diese spezielle Berechtigung hat zwei Funktionen:

  • Wenn für eine Datei festgelegt, kann die Datei als Gruppe ausgeführt werden dem die Datei gehört, unabhängig davon, wer die Datei ausführt.
  • Wenn für ein Verzeichnis festgelegt, haben alle im Verzeichnis erstellten Dateien ihre Gruppe Eigentümerschaft auf die des Verzeichniseigentümers gesetzt.

Üben Sie auf der index.php Datei. So fügen Sie die SGID hinzu Berechtigung für diese Datei haben, führen Sie den folgenden Befehl aus:chmod g+s index.php .

Wenn Sie jetzt ls -l index.php ausführen , finden Sie die Gruppe hat ein s in ihren Berechtigungen.

Wechseln Sie zu einem Verzeichnis:my_dir . Sie können die SGID hinzufügen Berechtigung für dieses Verzeichnis mit dem folgenden Befehl:chmod g+s my_dir . Alle in diesem Verzeichnis erstellten Dateien haben jetzt ihre Gruppe Ownership auf den Verzeichniseigentümer gesetzt. Sie können die neuen Berechtigungen des Verzeichnisses mit ls -ld my_dir überprüfen (der d Parameter begrenzt die Ausgabe nur auf Verzeichnisse).

Ändern der Sticky-Bit-Berechtigung

Die letzte Sondererlaubnis wird auch als „Sticky Bit“ bezeichnet. Diese Berechtigung wirkt sich nicht auf einzelne Dateien aus. Aber auf Verzeichnisebene schränkt es das Löschen von Dateien ein. Nur der Inhaber einer Datei kann eine Datei in diesem Verzeichnis entfernen.

Fügen Sie das Sticky-Bit zum altbekannten my_dir hinzu Verzeichnis. Führen Sie dazu den Befehl wie folgt aus:chmod +t my_dir .

Beachten Sie, dass Sie zum Hinzufügen des Sticky-Bits das andere nicht angeben group(o) vor dem +t .

Wenn Sie my_dir überprüfen ’s neuen Berechtigungen sehen Sie ein großes T im anderen Berechtigungen, wie im Screenshot unten gezeigt.

Schlussfolgerung

Herzliche Glückwünsche! Sie haben viele Themen zu chmod behandelt rekursiv. Sie sind jetzt bereit, alle lästigen Berechtigungsprobleme anzugehen, die mit dem allmächtigen chmod auftreten Werkzeug. Sie haben sogar gelernt, wie Sie die Macht der rekursiven (-R )-Option.

Wie beabsichtigen Sie, chmod zu implementieren vielseitige Funktionalität zu Ihrem Vorteil, wenn Sie das nächste Mal Datei- oder Verzeichnisberechtigungen verwalten müssen?


Linux
  1. UNIX / Linux:Leitfaden für Anfänger zu Datei- und Verzeichnisberechtigungen (umask, chmod, lesen, schreiben, ausführen)

  2. So verwalten Sie Datei- und Verzeichnisberechtigungen/Eigentümer in Linux

  3. Dateiberechtigungen mit Git beibehalten

  4. Datei- und Ordnerberechtigungen mit rsync beibehalten

  5. UNIX-Berechtigungen und Dateitypen verstehen

So ändern Sie Dateiberechtigungen rekursiv mit chmod in Linux

Chmod-Befehl in Linux (Dateiberechtigungen)

Linux-Dateiberechtigungen und Eigentumsrechte mit Beispielen erklärt

Linux-Chmod-Befehlsbeispiele

Berechtigungstabelle für Datei-/Verzeichnis- und Dateisystem-Benutzertypen

Dateiberechtigungen im Home-Verzeichnis eines Benutzers müssen korrigiert werden