OpenLdap synchronisiert das Ausgangsverzeichnis zwischen Client und Server


7

Ich habe kürzlich Ubuntu ldap client authenticationauf karmischen und luziden Desktop-Clients eingerichtet und der LDAP-Server läuft auf einem 10.04 LTS-Server. Dies ist der Link, dem ich für die Client-Einrichtung gefolgt bin, und wahrscheinlich funktioniert dies auch für 11.04. Ich konnte mich bei Clients mit den ldap-Benutzerkonten anmelden und auf den Clients habe ich einen Eintrag session required pam_mkhomedir.so umask=0022 skel=/etc/skelin pam.d / verwendet common-session, um das Basisverzeichnis auf Clientcomputern automatisch zu erstellen, wenn sich der Benutzer zum ersten Mal anmeldet. Ich denke, es gibt eine Möglichkeit, das Home-Verzeichnis von Client zu Server und umgekehrt zu synchronisieren, sodass Benutzer ihre Dokumente auf jedem Client haben, bei dem sie sich anmelden.

Ich habe die folgende Aufgabe noch zu erledigen:

  1. Synchronisieren Sie die Home-Verzeichnisse zwischen Client und Server (genau wie beim Roaming-Profil in Windows).

Ich habe es mit versucht, autofsaber das Problem liegt bei lokalen Benutzerkonten (Administrator, Gast) auf Clientcomputern, die ebenfalls synchronisiert oder überschrieben werden (ich möchte nicht, dass sie gemountet werden), wenn ich den Eintrag * server:/ldaphome/&in /etc/auto.homedas Home-Verzeichnis des LDAP-Benutzers lege synchronisiert (inklusive Eintrag /home /etc/autofs.homein /etc/autofs.master).

Jeder hat einen Trick, um dies oder auf andere Weise zu tun, damit ich mich bei Clients mit ldap- und lokalen Benutzeranmeldeinformationen anmelden kann, wobei das Home-Verzeichnis für ldap-Benutzer synchronisiert ist. Ich weiß, dass viele Meister hier sind, wie würde man das mit ihrem Stil machen?

Update: 1

Ich habe versucht, ein autofsanderes Verzeichnis (ldaphome) als homeauf einem Client automatisch bereitzustellen, und ich habe versucht, das ldaphome/$USERund home/$USERauf demselben Client zu verknüpfen, sodass das Home-Verzeichnis home / $ USER des Benutzers aufgrund von symlink synchronisiert wird, wenn das ldaphome auf dem Server ldaphome auf dem Client bereitstellt . Also habe ich die /etc/profile.d/custom.shDatei bearbeitet und ln -sf "/ldaphome/$USER" "/home/$USER"diese Verzeichnisse beim Login verlinkt. Ich habe festgestellt, dass Symlinks für das Verzeichnis nicht wie erwartet funktionieren, da ein Linkname unter / home / $ USER / $ USER erstellt wird.

DROPPED THIS SYMLINK METHOD!

Update: 2

Es fühlt sich nicht anders an, als das Home-Verzeichnis des lokalen Benutzers auf Clients zu ändern und das homeVerzeichnis automatisch zu mounten, autofsaber derselbe lokale Administrator-Benutzer auf Clients, den ich sichern möchte, ist auch als Benutzerkonto auf dem Server (Admin, Gast) verfügbar. .

Update: 3

Ich habe das Verschieben ( usermod -m -d /local-home/admin admin) der bereits vorhandenen lokalen Benutzerkonten in ein anderes Ausgangsverzeichnis kompromittiert und dann automount für homeauf dem Client eingerichtet. Wieder bin ich auf ein Problem gestoßen, sobald der Client durch ldap authentifiziert ist, werden die Home-Dokumente nicht vom Server abgerufen, sondern funktionieren nur, wenn ich sie manuell ( mount ldapserver:/ldaphome/test /home/test) auf dem Client einbinde . Der Kunde ist karmic...

Client-Konfiguration :

vim /etc/nsswitch.conf:

# pre_auth-client-config # passwd:         compat
passwd: files ldap
# pre_auth-client-config # group:          compat
group: files ldap
# pre_auth-client-config # shadow:         compat
shadow: files ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

# pre_auth-client-config # netgroup:       nis
netgroup: nis

vim /etc/ldap.conf:

base dc=mydomain,dc=net
uri ldap://192.168.1.2
ldap_version 3
rootbinddn cn=admin,dc=mydomain,dc=net
bind_policy soft
pam_password md5
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,games,gdm,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,proxy,pulse,root,rtkit,saned,speech-dispatcher,sshd,statd,sync,sys,syslog,usbmux,uucp,vboxadd,www-data

vim /etc/ldap/ldap.conf:

