GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann ich meine umask mithilfe von ACLs überschreiben, um alle in einem bestimmten Verzeichnis erstellten Dateien lesbar zu machen?

Lösung 1:

Ja, ACLs können dies tun.

  1. Stellen Sie sicher, dass Ihr Dateisystem mit acl gemountet ist . Um dies zu überprüfen, geben Sie mount ein . Sie sollten acl sehen unter anderen Berechtigungen aufgeführt, z. B.

    /dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
    

    Wenn es nicht mit acl gemountet ist, öffnen Sie /etc/fstab , und fügen Sie acl hinzu zur Liste der Optionen:

    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>   <options>       <dump>  <pass>
    /dev/sda1       /          ext3     noatime,errors=remount-ro,acl 0       1
    

    Hängen Sie nun das laufende Dateisystem mit den neuen Optionen erneut ein:

    mount -v -o remount /
    
  2. Installieren Sie die acl-Dienstprogramme. Unter Ubuntu/Debian ist dies:

    sudo apt-get install acl
    
  3. Deine neuen Freunde sind setfacl und getfacl . Verwenden Sie setfacl um die Standard-ACL für ein Verzeichnis zu ändern:

    setfacl -d -m o:r foo
    

    -d setzt Standard, -m modifiziert acl und o:r gewährt "anderen" das Leserecht. Das Festlegen von default für ein Verzeichnis entspricht ungefähr dem Festlegen von setgid für ein Verzeichnis, aber anstatt dass neu erstellte Dateien die Gruppe erben, erben sie die acl. Zusammen können setgid und acl leistungsfähig sein, da Sie einer Gruppe Standardberechtigungen erteilen und neu erstellte Dateien dazu bringen können, zu dieser Gruppe zu gehören, für eine effektive gruppenbasierte umask pro Verzeichnis.

  4. Überprüfen Sie Ihre Arbeit:ls -l sollte jetzt zusätzlich zu den Standard-Dateiberechtigungen ein zusätzliches "+" anzeigen, das auf das Vorhandensein von acl hinweist.

    % ls -la foo/
    drwxr--r--+
    

    Detaillierte Informationen zur ACL erhalten Sie mit getfacl .

    % getfacl foo
    # file: foo
    # owner: you
    # group: you
    user::rwx
    group::r--
    other::r--
    default:user::rwx
    default:group::---
    default:other::r--
    

Lösung 2:

Sie könnten auch eine umask für das Verzeichnis erzwingen, indem Sie die mask ACL-Eigenschaft wie folgt setzen:

setfacl -d -m mask:07 .

Linux
  1. Linux – So legen Sie Standard-Dateiberechtigungen für alle Ordner/Dateien in einem Verzeichnis fest

  2. Warum kann Rm schreibgeschützte Dateien entfernen?

  3. Wie stellt man den Besitz der Standardgruppe/des Benutzers aller Dateien unter /var wieder her?

  4. Verwenden Sie einen Index, um grep schneller zu machen?

  5. Wie finde ich alle fest verlinkten Dateien in einem Dateisystem?

Wie kann ich alle PDF-Dateien in einem Verzeichnis (und seinen Unterverzeichnissen) rekursiv in ein einziges Ausgabeverzeichnis kopieren?

Können Sie die Berechtigung für alle Dateien außer einem Verzeichnis in Linux ändern?

Alle Dateien im Verzeichnis einer Website anzeigen?

Löschen Sie alle bis auf 1000 zufällige Dateien in einem Verzeichnis

Wie kann ich Dateien standardmäßig mit rsync ausschließen?

Allen Benutzern erlauben, Dateien in einem Verzeichnis zu erstellen, aber nur der Eigentümer kann Dateien löschen