我最近ldap client authentication
在 karmic 和 lucid 桌面客户端上安装了 Ubuntu,ldap 服务器在 10.04 LTS 服务器上运行,这是我在客户端设置时遵循的链接,这可能也适用于 11.04。我能够使用 ldap 用户帐户登录到客户端,而且在客户端上,我使用session required pam_mkhomedir.so umask=0022 skel=/etc/skel
pam.d/ 中的条目common-session
在用户首次登录时自动在客户端计算机上创建主目录。我想应该有一种方法可以将主目录从客户端同步到服务器,反之亦然,这样用户无论登录到哪个客户端都可以拥有他们的文档。
我还剩下以下任务要做:
- 同步客户端和服务器之间的主目录(就像 Windows 中的漫游配置文件一样)。
我尝试过,autofs
但问题在于客户端计算机上的本地用户帐户(管理员、来宾),当我放置条目以同步 ldap 用户的主目录(包括中的条目)时,这些帐户也会同步或覆盖(我不希望它们* server:/ldaphome/&
被/etc/auto.home
安装/home /etc/autofs.home
)/etc/autofs.master
。
有没有人有技巧可以做到这一点或使用任何其他方法,以便我可以使用 ldap 和本地用户凭据登录到客户端,并为 ldap 用户同步主目录?我知道这里有很多大师,一个人如何以他们的风格做到这一点?
更新:1
我尝试在客户端autofs
之外自动挂载不同的目录 (ldaphome) home
,并尝试在同一客户端上链接,这样当服务器上的 ldaphome 在客户端上挂载 ldaphome 时,用户的主目录 home/$USER 将因为符号链接而同步。因此,我编辑了ldaphome/$USER
文件并放置在登录时链接这些目录。我意识到符号链接对目录不起作用,因为它在 /home/$USER/$USER 下创建了一个链接名称。home/$USER
/etc/profile.d/custom.sh
ln -sf "/ldaphome/$USER" "/home/$USER"
DROPPED THIS SYMLINK METHOD!
更新:2
感觉除了更改客户端上本地用户的主目录并自动挂载目录之外没有其他办法,home
但autofs
我想要保护的客户端上的相同本地管理员用户也可作为服务器上的用户帐户(管理员、来宾)使用...
更新:3
usermod -m -d /local-home/admin admin
我妥协了,只是将已经存在的本地用户帐户移动( )到不同的主目录,然后为客户端设置自动挂载home
。我再次陷入问题,一旦客户端通过 ldap 进行身份验证,它就不会从服务器获取主文档,而只有当我手动将其挂载(mount ldapserver:/ldaphome/test /home/test
)在客户端上时才会起作用。客户端是karmic
...
客户端配置:
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
,然后使用 ldaphome 进行安装,您可以在 autofs 配置中看到它。当我尝试使用 ldap 登录时,在成功验证后,它会再次进入登录屏幕。当我停止服务时,它通常会登录并创建我在 pam.d/common-session 中autofs
使用的主目录。session required pam_mkhomedir.so umask=0022
当我第一次尝试使用任何新的 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
答案1
处理本地和集中帐户混合(无论是 LDAP 还是 NIS 还是其他)的常见方法有两种。您的第三次更新涵盖了其中一种。
- 本地帐户使用非
/home
基本目录作为家庭目录 - LDAP/central 使用非
/home
基础目录作为家庭目录
我通常使用选项#1并创建然后设置我的本地帐户以在那里拥有主目录,/local
例如/local/admin
,,等。然后我使用autofs来控制集中/远程主目录的挂载,方式与您在“更新3”中描述的相同。/local/sysadmin
/local/joe
/home
我猜想您的服务器正在使用 NFS 导出主目录?如果在客户端上手动安装 NFS 导出可以按预期工作,但 autofs 却不行,那么问题几乎肯定出在您的 autofs 配置上。
/etc/nsswitch.conf
为了帮助解决您的 autofs 问题,请发布、/etc/(open)ldap/ldap.conf
和/etc/ldap.conf
和(或任何相关的 autofs 配置)/etc/auto.master
的内容。/etc/auto.home
答案2
答案3
我必须创建或复制home directory
通过 nfs 在服务器上共享的 ldap 用户ldaphome
,我完全没想到这是原因。我以为当用户首次登录客户端时,用户的主目录将自动在 ldaphome 下创建。我做了以下事情,每个用户都很容易通过身份验证并自动安装他们的主目录,没有错误消息提示,我认为根本session required pam_mkhomedir.so umask=0022
不需要该条目:
在服务器上,
cp -a /home/* /ldaphome/
或者,如果 /home 下没有可供 ldap 用户使用的主目录,则可以创建该目录。
mkdir /ldaphome/ldapuser
chown -R ldapuser:ldapuser /ldaphome/ldapuser
在客户端,
将本地用户帐户移动到任意目录,例如
/local-home
,mkdir /local-home
usermod -m -d /local-home/username username
- 如果主目录是单独的分区,则取消注释文件
/home
中的挂载目录/etc/fstab
以让 autofs 挂载/home
。
尝试在客户端使用 ldap 凭证登录...成功!
由于我是实时使用 Linux 上此设置的初学者,我非常关心服务器上的 NFS 性能如何,因为一次登录和安装的用户数很多。我不知道是否有其他方法可以减少服务器负载或证明性能最佳。如果有,我非常有兴趣听取任何人的意见。