当我尝试与 Active Directory 集成时,Ubuntu 12.04 遇到了问题。
我安装了 CentrifyDC 并加入了 DC。一切正常,直到我重新启动计算机,当我尝试使用用户名和域密码登录时,我无法登录。然后我使用我的默认 ubuntu 用户名登录,如果我尝试命令 adinfo,centrifydc 会处于断开连接模式。3 分钟后,没有任何干预,当我输入 adinfo 命令时,centryfidc 会显示已连接,我可以使用我的域用户登录并通过。
同样的情况是,如果我执行命令:/etc/init.d/centrifydc 重新启动,它就会显示已连接。
有人能告诉我为什么启动时无法连接吗?当我输入 adinfo --diag 时出现错误:找不到 SPN:无法绑定到 DC。
答案1
最后,通过在 /etc/network/if-up.d/ 中创建脚本解决了问题
sudo vim /etc/network/if-up.d/centrify
内容:
#!/bin/sh
if [ "$IFACE" = lo ]; then
exit 0
fi
/etc/init.d/centrifydc restart
initctl emit centrify-connected
在我输入之后:
sudo chown root /etc/network/if-up.d/centrify
sudo chgrp root /etc/network/if-up.d/centrify
sudo chmod 755 /etc/network/if-up.d/centrify
然后我使用正确的权限(chown root、chgrp root、chmod 644)修改了 /etc/init/lightdm.conf,并且只添加了一个启动条件。
sudo chown root /etc/init/lightdm.conf
sudo chgrp root /etc/init/lightdm.conf
sudo chmod 644 /etc/init/lightdm.conf
然后
sudo vim /etc/init/lightdm.conf
我只添加了一个启动条件。
# LightDM - light Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
#
# based on gdm upstart script
description "LightDM Display Manager"
author "Robert Ancell <[email protected]>"
start on ((filesystem
and runlevel [!06]
and started dbus
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udev-fallback-graphics)
**and centrify-connected)**
or runlevel PREVLEVEL=S)
stop on runlevel [016]
emits login-session-start
emits desktop-session-start
emits desktop-shutdown
script
if [ -n "$UPSTART_EVENTS" ]
then
# Check kernel command-line for inhibitors, unless we are being called
# manually
for ARG in $(cat /proc/cmdline); do
if [ "$ARG" = "text" ]; then
plymouth quit || :
stop
exit 0
fi
done
[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/lightdm" -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/lightdm" ] || { stop; exit 0; }
if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ]
then
# Single-user mode
plymouth quit || :
exit 0
fi
fi
exec lightdm
end script
post-stop script
if [ "$UPSTART_STOP_EVENTS" = runlevel ]; then
initctl emit desktop-shutdown
fi
end script
当你做这个的时候一定要小心!