Chmod, um Lese- und Schreibrechte für Verzeichnisse zuzulassen


62

Ich habe Verzeichnisse in root angelegt. Ich suche nach dem chmodBefehl, um allen Benutzern Lese- und Schreibberechtigungen für ein bestimmtes Verzeichnis zu ermöglichen. Ich habe chmod 775für eine Datei getan, aber ich brauche dies für ein Verzeichnis. Dies beinhaltet Berechtigungen für alle Dateien und Unterverzeichnisse.

Antworten:


34

0775ist selten richtig für eine Datei. Im Folgenden werden dem entsprechenden Typ die gewünschten Berechtigungen hinzugefügt, ohne andere vorhandene Berechtigungen zu beeinträchtigen:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Auf der Manpage finden Sie Informationen zum Entschlüsseln.


47

Das wäre für alle Benutzer mit Lese- und Schreibzugriff 0777etwas gefährlich, insbesondere wenn Sie einen Webserver betreiben. Wie @unwind sagte:

chmod -R 0777 /mydirectory Ermöglicht allen Benutzern Lese- und Schreibzugriff auf alle Dateien und Ordner in diesem Verzeichnis

Abhängig von Ihrem Verwendungszweck möchten Sie möglicherweise Informationen zu Sticky Bits lesen, mit denen alle Benutzer neue Dateien erstellen, jedoch keine anderen Dateien in einem Verzeichnis löschen oder bearbeiten können:

chmod +t /mydirectory

Für den Fall, dass Sie nicht wissen man chmod, dass die Handbuchseite für den chmodBefehl angezeigt wird, können Sie den Text "rekursiv" suchen, indem Sie Folgendes eingeben/recursive


15

So funktioniert das Unix-Schutzmodell nicht, Sie können Berechtigungen nicht rekursiv festlegen. Sie müssen sie in jedem Verzeichnis vollständig "down" setzen.

Natürlich können Sie die Einstellung rekursiv vornehmen, aber das bedeutet nur, dass Sie "diese Berechtigungen für alle Dateien und Ordner unten festlegen". Dies ist nicht das Verständnis Ihrer Frage.

Verwenden Sie dazu die Option -R , um Folgendes zu ändern:

$ chmod -R 0755 /my-cool-directory

@unwind - Ich meine, jede Datei und jedes Unterverzeichnis eines Verzeichnisses, das ich chmod habe, hat Lese- und Schreibrechte für alle. Ist es das, was dieser Befehl tut? Danke

1
Wenn ich das -r vor das 0755 stelle, erhalte ich 0755 - keine solche Datei oder kein solches Verzeichnis. Wenn ich das -r danach stelle, wird mein Problem gelöst.
Tim Mottram

"do do". lol. nett.
Ytpillai
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.