• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Samba mit openLDAP und ACL´s

gretchen

Member
Hallo,

und zwar habe ich derzeit noch folgendes Problem. Ich habe mein Samba eingerichtet und an ein openLDAP angebunden. Das ganze funktioniert auch so weit. Die User kann ich mittels LAM anlegen und diese kann ich dann auch als Sambauser verwenden. Also im groben sollte das schon mal laufen. Nur was mir noch nicht ganz klar ist ich möchte über Samba eine Freigabe einrichten und dann mit meinem Windowsclient die Berechtigungen auf Filesystemebene vergeben.

Hier meine smb.conf

Code:
[global]
        workgroup = domain
        netbios name = domain
        wins support = yes
        interfaces = eth0
        map to guest = Bad User
        security = user

        # LDAP
        passdb backend = ldapsam:ldap://domain
        ldap admin dn = cn=manager,dc=domain
        ldap suffix = dc=domain
        ldap group suffix = ou=groups
        ldap machine suffix = ou=hosts
        ldap user suffix = ou=users
        ldap ssl = yes
        ldap passwd sync = yes

        # PDC
        domain master = yes
        os level = 200
        domain logons = yes
        preferred master = yes

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        read only = No
        browseable = No

[install]
        comment = install on domain
        path = /data/install
        read only = no
        browseable = yes
        inherit acls = yes
        nt acl support = yes

Ich gehe jetzt mit meinem Windowsclient auf das Share install und klicke es mit der rechten Maustaste an gehe auf Eigenschaften und dann in der Menü Sicherheit. Dort sehe ich auch die Standardberechtigungen vom Linuxsystem. Wenn ich jetzt auf durchsuchen meiner Domäne klicke kommt ein Fenster an dem ich mich Authentifizieren muss. Das habe ich auch brav mit meinem Benutzer gemacht und komme in die Auswahl der Gruppen und Benutzer. Ich sehe darin auch alle Gruppen und Benutzer die ich in unserem openLDAP angelegt habe. Also sollte ja das schon mal funktionieren. Wenn ich jetzt z.B. eine Gruppe oder einen User aus unserem openLDAP auswähle und will diesen auf die Freigabe setzen kommt die Fehlermeldung Zugriff verweigert.

Jetzt meine Frage was fehlt da noch? Mit welchem Benutzer muss ich mich eigentlich authentifizieren um das zu dürfen?
 

stka

Guru
Mit einem Benutzer der berechtigt ist Rechte in dem Dateisystem zu vergeben. Das kann der root oder der Besitzer des Verzeichnis machen. Hast du einen Domänadmin im LDAP angelegt?
 
OP
G

gretchen

Member
Hi,

ja also ich bin nach deinem HowTo vorgegangen aber da kam das für mich nicht so richtig raus welchen Benutzer ich da anlegen muss. Ich habe im openLDAP einen Benutzer Namens "Administrator" angelegt und habe diesen in die Gruppe Domainadmins hinzugefügt. Dann habe ich noch den openLDAP Admin Manager. Aber irgendwie muss ja der Benutzer Administrator dann auch noch im System Rechte bekommen?
 

ThomasF

Hacker
Welches Filesystem hast du denn "unter" diesem Share ???

Das Grundproblem ist folgendes ... die Linux Berechtigungen kennen erst einmal nur rwx-rwx-rwx ( Owner,Group,Other)
Wie soll darauf den ein weiterer Domain-User abgebildet werden ?

Was du brauchst sind die ACLs auf Linux Filesystem-Ebene ... Unter Linux kannst du solche Rechte mit getfacl und setfacl setzten ... falls die Erweiterungen installiert sind ...

Aber Vorsicht .... mach dir nicht zuuu viele Hoffnungen ... selbst ext3 mit ACLs kann nicht alle Rechte von NTFS 1:1 abbilden ...

Das ganze Thema ist sehr komplex ...

So long

ThomasF
 
OP
G

gretchen

Member
Hi,

nee was ich brauche ist Samba mit korrekten ACL´s ;=). Spaß bei Seite...als Filesystem habe ich xfs bei dem sollte ACL Support standardmäßig aktiv sein. Das ich mittels Windows Client auf Unixshares Berechtigungen vergeben kann weiß ich da ich es selbst schon mal eingerichtet hatte. Nur eben nicht in der kombination openLDAP und Samba als PDC.

