Группы отличаются от локальных при удаленном входе

14

Мы храним наших пользователей в LDAP вместе с некоторыми группами, которые имеют значение для разных систем (включая организационные роли wheel). Есть также группы, локальные по отношению к рабочим станциям, например, audioили videoкоторые нежелательно помещать в LDAP. Теперь, если я вхожу локально, я получаю эти локальные группы, но если я вхожу через SSH на ту же машину, мне их не хватает. Они, конечно, вернутся, если я буду использовать suпрямо потом. Я могу быть не на том пути, но подозреваю PAM.

Соответствующие записи от nsswitch.conf

passwd:      compat ldap
shadow:      compat ldap
group:       compat ldap

Что касается pam, всегда строка auth, но остальные строки одинаковые

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login(идентично тому, что system-local-loginя мог бы добавить)

auth            include         system-login

/etc/pam.d/system-login

auth            required        pam_tally2.so onerr=succeed
auth            required        pam_shells.so 
auth            required        pam_nologin.so 
auth            include         system-auth
auth            optional        pam_gnome_keyring.so

account         required        pam_access.so 
account         required        pam_nologin.so 
account         include         system-auth
account         required        pam_tally2.so onerr=succeed 

password        include         system-auth
password        optional        pam_gnome_keyring.so

session         optional        pam_loginuid.so
session         required        pam_env.so 
session         optional        pam_lastlog.so 
session         include         system-auth
session         optional        pam_gnome_keyring.so auto_start
session         optional        pam_motd.so motd=/etc/motd
session         optional        pam_mail.so

/etc/pam.d/su

auth       sufficient   pam_rootok.so
auth       required     pam_wheel.so use_uid
auth       include              system-auth

account    include              system-auth

password   include              system-auth

session    include              system-auth
session    required     pam_env.so
session    optional             pam_xauth.so

/etc/pam.d/common-auth:

auth    required     pam_group.so use_first_pass

В чем может быть проблема и как мне ее решить? Я рад предоставить другую необходимую информацию.

Максимум
источник
Как выглядит твоя /etc/nsswitch.confвнешность group? Какой выход getent YOURUSERNAME? Ваш /etc/pam.d/sshd@include общий- {сеанс, аутентификация, пароль, учетная запись}?
eppesuig
какой процесс / шаги вы настраиваете на стороне клиента?
Рахул Патил
1
@Aurelien, если у вас есть «shadow ldap», тогда pam_unix выполняет аутентификацию, получая информацию о пароле из nss.
Стефан Шазелас
1
Я думаю, вы не в курсе, подозреваете PAM. Скорее проблема NIS. PAM вообще не имеет представления о группах; все это делается через libc, когда sshd вызывает initgroups.
Николас Уилсон
1
На самом деле, я немного изменил это: очевидно, некоторые модули перехватывают вызов pam_setcred для создания групп пользователей, поэтому sshd вызывает initgroups перед pam_setcred. Хммм.
Николас Уилсон

Ответы:

3

Я взяла душу сегодня и наконец решила это. Цепочка пам работает так

  • /etc/pam.d/sshd включает:
    • /etc/pam.d/system-remote-login это включает:
      • /etc/pam.d/system-login это включает:
        • /etc/pam.d/system-auth который имеет необязательное требование

Очевидно, что последнее включение не работает по какой-то причине. Причина, по которой я так озадачился, заключалась в том, что я верил, что эти включения сработают, а это не так. Если кто-то может объяснить, почему я был бы очень благодарен. Я знаю это, потому что если я добавлю строку

auth    optional  pam_group.so

в /etc/pam.d/system-loginто время это работает.

Максимум
источник
1

Программа входа в систему (которая устанавливает вашу среду, включая UID, GID и дополнительные группы) получает данные об имени пользователя <-> UID, GID и дополнительных группах, к которым принадлежит имя пользователя, из некоторой базы данных. Традиционно из файлов / etc / passwd и / etc / groups, сегодня также из LDAP. В зависимости от источника данных назначенные вами группы могут различаться.

Будьте осторожны, если разные источники смешаны, вы можете очень хорошо получить учетную запись с тем же именем, но разными UID (система действительно использует UID внутри), или с разными наборами групп. Результат, как правило, очень интересный для случайного зрителя, в то время как приводит к преждевременному облысению из-за обширных выдергивания волос для ответственных сторон. (Был там.)

vonbrand
источник
0

В nsswitch.conf:

    группа: compat ldap

afaik это вызывает getgrent, который получает группы (групповые записи)

РЕДАКТИРОВАТЬ: еще одна вещь, чтобы добавить следующее к /etc/pam.d/common-auth:

требуется авторизация pam_group.so use_first_pass

для получения дополнительной информации посмотрите здесь: Назначьте локальные группы пользователям и, возможно, это newgrp-and-groups- assign -via-pam-group-so

xx4h
источник
Эта линия уже присутствует просто так.
Макс
возможно добавьте это в "Соответствующие записи из nsswitch.conf" в вашем вопросе.
xx4h
сделано, и редактирование не помогло, к сожалению.
Макс
ты сделал pam-auth-updateи перезагрузил nscd?
xx4h
0

У меня была почти похожая проблема: при входе в систему с помощью ssh некоторые группы отсутствовали. Это было решено путем изменения /etc/nsswitch.conf:

group:      compat  -> group:      files nis
Жан-Франсуа Бокет
источник