Назад | Перейти на главную страницу

Вход в систему как root без тайм-аутов winbind

Как я могу настроить свой Linux так, чтобы, если контроллер домена Active Directory не работает, я все еще мог войти в систему как root без каких-либо тайм-аутов или задержек?

Следуя примеру большей части документации, я перечислил pam_winbind.so перед pam_unix.so в моем /etc/pam.d конфигурации. Я считаю, что в этом причина проблемы. Я помню, как видел альтернативу /etc/pam.d настройки, которые изменяют порядок и, возможно, добавляют либо pam_localuser или pam_succeed_if (чтобы узнать, меньше ли uid 500), но сейчас я не могу найти никаких подробностей (и я недостаточно разбираюсь в PAM, чтобы быстро и легко создать надежную конфигурацию самостоятельно).

Какова рекомендуемая настройка для PAM с Winbind, чтобы избежать тайм-аутов и задержек, если Active Directory недоступен?

Мало того, что ты вообще хочешь pam_unix сначала, но когда вы запускаете любой сеанс, pam перечислит группы, к которым вы принадлежите, используя initgroups(3), который пройдет через все group бэкэнд, определенный в /etc/nsswitch.conf.

Есть несколько причин такого поведения, в основном технические ограничения, связанные с разделением проблем, но вкратце это позволяет вам указать в /etc/groups что пользователь LDAP принадлежит wheel позволить этому sudo (случайный пример).

Это приводит к рассказам о root вход в систему не работает или работает очень медленно на хостах с удаленными серверами каталогов, даже если пользователь определен локально. Эти истории правдивы, но чаще всего из-за неправильной конфигурации.

Если вы используете winbind, вы можете определить пользователей, группы которых не будут просматриваться winbind. Подходящий вариант - winbind initgroups blacklist (глобальный) в smb.conf. Он был представлен в 2007 году через http://git.samba.org/?p=samba.git;a=commitdiff;h=7399ab779d7100059475ed196e6e4435b2b33bbd

Обратите внимание, что значение по умолчанию содержит root, поэтому вам, вероятно, не нужно его перезаписывать.

Для посетителей:

Если вы используете nss_ldap, ldap.conf предлагает аналогичный nss_initgroups_ignoreusers. Видеть nss_ldap(5).