Wie lege ich Berechtigungen für ein Verzeichnis fest, das seine Berechtigungen an alle Unterverzeichnisse erteilt?

404
boardrider

Gibt es eine Möglichkeit, Berechtigungen für ein * nix-Verzeichnis festzulegen, sodass beim Erstellen eines Unterverzeichnisses das Unterverzeichnis mit allen Berechtigungen als übergeordnetes Verzeichnis erstellt wird?


Es gibt folgendes, aber es scheint nicht alles zu tun, was ich verlange:

Wenn auf einem System das Set-Group-ID-Bit eines Verzeichnisses festgelegt ist, erben neu erstellte Subdateien dieselbe Gruppe wie das Verzeichnis, und neu erstellte Unterverzeichnisse erben das Set-Group-ID-Bit des übergeordneten Verzeichnisses. Auf einigen Systemen hat das Set-User-ID-Bit eines Verzeichnisses eine ähnliche Auswirkung auf den Besitz neuer Subdateien und die Set-User-ID-Bits neuer Unterverzeichnisse. Dank dieser Mechanismen können Benutzer Dateien einfacher freigeben, indem sie die Verwendung von chmod oder chown zum Freigeben neuer Dateien verringern.

4

1 Antwort auf die Frage

3
Yaron

Wenn ein Unterordner erstellt wird, wird die Berechtigung des neuen Unterordners definiert durch:

  1. Die Eigenschaften des Benutzers haben das Verzeichnis erstellt:

    ein. Benutzeridentifikation

    b. Gruppen-IDs

  2. Das definierte umask

  3. Der Elternordner default ACL(falls vorhanden)

Hinweis: Weitere Informationen finden Sie in acl man

ACLs für die Erstellung von Objekten und Defaults

Die Zugriffs-ACL eines Dateiobjekts wird initialisiert, wenn das Objekt mit einer der Funktionen creat (), mkdir (), mknod (), mkfifo () oder open () erstellt wird. Wenn eine Standard-ACL einem Verzeichnis zugeordnet ist, wird der Modusparameter für die Funktionen, die Dateiobjekte erstellen, und die Standard-ACL des Verzeichnisses verwendet, um die ACL des neuen Objekts zu bestimmen:

1. Das neue Objekt erbt die Standard-ACL des enthaltenden Verzeichnisses als Zugriffs-ACL.

2. Die Zugriffs-ACL-Einträge, die den Dateiberechtigungsbits entsprechen, werden so geändert, dass sie keine Berechtigungen enthalten, die nicht in den im Parameter mode angegebenen Berechtigungen enthalten sind.

Wenn einem Verzeichnis keine Standard-ACL zugeordnet ist, wird der Modusparameter für die Funktionen, die Dateiobjekte erstellen, und die Dateierstellungsmaske (siehe umask (2)) verwendet, um die ACL des neuen Objekts zu bestimmen:

  1. Dem neuen Objekt wird eine Zugriffs-ACL zugewiesen, die Einträge der Tag-Typen ACL_USER_OBJ, ACL_GROUP_OBJ und ACL_OTHER enthält. Die Berechtigungen dieser Einträge werden auf die in der Dateierstellungsmaske angegebenen Berechtigungen festgelegt.

  2. Die Zugriffs-ACL-Einträge, die den Dateiberechtigungsbits entsprechen, werden so geändert, dass sie keine Berechtigungen enthalten, die nicht in den im Parameter mode angegebenen Berechtigungen enthalten sind.

Anweisungen zum Festlegen einer Standard-ACL wurden aus diesen Fragen und Antworten kopiert

chmod g+s <directory> //set gid  setfacl -d -m g::rwx /<directory> //set group to rwx default  setfacl -d -m o::rx /<directory> //set other 

Als nächstes können wir überprüfen:

getfacl /<directory> 

Ausgabe:

# file: ../<directory>/ # owner: <user> # group: media # flags: -s- user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:other::r-x 

Weitere Informationen umaskfinden Sie in umask man

 umask() sets the calling process's file mode creation mask (umask) to mask & 0777 (i.e., only the file permission bits of mask are used), and returns the previous value of the mask.  The umask is used by open(2), mkdir(2), and other system calls that create files to modify the permissions placed on newly created files or directories. Specifically, permissions in the umask are turned off from the mode argument to open(2) and mkdir(2).  Alternatively, if the parent directory has a default ACL (see acl(5)), the umask is ignored, the default ACL is inherited, the permission bits are set based on the inherited ACL, and permission bits absent in the mode argument are turned off. For example, the following default ACL is equivalent to a umask of 022:  u::rwx,g::r-x,o::r-x  Combining the effect of this default ACL with a mode argument of 0666 (rw-rw-rw-), the resulting file permissions would be 0644 (rw- r--r--).  The constants that should be used to specify mask are described under 
@boardrider - Wenn ich deine Frage beantwortet habe, akzeptiere sie bitte Yaron vor 7 Jahren 1