BASE    dc=mydomain,dc=net
URI     ldap://192.168.1.2

SIZELIMIT       0
TIMELIMIT       0
DEREF           never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

vim /etc/auto.master:

+auto.master

/home   /etc/auto.home

vim /etc/auto.home:

*               192.168.1.2:/ldaphome/&

Ich habe ldaphomeauf dem Server geteilt (192.168.1.2). Jetzt ist das Problem, dass ich /homeals separate Partition auf dem Client habe und sie in fstabgemountet und mit ldaphome gemountet habe, was Sie in autofs config sehen konnten. Wenn ich versuche, mich mit ldap anzumelden, wird nach erfolgreicher Authentifizierung erneut der Anmeldebildschirm angezeigt. Wenn ich den autofsDienst session required pam_mkhomedir.so umask=0022beende , meldet er sich normalerweise beim Erstellen des Basisverzeichnisses an, wie ich es in pam.d / common-session verwendet habe.

Wenn ich versuche, mich zum ersten Mal mit einem neuen ldap-Konto anzumelden, wird der folgende Fehler angezeigt:

    Creating directory '/home/user3'.
    Unable to create and initialize directory '/home/user3'.
    No directory, logging in with HOME=/


vim /var/log/auth.log:
lucid mkhomedir_helper: PAM unable to create directory /home/user3: No such file or directory

Irgendeine Idee bitte?
user53864

1
Versuchen Sie, die lokale /homePartition für Ihre Clients zu verwenden? Ich habe es versucht und mich seitdem für die Verwendung entschieden /export/home/<USERNAME>. Ich gehe /homefür lokale Systemkonten. Wie auch immer, ich bin auf dasselbe Problem gestoßen, aber ich verwende WinBind, um mich bei Active Directory zu authentifizieren. Ich kann die Home-Verzeichnisse automatisch lokal erstellen, konnte jedoch keine Autofs aus der Ferne verwenden. Mein Fix? Sie wissen, wer alle Ihre Benutzer sind. Erstellen Sie daher zuerst ihren Basisordner auf dem NFS-Server.
Luckytaxi

@luckytaxi: Ich habe es bereits behoben und jetzt habe ich Ihren Kommentar gesehen, aber ich hatte Pech, Sie wären vor sich selbst gekommen und hätten es leicht behoben. Ich habe einige bedeutungslose Versuche unternommen, das zu tun, was immer ich wollte, und schließlich, wie Sie hier sagten, das Home-Verzeichnis unter dem Ordner nfs zu erstellen, habe ich ohne mein Wissen das Verzeichnis erstellt und plötzlich gearbeitet, und ich dachte, dies könnte die Lösung sein. Und du hast es bestätigt. Vielen Dank!
user53864

@luckytaxi: Hey, wissen Sie, wie man ein Kontingentlimit für das Verzeichnis (ldaphome) anwendet, da auf dem Server keine Partition erstellt oder nicht mehr Speicherplatz verwendet wird?. Auf dem gesamten Client /homebefindet sich jedoch eine separate Partition mit 30 GB, die die NFS-Freigabe /ldaphomeauf dem Server bereitstellt . Irgendein Trick zum Spielen?.
user53864

Wir legen keine Quoten fest, aber vielleicht würde dies helfen. yolinux.com/TUTORIALS/LinuxTutorialQuotas.html
Luckytaxi

Antworten:


5

Es gibt zwei gängige Methoden für den Umgang mit einer Mischung aus lokalen und zentralisierten Konten (LDAP oder NIS oder was auch immer). Ihr drittes Update umfasst eines davon.

  1. Lokale Konten verwenden ein Nicht- /homeBasisverzeichnis für Privathaushalte
  2. LDAP / Central verwendet ein Nicht- /homeBasisverzeichnis für Privathaushalte

Ich benutze häufig Option # 1 und erstellen /localdann mein Setup lokale Konten Home - Verzeichnisse haben dort wie /local/admin, /local/sysadmin, /local/joeusw. ich dann autofs verwenden , um zu steuern unter zentralisierter / Remote - Home - Verzeichnisse Montage /homeviel in der gleichen Art und Weise Sie beschreiben in " Update 3 ".

Ich nehme an, Ihr Server exportiert Home-Verzeichnisse mit NFS. Wenn das manuelle Mounten des NFS-Exports auf dem Client wie erwartet funktioniert, Autofs jedoch nicht, liegt Ihr Problem mit ziemlicher Sicherheit in Ihrer Autofs-Konfiguration.

Für Hilfe bei Ihrem autofs Problem, schreiben Sie bitte den Inhalt /etc/nsswitch.conf, /etc/(open)ldap/ldap.conf, /etc/ldap.confund /etc/auto.masterund /etc/auto.home(oder was auch immer / , wo die entsprechenden autofs Konfigurationen sind).