Ich denke auch das Problem was ich habe hat mit dem User zu tun was stka schon angesprochen hat. Leider hatte er wohl noch keine Zeit zum antworten. Wenn mir einer kurz erklären könnte wo und wie der User angelegt werden muss sollten meine Problem behoben sein...
 

ThomasF

Hacker
Hehe,

ich habe mich mit solchen Problemen schon reichlich rumgeschlagen .. und ob das jetzt wirklich an der Kombination LDAP + Samba liegt ist noch fraglich *fg*

Hast du einen User in LDAP angelegt der sich an einer Windows Kiste anmelden kann ???
Wenn ja, kann dieser User auf dem Share einen Ordner oder File anlegen ???
Kannst du diesen Ordner oder File auch wieder löschen oder umbenennen ???
Wenn ja, tritt das genannte Problem auch bei diesem frisch angelegten Ordner aus ???

Wenn du bis hierhin immer ja sagen konntest kann du ziemlich sicher sein das es nicht an dem LDAP-User oder dessen grundsätzlichen Rechten liegt !!!

Weitere Tests wären sich mit diesem User unter Linux anzumelden oder mit su dessen Identität annehmen ... dann wechselst du in das Verzeichnis das du als Share freigegeben hast und erzeugst dort wieder z.B ein Verzeichnis und schaust dir die Dateirechte an und auch die erweiterten Rechte mit getfacl und versuchst dann auf der Konsole mit setfacl dem Verzeichnis eine weitere Gruppe oder User hinzuzufügen ...

Wenn das alles klappt, poste doch bitte die Ausgabe von :

Code:
testparm -vv |grep acl 
testparm -vv |grep support

Dann schaun wir mal weiter ;)

So long

ThomasF
 
OP
G

gretchen

Member
Hi,

also fange ich nochmal an. Ich habe als aller erstes im openLDAP vier Gruppen angelegt:

Domain Admins
Domain Computers
Domain Guests
Domain Users

Ich habe bei allen die GID geprüft passt auch alles. Dann habe ich einen User mittels dem LAM angelegt:

Administrator

und habe diesen in die Gruppe Domain Admins hinzugefügt. Im Filesystem hat der User dann auf sein Homelaufwerk die Berechtigung:

drwxr-x--- 8 Administrator domain_admins 4096 Mar 13 11:20 Administrator

Damit der Administrator dann Rechner in meine Domäne aufnehmen kann habe ich Ihm mittels:

net rpc rights grant DOMAIN\\Administrator \ SeMachineAccountPrivilege -S localhost

die Berechtigung gegeben. So um festzustellen ob das auch alles geklappt hat habe ich mir einen Windows XP VMWare installiert und diesen Rechner in meine Domäne hinzugefügt. Als Account habe ich den oben angelegt Administrator verwendet. Das hinzufügen sowie das herausnehmen aus der Domäne funktioniert soweit ohne Probleme.

Mit dem Administrator kann ich mich auch an meinem Windows System das bereits in die Domäne aufgenommen wurde anmelden. Auf dem eigenen Homelaufwerk (Administrator) kann der User Administrator Dateien erstellen löschen etc..

Was der Administrator nicht kann auf das Share install zugreifen. Dort kann nur die Gruppe sowie der User root zugreifen ist auch klar da ich ja bisher noch nicht rausgefunden habe wie ich da meine Gruppe Domain Admins oder User etc. anwenden kann. Wie kann ich dem User Administrator sagen das er auf dem Linuxsystem als root arbeiten darf? Weil sobald ich mit meinem Windowsclient die Rechte vergeben möchte bin ich ja als Administrator angemeldet. Der Administrator darf aber wahrscheinlich auf dem Linuxfilesystem nichts anfassen...

Bei den beiden Befehlen die Du genannt hast kommt das raus:

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[install]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

acl compatibility = auto
acl check permissions = Yes
acl group control = No
acl map full control = Yes
force unknown acl user = No
inherit acls = No
nt acl support = Yes
profile acls = No
map acl inherit = No
inherit acls = Yes

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[install]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

nt pipe support = Yes
nt status support = Yes
enable asu support = No
wins support = Yes
ea support = No
nt acl support = Yes
dmapi support = No

