Festlegen globaler Berechtigungen zum Durchsuchen von Unterverzeichnissen (rx), wobei die Dateien jedoch für alle außer dem Eigentümer und den Gruppenmitgliedern unzugänglich gemacht werden

Festlegen globaler Berechtigungen zum Durchsuchen von Unterverzeichnissen (rx), wobei die Dateien jedoch für alle außer dem Eigentümer und den Gruppenmitgliedern unzugänglich gemacht werden

Ich habe normalerweise ein Verzeichnis, das alle Benutzer durchsuchen können sollen, in dem die Dateien jedoch nicht lesbar und nicht ausführbar sein sollen.

Ich sehe einige verwandte Fragen, die nicht genau meinen Wünschen entsprechen:

  • Diese Frageverwendet umask. Gilt nicht, da diese Dateien bereits erstellt wurden.

  • Diese Frageverwendet ACLs. Ich möchte hier jedoch UNIX-Berechtigungen verwenden.

Normalerweise verwende ich einen findBefehl, aber ich bin mir bewusst, dass er einige Schwächen hat. Ich werde ihn in Kürze als mögliche Antwort posten, zusammen mit den Gründen, warum ich denke, dass es einen besseren Weg geben könnte.

Antwort1

Normalerweise verwende ich Folgendes:

find . -type f -print0 | xargs -0 sudo chmod 440
find . -type d -print0 | xargs -0 sudo chmod 555

Dabei werden jedoch keine ausführbaren Dateien berücksichtigt. Ich dachte daran, für Dateien so etwas zu tun:

find . -type f -print0 | xargs -0 sudo chmod ug+r ug-w o-rwx

Aber es sind immer noch zwei Befehle und ich bin nicht sicher, ob das der beste Weg ist. Vielleicht hat jemand einen besseren Vorschlag.

Antwort2

Legen Sie einfach nicht die gleichen Berechtigungen für das Verzeichnis und die darin enthaltenen Dateien fest:

$ chmod g+rx directory/
$ chmod g= directory/*

Hier können die Gruppenmitglieder das Verzeichnis betreten und durchsuchen, sie können die darin enthaltenen Dateien jedoch nicht lesen.

Edit: Bezüglich deines neuen Titels würde ich vorschlagen:

$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *

Antwort3

Für bereits erstellte Verzeichnisse und Dateien:

find /start_directory -type d -exec chmod 755 {} \;

find /start_directory -type f -exec chmod 660 {} \;

Wenn Ihre Benutzer neue Dateien und/oder Unterverzeichnisse erstellen können sollen, geben Sie bitte weitere Details an, da eine Lösung von den genauen Anforderungen abhängt.

verwandte Informationen