Ich habe meine Antwort aktualisiert!. Ich versuche dies zu tun, damit beim Anmelden ein Home-Verzeichnis für den Benutzer erstellt wird und es jedes Mal, wenn sich der Benutzer anmeldet, mit autofs auf der Serverfreigabe bereitgestellt wird. Vielen Dank für Ihr Interesse!
user53864

Kopfgeld vergeben!
user53864

Kann ich sshfsanstelle von verwenden autofs? unix.stackexchange.com/questions/306713/…
Casper

1

Hast du dir pam_mount angesehen ? Das ist es, was ich derzeit verwende, obwohl mein Anwendungsfall etwas anders ist als Ihr. Dieser Blogpost bietet einen ziemlich guten Überblick über den Prozess. Er ist auf einen SAMBA-Server ausgerichtet. Wenn Sie jedoch die Samba-spezifischen Teile ignorieren, funktioniert er mit NFS (das ist, was ich verwende) und funktioniert mit 10.04. Ich habe am 11.04 nicht versucht.


1

Ich musste home directoryldap-Benutzer erstellen oder kopieren , unter ldaphomedenen ich über nfs auf dem Server geteilt habe, und ich hatte überhaupt nicht erwartet, dass dies die Ursache sein sollte. Ich dachte, das Home-Verzeichnis des Benutzers wird automatisch unter ldaphome erstellt, wenn sich der Benutzer zum ersten Mal beim Client anmeldet. Ich habe die folgenden Dinge getan und jeder Benutzer ist leicht zu authentifizieren und hat sein Ausgangsverzeichnis automatisch automatisiert, ohne dass eine Fehlermeldung angezeigt wird, und ich denke, der Eintrag wird überhaupt session required pam_mkhomedir.so umask=0022nicht benötigt:

Bei Server

cp -a /home/* /ldaphome/

Oder wenn das Basisverzeichnis für ldap-Benutzer unter / home nicht verfügbar ist, hat das Erstellen des Verzeichnisses funktioniert.

mkdir /ldaphome/ldapuser
chown -R ldapuser:ldapuser /ldaphome/ldapuser

Beim Kunden,

  • Verschieben Sie das lokale Benutzerkonto in ein beliebiges Verzeichnis /local-home.

    mkdir /local-home

usermod -m -d /local-home/username username

  • Wenn das Home-Verzeichnis eine separate Partition ist, kommentieren Sie das gemountete /homeVerzeichnis in der /etc/fstabDatei aus, damit Autofs gemountet werden /home.

Versuchen Sie, sich mit ldap-Anmeldeinformationen auf dem Client anzumelden ... hat funktioniert!

Da ich der Anfänger dieses Setups unter Linux bin, das in Echtzeit verwendet wird, bin ich sehr besorgt darüber, wie die Leistung mit NFS auf dem Server aussehen würde, da sich viele Benutzer gleichzeitig anmelden und bereitstellen. Ich kenne keine andere Möglichkeit, dies zu tun, wenn eine weniger Serverlast hat oder sich als die beste Leistung erweist. Wenn es welche gibt, bin ich sehr daran interessiert, von irgendjemandem zu hören.


Versuchen Sie das tatsächlich. Ich habe dies in meinem /etc/pam.d/system-auth...session required pam_mkhomedir.so skel=/etc/skel umask=0077
Luckytaxi

Soweit ich weiß, wird es nur zum automatischen Erstellen eines Home-Verzeichnisses verwendet, wenn sich der Benutzer zum ersten Mal anmeldet, und entweder dieses oder autofs wird gemäß rthomsonder Antwort verwendet, aber die Verwendung von beiden hat keine Verwendung.
user53864

Ist es nicht das, wonach du suchst? Erstmaliges Benutzerkonto erstellen?
Luckytaxi

Ja, aber diesen Eintrag bei der Verwendung von Autofs zu haben, ist nutzlos. Da ich festgestellt habe, dass die nfs-Freigabe das Home-Verzeichnis hat und ohne diesen Eintrag ohne Fehlermeldung protokolliert und gemountet wird, aber mit einer kleinen Fehlermeldung group: cannot find group id 1002beim Öffnen des Terminals, sollte die Gruppe des Home-Verzeichnisses auch auf dem Client erstellt werden .
user53864

Nein, Ihre Benutzer sollten sich in derselben Gruppe befinden. Meine Benutzer gehören zu "Domänenbenutzern", die die NFS-Server und -Clients verstehen. Alle meine Computer sind an meine AD-Infrastruktur gebunden. Sie sollte sich nicht von openldap unterscheiden.
Luckytaxi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.