Ich habe ein FreeNAS-System (FreeBSD) mit einer CIFS-Freigabe (genannt „Bibliothek“), die von einem ZFS-Dateisystem unterstützt wird. Die Freigabe ist gemäß der FreeNAS-GUI so eingerichtet, dass sie „Windows/Mac“-ACLs verwendet, was meines Wissens nach NFSv4-ACLs bedeutet.
So sollen die grundlegenden ACLs aussehen:
nas# getfacl /mnt/big/library/test
# file: /mnt/big/library/test
# owner: DOMAIN\administrator
# group: DOMAIN\domain admins
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
In der Windows 7-Benutzeroberfläche wird dies als „Vollzugriff“ für „DOMAIN\Administrator“ und „DOMAIN\Domänenadministratoren“ und „Lesen und Ausführen“ für „Jeder“ angezeigt, die vom Stamm der Freigabe übernommen wurden. Windows erkennt den Besitzer sogar korrekt als „Administrator“.
Ich habe zwei Probleme, die meiner Meinung nach zusammenhängen könnten.
Erstens: Wenn ich einen ACE für ein vorhandenes Objekt (Datei oder Verzeichnis) ändere oder erstelle, ersetzt Windows den owner@
ACE durch einen für group:DOMAIN\administrator
und erstellt im Falle des Hinzufügens einen Gruppen-ACE für group:DOMAIN\joe
den Benutzer. Mich stört es nicht so sehr, dass es einen Benutzer für eine Gruppe hält (solange es funktioniert), aber das Ersetzen des Besitzer-ACE ist mühsam, denn wenn ich jetzt den Besitzer des Objekts ändere, existiert der ACE für den vorherigen Besitzer immer noch.
Das zweite Ärgernis ist, dass die ACL beim Erstellen eines neuen Objekts folgendermaßen aussieht:
nas2# getfacl /mnt/big/library/test/New\ folder/
# file: /mnt/big/library/test/New folder/
# owner: DOMAIN\joe
# group: DOMAIN\domain users
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
Obwohl die ACEs scheinbar korrekt übernommen wurden, wurden der Besitzer oder die Gruppe des übergeordneten Verzeichnisses nicht beibehalten. Gibt es eine Möglichkeit, es mit den Eigenschaften des übergeordneten Verzeichnisses erstellen zu lassen?
Mit Blick auf diesetfacl-ManpageEs sagt aus:
-d The operations apply to the default ACL entries instead of access
ACL entries. Currently only directories may have default ACL's.
This option is not applicable to NFSv4 ACLs.
Das bedeutet für mich, dass NFSv4-ACLs keine Standard-ACEs unterstützen, was wohl das ist, was ich brauche, um mein zweites Problem zu beheben. Weiß jemand, ob das richtig ist?
Antwort1
Ich habe mich damit noch nicht wirklich ausführlich befasst und kann mich auch gewaltig irren, aber hier sind ein paar Einzelheiten, die es vielleicht erklären:
NFSv4 ACLs sind ähnlich, abernicht ganzwie Windows/CIFS/NTFS-ACLs.
Beispielsweise unterscheidet das Windows ACL-Format überhaupt nicht zwischen „Benutzer“-, „Gruppen“- oder „speziellen“ SIDs. Da das NAS nicht weiß, welche Konten Ihr Windows-System hat, kann es nicht bestimmen, welche SIDs Benutzer und welche Gruppen sind – es muss raten.
Obwohl NFSv4-ACLs keine POSIX-ähnlichen „Standard-ACEs“ unterstützen,Tununterstützt die „vererbbaren“ ACEs im Windows/CIFS-Stil; das heißt, jeder Eintrag kann vererbbar sein oder nicht.
Im FreeBSD
getfacl
können Sie die Flagsf
und sehend
, die „vererbbar durch Dateien“ und „vererbbar durch Verzeichnisse“ entsprechen.Es gibt auch ein „Inherit-Only“-Flag
i
, das praktisch genau den „Standard“-ACEs in POSIX-ACLs entspricht. Das heißt, der ACE wird nur geerbt, aber nicht für das Verzeichnis selbst verwendet.Beim Erstellen einer Datei ist esstetsEigentum des Benutzers, der es erstellt hat. Es ist nicht vererbbar.
Würde auf dem CIFS-Server Windows Server ausgeführt, bestünde die Möglichkeit, die integrierte Gruppe „Administratoren“ zum standardmäßigen Dateieigentümer zu machen (beachten Sie auch hier, dass der Eigentümer entweder ein Benutzer oder eine Gruppe sein kann, und dass die Möglichkeit „Gruppeneigentum“ fehlt).