der Solaris SMB Server speichert die ACLs ja im Dateisystem so wie ich das verstanden habe. Aber wie läuft das normal unter Samba, wo werden die da gespeichert. Sind die wenn ich die Festplatten mit den Daten in ein anderes System stecke einfach weg? Oder gibts irgendeine Datei die Samba da anlegt wo alles drin gespeichert ist?
Bei einem Vergleich Samba vs Solaris CIFS sollte man von Windows und ntfs ausgehen.
Windows arbeitet mit Usergruppen die Gruppen oder User enthalten können. Die Identifizierung der User oder Gruppen erfolgt mit eindeutigen Windows Security IDs (SID) die eine Domänen oder Serverkennung enthalten.
Mit diesen SID Kennungen kann man auf einem NTFS Datenträger ACL anlegen. Windows ACLs sind sehr mächtig. Damit lassen sich nicht nur Rechte sondern auch Rechtevererbungen sehr fein einstellen. Man kann dadurch festlegen dass eine ACL z.B. nur für einen Ordner oder auch untergeordnete Ordner oder Dateien wirken soll.
Wenn man jetzt statt NTFS ein Unix Dateisystem benutzt, so ist das erste Problem, dass Unix als Security Kennung UID und GID benutzt. Beides ist eine einfache Nummer ohne Bezug zu einer Domäne oder einem Server. Hinzu kommt dass Unix Gruppen keine Gruppen enthalten können, sie also weniger Optionen haben als Windows Gruppen. Hinzu kommt, dass es unter Unix unterschiedliche Dateisysteme mit unterschiedlichen Fähigkeiten gibt.
Damit ist auch bereits das Hauptproblem von Samba beschrieben. Es ist ein universeller SMB Server für Unix (BSD, Solaris) und Linux. Die features orientieren sich an dem, was immer zur Verfügung gestellt wird. Damit gibt es nur Unix UID und GID. Bei den ACL werden üblicherweise Posix ACL benutzt. Im Vergleich zu Windows ACL oder NFS4 ACL unter Solaris fehlen die feinen Einstellmöglichkeiten und Vererbungsoptionen.
Die (Posix) ACL werden bei Samba auch im Dateisystem gespeichert sofern das Dateisystem das zulässt und Samba entsprechend konfiguriert wird. Als Bezug gibt es aber nur Unix/Linux UID und GID. Die Zuordnung zu einem Windows User z.B, in einer Domäne erfolgt über ein Usermapping SID <-> UID/GID. Wenn man ein Dateisystem dann auf einen anderen AD-Server verschiebt, so bleiben die Permissions nur erhalten, wenn man genau die gleiche Samba Konfiguration mit identischem Mapping hat.
Solaris CIFS arbeitet da etwas anders. Da es das nur auf Solaris und -Forks und nur mit ZFS gibt, kann es sich erheblich besser an Windows orientieren. Das fängt damit an, dass der Solaris CIFS Server eine Windows-kompatible Gruppenverwaltung hat, die unabhängig von Unix Gruppen die erweiterten Fähigkeiten von Windows hat. Um die UID/GID Beschrängunken des Unix Dateisystems ZFS bei SMB zu umgehen, speichert Solaris die originale Windows SID für Domaänenuser als erweitertes ZFS Attribut. Es gibt zwar auch ein Usermapping Windows User <-> Unix User, das braucht man aber lediglich für spezielle Mappings wie Domänenadmin=root. Wird unter Solaris/ OmniOS ein Dateisystem auf einen anderen AD Server verschobe, so bleiben die AD Rechte erhalten, ohne dass etwas beachtet werden muss.
Als ACL werden bei Solaris nfs4 ACL benutzt. Die sind sehr ähnlich zu Windows ACL, unterscheiden sich vor allem in den deny Regeln bei denen die ACL Reihenfolge wichtig ist.
Eine weitere Besonderheit von Solaris ist die Integration von SMB in den Kernel und in ZFS. Das erleichtert dann sowas wie ZFS Snaps als Windows "vorherige Version" erheblich. Ein Grund warum das bei Solaris "einfach tut" und bei Samba erheblichen Aufwand bedeutet.
Zuletzt bearbeitet: