我已按照此站点上的操作方法成功将 ubuntu 配置为 ldap 客户端。我执行以下操作。
1)apt-get 安装 libpam-ldap nscd
2)配置 ldap-auth-config
3)修改/etc/nsswitch.conf
密码:ldap 兼容
组:ldap compat
影子:ldap 兼容
4)添加行
会话需要 pam_mkhomedir.so skel=/etc/skel umask=0022
到 /etc/pam.d common-session
5)执行 /etc/init.d/nscd 重启
6)修改 lightdm.conf 以允许用户使用名称和密码登录
一切正常。用户可以登录并且一切按预期工作。我遇到的问题是:在启动时(冷启动、重启),ubuntu 需要大约 6 分钟才能在 13.10 上启动。
在 14.04 上它完全挂起。
一旦我停用 ldap(例如重命名 ldap.conf 或输入错误的 ldap uri),启动就会正常运行,大约需要 20 秒。
有任何想法吗?
答案1
当前的解决方法是将现有脚本 /etc/init.d/libnss-ldap 更改为包含:
[...]
case "$1" in
start)
cp -f /etc/nsswitch.conf.ldap /etc/nsswitch.conf
;;
stop)
cp -f /etc/nsswitch.conf.local /etc/nsswitch.conf
;;
[...]
您可能需要首先创建 nsswitch.conf.ldap 和 nsswitch.conf.local
.ldap 文件包含用户、组、影子的 ldap
.local 文件没有用户、组、影子的 ldap 设置
答案2
在过去一年左右的时间里,我遇到过很多次这个问题,我想在这里发布我的解决方案,以防其他人遇到这个问题。我解决方案的主要来源是错误报告这里。我的环境是 LDAP 服务器(Ubuntu 14.04 桌面/LDAP 服务器),使用以下配置Digital Ocean LDAP 服务器指南以及一堆按照LDAP 客户端的 Digital Ocean 指南。除了 LDAP 之外,主目录也从外部源(使用 NFS)挂载。问题是它们会在启动时挂起(根据错误报告)。我的修复方法是:
(a)使用配置分配静态IP/etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.10.1.102
netmask 255.255.255.0
network 10.10.1.0
broadcast 10.10.1.255
gateway 10.10.1.1
dns-nameservers 8.8.8.8
(b)删除网络管理器:sudo apt-get remove --purge network-manager
(c)编辑/etc/ldap.conf
以添加一些额外的配置(参见错误报告):
timelimit 120
bind_timelimit 120
nss_reconnect_tries 2
nss_reconnect_sleeptime 1
nss_reconnect_maxsleeptime 1
nss_reconnect_maxconntries 1
bind_policy soft
(d)正确设置/etc/init.d/libnss-ldap
- 添加,按照上面 user249806 的回答:
[...]
case "$1" in
start)
cp -f /etc/nsswitch.conf.ldap /etc/nsswitch.conf
;;
stop)
cp -f /etc/nsswitch.conf.local /etc/nsswitch.conf
;;
esac
[...]
和,
(e)创建不包含 条目的/etc/nsswitch.conf.local
文件,以及包含 条目的文件。ldap
passwd
group
shadow
/etc/nsswitch.ldap
ldap
Ubuntu 社区仍然没有解决这个问题,这真是令人恼火。
答案3
我觉得我也有类似的问题。你可以试试,如果将 ldap-entry 从“group:”中移除会有帮助的话,尽管这不是解决方案。
它可能与以下因素有关:https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475
如果你讲德语:http://forum.ubuntuusers.de/topic/ldap-nsswitch-conf-hosts-ldap-system-bootet-ni/