Я просто следил этот руководство по настройке Ubuntu для аутентификации на сервере Mac OS X 10.4. Я следовал руководству на 100%, и у меня появилась возможность видеть пользователей, запустив
getent passwd and getent passwd (user)
Который предоставит всю нужную информацию о пользователе. Моя проблема в том, что я хочу, чтобы эти пользователи могли входить в систему через приглашение входа в систему, которое не работает. Однако, когда я вхожу в систему как локальный пользователь, я получаю обычное приглашение для имени пользователя и пароля, но затем я получаю запрос пароля LDAP, где я могу ввести что угодно и по-прежнему успешно войти в систему.
Есть идеи, как это решить? Заранее спасибо!
Обновления:
Как упоминалось ниже, я уверен, что LDAP настроен правильно, так как я могу видеть всех пользователей LDAP, использующих getent passwd, но что-то еще идет не так, поскольку я не могу использовать su
, ssh
, или gdm
для входа с этими пользователями.
Правильный ли порядок в вашем common_ (что угодно) в /etc/pam.d/common-(whatever)? Проверьте оба эти файла и /etc/pam.d/login и убедитесь, что над ними ничего не помечено как «требуется» или «требуется».
Кроме того, редактировали ли вы как /etc/ldap.conf, так и /etc/ldap/ldap.conf, чтобы отразить вашу настройку ldap? Если ничего из этого не сработает, вы можете попробовать опубликовать фрагменты журнала неудачных попыток входа в систему и, возможно, попыток привязки на сервере LDAP.
Обратите внимание, что тот факт, что вы можете видеть пользователей в getent passwd не означает, что вы правильно настроили ldap. Это означает, что у вас правильно настроен nss_ldap. Аутентификация выполняется отдельным модулем pam-ldap.
проблема в том, что это руководство неверно или, по крайней мере, неоптимально.
/etc/pam.d/common-auth должен иметь:
auth sufficient pam_unix.so nullok_secure nodelay auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so
который говорит, что либо pam_unix, либо pam_ldap являются достаточно для входа в систему, и любой вход в систему без обоих из них отклоняется. он сначала пытается выполнить локальный вход в систему unix - что чрезвычайно полезно, если ваш сервер LDAP не работает или недоступен, и вам все еще нужно войти в систему как локальный пользователь.
он также использует use_first_pass вместо try_first_pass ... они очень похожи, за исключением того, что он не запрашивает пароль снова, если первый неправильный.
см. справочные страницы для pam_unix и pam_ldap для получения более подробной информации.
Кстати, очень полезно добавить следующее в /etc/pam.d/common-session:
session required pam_limits.so
он позволяет вам использовать /etc/security/limits.conf и access.conf и т. д., чтобы иметь очень точный контроль над тем, каким пользователям разрешено входить в систему (например, я ограничиваю входы ssh на своих серверах членам группы администраторов), а также устанавливаю ограничения ресурсов (память, maxlogins, хороший приоритет и т. д.) для их входа в систему.
Вы используете анонимную привязку со своим сервером LDAP? Получение списка пользователей и их аутентификация на сервере LDAP обрабатываются двумя отдельными пакетами. Не могли бы вы опубликовать свой /etc/ldap.conf и другие связанные с ним ошибки?