OpenLdap在客户端和服务器之间同步主目录

我最近在karmic和lucid桌面客户ldap client authentication上设置了Ubuntu ldap client authentication ,ldap服务器在10.04 LTS服务器上运行, 这是我为客户端设置所遵循的链接,可能这也适用于11.04。 我可以使用ldap用户帐户login到客户端,而且在客户端上,我使用了一个inputsession required pam_mkhomedir.so umask=0022 skel=/etc/skel在pam.d / common-session中自动创build主目录在客户端计算机上当用户第一次login时。 我想有一种方法可以将客户端的主目录同步到服务器,反之亦然,这样用户就可以将他们的文档login到客户端。

我有下面的任务需要完成:

  1. 同步客户端和服务器之间的主目录(就像在Windows中的漫游configuration文件)。

我尝试使用autofs但问题是与客户端计算机上的本地用户帐户(pipe理员,来宾),也被同步或覆盖(我不希望他们挂载)当我把条目* server:/ldaphome/&/etc/auto.home中获得ldap用户的主目录同步(在/etc/autofs.master包含entry /home /etc/autofs.home /etc/autofs.master )。

任何人都有任何诡计可以做到这一点或以任何其他方式,以便我可以login到客户端同时使用ldap和本地用户凭据的主目录为ldap用户同步? 我知道很多大师在这里,他们的风格怎么会这样呢?

更新:1

我尝试在客户端上的其他目录(ldaphome)以外的其他目录autofs automounting,我试图链接在同一客户端上的ldaphome/$USERhome/$USER ,以便当服务器上的ldaphome在客户端上挂载ldaphome时,用户的主目录home / $ USER将由于符号链接而同步。 所以我编辑了/etc/profile.d/custom.sh文件,并在login时将ln -sf "/ldaphome/$USER" "/home/$USER"链接到这些目录。 我意识到符号链接不能按预期的方式工作,因为它在/ home / $ USER / $ USER下创build链接名称。

DROPPED THIS SYMLINK METHOD!

更新:2

除了在客户端更改本地用户的主目录,并在autofs自动安装home目录,但是我打算保护的客户端上的同一本地pipe理用户也可以作为服务器(admin,guest)上的用户帐户使用, …

更新:3

我妥协只是将已经存在的本地用户帐户( usermod -m -d /local-home/admin admin )移动到不同的主目录,然后在客户端上设置自动挂载。 我又一次陷入了问题,一旦客户端通过ldapauthentication,它不会从服务器获取主文档,但只有在客户端上手动挂载( mount ldapserver:/ldaphome/test /home/testmount ldapserver:/ldaphome/test /home/test 。 客户是karmic

客户端configuration

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/& 

我在服务器上共享ldaphome (192.168.1.2)。 现在的问题是我有/home作为客户端上的一个单独的分区,我卸载它在fstab和挂载它可以在autofsconfiguration中看到ldaphome。 当我尝试使用ldaplogin时,authentication成功后,再次进入login屏幕。 当我停止autofs服务时,它通常会login创build主目录,因为我在session required pam_mkhomedir.so umask=0022 / common-session中使用了session required pam_mkhomedir.so umask=0022

当我尝试第一次login任何新的LDAP帐户时,它会出现以下错误:

  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 

有两种处理混合本地和集中帐户(无论是LDAP或NIS或其他)的常见方法。 你的第三个更新涵盖其中之一。

  1. 本地帐户使用非/home基本目录
  2. LDAP /中央使用非/home基本目录

我通常使用选项#1和创build/local然后设置我的本地帐户有主目录,如/local/admin/local/sysadmin/local/joe等我然后使用autofs来控制安装集中/远程/home下的主目录与您在“Update 3”中描述的方式大致相同。

我认为你的服务器正在用NFS导出主目录? 如果手动挂载客户端上的NFS导出工作正常,但autofs不会,你的问题几乎肯定是你的autofsconfiguration。

为了解决autofs问题,请发布/etc/nsswitch.conf/etc/auto.master/etc/auto.home (或任何/无论相关的autofsconfiguration)。

你看过pam_mount吗? 这是我目前使用的,虽然我的用例与你的略有不同。 这个博文给出了一个相当好的过程概述,它是面向SAMBA服务器,但如果你忽略了它与NFS(这是我使用的)工作的Samba特定的部分,并将与10.04。 我在11.04没有试过。

我不得不在ldaphome下创build或复制ldap用户的home directory ,我通过nfs在服务器上共享,我根本没有想到这应该是原因。 当用户第一次login客户端时,我认为用户的主目录是在ldaphome下自动创build的。 我做了以下的事情,每个用户都很容易validation和自动化他们的主目录,没有错误消息提示,我认为inputsession required pam_mkhomedir.so umask=0022根本不需要:

在服务器上,

 cp -a /home/* /ldaphome/ 

或者,如果home目录对于/ home下的ldap用户不可用,则创build目录工作。

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

在客户端,

  • 移动本地用户帐户到任何目录说/local-home通过,

    mkdir /local-home

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

  • 如果主目录是一个单独的分区,那么在/etc/fstab文件中取消挂载的/home目录的注释,让autofs挂载/home

尝试在客户端使用ldap凭据进行日志logging…工作!

由于我是基于Linux实时使用的初始设置,所以我非常担心服务器上的NFS性能如何,因为许多用户一次login和挂载。 我不知道这样做的其他方式,如果任何有较less的服务器负载或certificate是最好的性能。 如果有什么我非常有兴趣听到任何人。