Как настроить Ubuntu в качестве клиента LDAP?
Как настроить Ubuntu 12.04 в качестве клиента ldap с модулями pam?
5 ответов
Содержание этого поста основано на этом руководстве. Он должен нормально работать в 12.04.
1) Введите следующую команду:
sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
ПРИМЕЧАНИЕ. Во время установки вышеуказанных пакетов появится диалоговое окно с вопросом о конфигурации LDAP. Обязательно введите правильные значения для вашей конфигурации LDAP.
2) Редактировать /etc/nsswitch.conf
(через судо). Добавьте "ldap" к этим строкам:
#Original file looks like this
passwd: compat
group : compat
shadow: compat
#After appending "ldap" lines look like these
passwd: compat ldap
group : compat ldap
shadow: compat ldap
3) Закомментируйте строку rootbinddn
Я не уверен, почему мы должны это делать.
4) Редактировать /etc/pam.d/login
(через sudo) и вставьте:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
5) Редактировать /etc/pam.d/lightdm
(через sudo) и вставьте:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
6) Выполните эту команду:
sudo update-rc.d nslcd enable
Вы должны иметь возможность войти в систему как пользователь LDAP после перезагрузки. Если вы не перезагружаете компьютер, вы должны перезапустить nscd с помощью:
/etc/init.d/nscd restart
Вероятные проблемы и решения:
- Вход в систему как пользователь LDAP занимает очень много времени (минут): очень вероятно, что у nss-lap возникли проблемы с поиском группы пользователей. Убедитесь, что пользователь входит в группу, которая распознается локально, или что он входит в группу, определенную в LDAP. Убедитесь, что, если группа определена в LDAP, это настоящая группа POSIX.
- Всегда проверяйте
/var/log/auth.log
журнальный файл. Если вы видите "невозможно связаться с сервером LDAP", проверьте, доступен ли сервер LDAP и открыт ли порт. - Попробуйте пропинговать сервер LDAP по имени
- Попробуйте проверить, открыт ли порт LDAP:
- LDAP может прослушивать разные порты, но обычно его можно найти на 389 и 636
- Вы можете проверить, открыт ли порт, используя telnet:
telnet 389
или жеtelnet 636
- Если вы видите какие-либо символы на консоли, то порт открыт и сервер LDAP должен быть запущен.
- Если вы ничего не видите или получаете сообщение об ошибке, либо сервер LDAP не работает, либо что-то (например, брандмауэр) препятствует соединению.
Чтобы автоматически создать домашний каталог при входе в систему, мне пришлось поставить строку:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
в /etc/pam.d/common-session
вместо /etc/pam.d/login
- когда у меня это было позже, мой домашний каталог не был создан.
sudo apt-get install ldap-utils libpam-ldap libnss-ldapd nslcd
Вместо этого используйте libnss-ldapd.
За ошибку: https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475
Чтобы иметь возможность вводить имена пользователей, вы должны изменить lightdm configuration
с помощью следующей команды:
/usr/lib/lightdm/lightdm-set-defaults -m true
Что касается ввода имен пользователей в ligthdm greeter, то с 16.04 команда lightdm-set-defaults пропала.
Вместо этого вы можете добавить опцию для ввода имен пользователей в конфигурационный файл lightdm. Например, создайте файл /etc/lightdm/lightdm.conf и добавьте следующие строки:
[SeatDefaults]
greeter-show-manual-login=true