Ubuntu-Server + Samba + PAM + Apple OpenDirectory

Aus verschiedenen Gründen suchen wir unsere Dateiserver von OS X Server 10.9 auf eine echte Samba-Implementierung, die auf Ubuntu 14.04LTS läuft. Wir haben Ubuntu und laufen mit Samba installiert und haben sogar PAM Setup, um Benutzer gegen unseren Apple OpenDirectory Server zu authentifizieren.

Doch Samba, um die Benutzer so zu authentifizieren, wie wir wollen, erweist sich als sehr anspruchsvoll. Es scheint, wir haben zwei Möglichkeiten. Option 1 soll einfach Samba delegieren dieses auf das bereits funktionale PAM-Subsystem; Option 2 ist die Verwendung von Sambas integrierter Unterstützung für LDAP und Kerberos. Die Out-of-Box-Konfiguration in Ubuntu scheint die Option 1 zu bevorzugen, und in der Tat scheint das, wäre das einfachste Setup, um langfristig zu verwalten. (Option 2 erfordert eine Tonne mehr Konfiguration inklusive Modifikation des Apple Schemas, was ich verstehe, ist keine gute Idee in der Praxis.)

Also, dass alles gesagt wird, ich beabsichtige zu versuchen, Option 1 zu arbeiten, (was es fast tut). Derzeit arbeitet die PAM-Authentifizierung gegen OD bereits. Ich kann ssh und log als OD Benutzer auf dem System den ganzen Tag lang. Was aber nicht gut ist, ist, dass der Benutzer dies zuerst machen muss, bevor Samba sie als UNIX-Benutzer erkennen wird. Mit anderen Worten, bis der Benutzer sich mindestens einmal über SSH verbindet, wird Samba ihre Anmeldeinformationen nicht erkennen. Außerdem glaube ich nicht, dass Samba die OD-Gruppen sieht, weil der Versuch, die Konnektivität auf bestimmte Aktien zu begrenzen, die auf den Gruppennamen basieren, auch nicht funktioniert.

Sobald sich der Benutzer einmal mit SSH angemeldet hat (oder wenn man versucht, ein normales lokales Benutzerkonto zu verwenden) nimmt Samba seinen Namen und ihr Passwort für immer an. Bis das passiert, lehnt es sie einfach ab.

Die smb.conf-Datei enthält diese relevanten Einträge:

server role = standalone server obey pam restrictions = yes passdb backend = tdbsam unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes guest account = nobody map to guest = bad user 

Nsswitch.conf enthält diese relevanten Einträge:

 passwd: compat ldap group: compat ldap shadow: compat ldap 

.

Scheint, wie muss es eine einfache Fix oder Arbeit-um zu diesem Verhalten irgendwie sein. Mit den Befehlen wie "getent", "id", "group" und "passwd" werden die Ergebnisse und Verhaltensweisen, die ich erwarte, korrekt zurückgegeben. Nur smbd scheint etwas extra zu haben, das es braucht

Ich habe kein Glück gehabt, den besten Weg zu finden, um dies zu tun, und habe bereits mehrere Tage über die Dokumentation, Webseiten, O'Reilly Bücher und das Experimentieren mit beiden Szenarien ausgegeben. Ich habe auch diesen ähnlichen Beitrag hier gelesen. Ist jemand schon auf dieser Straße gewesen? Jede Hilfe wird sehr geschätzt, einschließlich weise UNIX Anekdoten und / oder moralische Unterstützung.

Vielen Dank!

Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.