Wie funktionieren die Berechtigungen verschachtelter Ordner?

Wie funktionieren die Berechtigungen verschachtelter Ordner?

1) Ich bin nicht sicher, wie die Berechtigungen für verschachtelte Verzeichnisse funktionieren.

Angenommen, ich habe die folgenden Verzeichnisse/Dateien und Berechtigungen:

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Ist „Public“ wirklich öffentlich?

2) Wenn ich „Privat“ wirklich privat machen möchte, spielt es dann eine Rolle, ob ich beim Ausführen von „chmod 700“ -R verwende?

3) Ich habe gelesen, dass Ubuntu standardmäßig einen von Word lesbaren Home-Ordner verwendet und sich weigert, das zu ändern. Aber wenn ich „ls -lh“ mache, bekomme ich Folgendes: drwx------ (700, richtig?). Was ist es also? Haben sie ihre Meinung bezüglich des Home-Ordners geändert?

Hinweis: Ich verwende eine Ubuntu 12 VM

Antwort1

~/Private/ 700
~/Private/Group 770
~/Private/Group/Public 777

Ein Benutzer, der nicht der Besitzer von ist ~/Private/, ~/Private/Groupkann mit diesen Berechtigungen nicht auf den öffentlichen Ordner zugreifen.

Unter Unix/Linux müssen Sie das Ausführungsbit hinzufügen, damit ein Benutzer ein Verzeichnis durchlaufen (in ein Verzeichnis wechseln oder es durchqueren) kann. Sie müssen jedoch keinen Lesezugriff gewähren. Versuchen Sie es stattdessen mit Folgendem. Bedenken Sie jedoch, dass der Benutzer wissen muss, dass die Verzeichnisse „Gruppe“ und „Öffentlich“ vorhanden sind. Er kann nicht prüfen, lsob sie vorhanden sind, es sei denn, ihm wird auch Lesezugriff gewährt.

~/Private/ 711
~/Private/Group 771
~/Private/Group/Public 777

ist es wichtig, ob ich -R verwende, wenn ich 'chmod 700' mache?

Wenn Sie diesen Befehl ausführen, ändern Sie die Berechtigungen aller Dateien und Verzeichnisse unterhalb des Zielverzeichnisses. Wenn Sie etwas mit anderen Berechtigungen haben, gehen diese verloren. Ich vermute, Sie würden auch vielen regulären Dateien das Ausführungsbit hinzufügen, was im Allgemeinen unerwünscht ist.

Sie können stattdessen auch einen Befehl wie diesen verwenden. Dadurch werden nur die Berechtigungen für das Verzeichnis und die Unterverzeichnisse geändert, die Berechtigungen für die Dateien bleiben unverändert.

find {directory_path} -type d -print0 | xargs --null -n 1 chmod 0700

Ein ähnlicher Befehl zum Ändern nur der Dateien würde so aussehen.

find {directory_path} -type f -print0 | xargs --null -n 1 chmod 0600

verwandte Informationen