===== Sind acls im Dateisystem nutzbar? ===== Bei ext4 und xfs sind ACLs per default aktiviert Für ext[234] default Mount-Optionen auslesen: tune2fs -l /dev/sdXX | grep '^Default mount options' ===== Default Mask setzen ===== setfacl -m "d:u::rwx,d:g::rwx,d:o::-" projekte2/ Alternative Syntax setfacl -d -m "u::rwx,g::rwx,o::-" projekte2/ setzt die default-mask auf ug=rwx,o= unter Umgehung der umask ===== ACL hinzufügen ===== Michelle darf alles hier: setfacl -m 'u:michelle:rwx' projekte2/ getfacl projekte2/ ===== "vererbbare" ACL hinzufügen ===== Michelles Rechte werden weitergegeben bei Neuanlage von Dateiobjekten setfacl -d -m 'u:michelle:rwx' projekte2/ ===== Aufgaben ===== groupadd group1 groupadd group2 groupadd group3 useradd -m -s /bin/bash test1 -G group1,group2,group3 useradd -m -s /bin/bash test2 -G group1,group2 useradd -m -s /bin/bash test3 -G group1 touch /tmp/acltest chown test1:group3 /tmp/acltest chmod ug=rw,o= /tmp/acltest setfacl -m g:group2:r,g:group1:w /tmp/acltest | ^ lesen? ^ schreiben? ^ ^ test1| ''_'' | ''_'' | ^ test2| ''_'' | ''_'' | ^ test3| ''_'' | ''_'' | setfacl -m m:r-- /tmp/acltest | ^ lesen? ^ schreiben? ^ ^ test1| ''_'' | ''_'' | ^ test2| ''_'' | ''_'' | ^ test3| ''_'' | ''_'' | setfacl -m g:group3:- /tmp/acltest | ^ lesen? ^ schreiben? ^ ^ test1| ''_'' | ''_'' | ===== Dateien mit ACLs finden ===== getfacl --recursive --skip-base startVerzeichnis | awk '/^# file:/ { print substr($0, 9) }' ''%%--%%recursive'' oder ''-R'' arbeitet rekursiv, ''%%--%%skip-base'' oder ''-s'' lässt Dateien weg, die lediglich die Standardeinträge haben (von ''chmod''). ===== Fallen/Todos ===== * gelöschte Benutzer/Gruppen in File-ACLs: wie finde ich die? ====== Doku ====== * http://wiki.ubuntuusers.de/ACL * Kapitel "Zugriffssteuerungslisten unter Linux" im OpenSuSE Handbuch ACLs werden grundsätzlich in zwei Klassen eingeteilt. Eine minimale ACL besteht ausschließlich aus den Einträgen vom Typ owner (Besitzer), owning group (Besitzergruppe) und other (Andere), und entspricht den herkömmlichen Berechtigungsbits für Dateien und Verzeichnisse. Eine erweiterte (engl. extended) ACL geht über dieses Konzept hinaus. Sie muss einen mask (Maske) Eintrag enthalten und darf mehrere Einträge des Typs named user (namentlich gekennzeichneter Benutzer) und named group (namentlich gekennzeichnete Gruppe) enthalten. Die Tabelle fasst die verschiedenen verfügbaren Typen von ACL-Einträgen zusammen: ^ Typ ^ Textform ^ | owner | user::rwx | | named user | user:name:rwx | | owning group | group::rwx | | named group | group:name:rwx | | mask | mask::rwx | | other | other::rwx | In den Einträgen owner und other festgelegte Rechte sind immer wirksam. Vom mask Eintrag abgesehen, können alle übrigen Einträge (named user, owning group und named group) entweder wirksam oder maskiert werden. Sind Rechte sowohl in einem der oben genannten Einträge als auch in der Maske vorhanden, werden sie wirksam. Rechte, die nur in der Maske oder nur im eigentlichen Eintrag vorhanden sind, sind nicht wirksam. ^ Typ ^ Textform ^ Rechte ^ | named user | user:jane:r-x |''r-x'' | | mask | mask::rw- |''rw-'' | ^ ^ Wirksame Berechtigungen: ^''r--'' ^ Grundsätzlich werden ACL-Einträge in folgender Reihenfolge untersucht: owner, named user, owning group oder named group und other. Über den Eintrag, der am besten auf den Prozess passt, wird schließlich der Zugang geregelt. Komplizierter werden die Verhältnisse, wenn ein Prozess zu mehr als einer Gruppe gehört, also potenziell auch mehrere group Einträge passen könnten. Aus den passenden Einträgen mit den erforderlichen Rechten wird ein beliebiger ausgesucht. Für das Endresultat „Zugriff gewährt“ ist es unerheblich, welcher dieser Einträge den Ausschlag gegeben hat. Enthält keiner der passenden group Einträge die korrekten Rechten, gibt wiederum ein beliebiger von ihnen den Ausschlag für das Endresultat „Zugriff verweigert“.