das sagt mir so erstmal überhaupt nichts ;=)
 
OP
G

gretchen

Member
Hi,

ich werd bekloppt es geht. Das einzigste was ich jetzt in der smb.conf geändert habe ist:

[install]
comment = install on servername
path = /data/install
read only = no
browseable = yes
admin users = Domain\Administrator

jetzt kann ich mit dem Administrator auf das Share install zugreifen und hab vollzugriff. Was ich jetzt auch kann/darf Rechte vergeben. Habe die Gruppe Domain Admins auf das Share gesetzt und die User die darin enthalten sind dürfen jetzt auch alles auf dem Share.

Kann es wirklich sein das es nur die obige Änderung ist? Ich mein Sinn machen würde es auf jeden Fall weil woher soll mein Samba sonst wissen wer außer root Zugriff haben soll.
 
OP
G

gretchen

Member
Hi,

hab mich wohl etwas zu früh gefreut. Ich kann zwar Gruppen und User auf das Share hinzufügen aber nicht mehr rausnehmen. Ich kann ganz normal über meinen Windowsclient auf die Freigabe klicken und unter Sicherheit die Gruppen oder User hinzufügen. Leider kann ich keine User oder Gruppen entfernen. An was könnte das liegen?
 

ThomasF

Hacker
Hi gretchen,

also ich habe mir diesen Thread jetzt noch ein paar mal durchgelesen und habe auch versucht die Situation nachzustellen, aber irgendwie blicke ich da trotzdem nicht durch ...

Fakt ist aber, das es auch auf unserem Server Verzeichnisse gibt wo der Domain-Admin z.B nicht rein darf bzw. keine Rechte hat ... und das ist auch beabsichtigt.
Auch unter nativem Windows kann man den Admin "aussperren" ... und es gibt nur ein einziges Recht das man unter Windows einem lokalen oder Domain-Administrator IMHO nicht nehmen kann. Das Recht den Besitz der Datei zu übernehmen ...

Anders der lokale root auf dem Server wo die eigentlichen Dateien liegen ...

Es gibt aber noch Möglichkeiten die du versuchen kannst ...

Erstens reicht es meiner Meinung nach "admin users = Administrator" zu schreiben ... da der Samba ja PDC der Domain ist ... anderseits "sollte" es auch nicht schaden.
Zweitens versuche du mal die Rechte auf der Freigabe "install" selber zu ändern und dort dem Administrator Vollzugriff zu geben ... und ganz wichtig dieses Recht nach weiter unten ins Verzeichnis standardmäßig zu vererben !!! Damit hat der Administrator auf jedes neu erstellte Verzeichnis automatisch auch Vollzugriff ...

Und kontrolliere ob du mit getfacl auf Dateisystemebene dann auf dieses Verzeichnis auch den entsprechenden Eintrag bekommst (z.B default:user:Administrator:rwx )

Und aus eigener Erfahrung kann ich dir noch raten auf Linux Ebene auch mal ein ls -lan auszuführen ... um zu sehen ob die uid auch wirklich die ist die sie sein sollte ;)

So long

ThomasF
 
OP
G

gretchen

Member
Hi,

ich habe deine Vorschläge mal ausprobiert leider ohne Erfolg. Wie schon beschrieben ich kann Rechte etc. vergeben aber diese nicht mehr wegnehmen. Muss ich vielleicht die Berechtigungen einfach mit dem User root vergeben? Wenn ich auf meinem Windowsrechner die Freigabe anklicke und möchte Gruppen oder User hinzufügen melde ich mich ja mit dem Administrator an. Diesen User habe ich im openLDAP angelegt. Dieser hat ja erstmal keine Berechitugngen im Linux Filesystem.
Wäre es nicht möglich das ich mich einfach mit dem User root anmelde und dann die Rechte vergebe? Weil der User root sollte ja alles dürfen. Wie müsste ich das dann machen den User root auch im openLDAP anelegen?
 

stka

Guru
Hast du in deinem LDAP einen Administrator angelegt? Wenn ja poste mal den ldif File von dem Benutzer. Wenn nein schau in meinen Workshop wie das geht. Der root hat im LDAP nichts verloren.
 
Oben