it-swarm.com.de

Chmod, um Lese- und Schreibberechtigungen für das Verzeichnis zuzulassen

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

57
chrissygormley

0775 ist selten richtig für eine Datei. Das Folgende fügt dem entsprechenden Typ die entsprechenden gewünschten Berechtigungen hinzu, ohne andere vorhandene Berechtigungen zu stören:

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 find , um dies zu entschlüsseln.

Zum alles Benutzer mit Lese- und Schreibzugriff, das wäre 0777, was ein bisschen gefährlich ist, besonders 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

Falls Sie man chmod nicht kannten, wird die Handbuchseite für den Befehl chmod angezeigt. Sie können nach dem Text "rekursiv" suchen, indem Sie /recursive eingeben.

44
deadkarma

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 durchführen, aber das bedeutet nur, dass Sie "diese Berechtigungen für alle Dateien und Ordner unten durchgehen und festlegen", was nicht das ist, was ich für Ihre Frage verstehe.

Verwenden Sie dazu die Option -R für chmod:

$ chmod -R 0755 /my-cool-directory
14
unwind