Grupy różnią się od lokalnych podczas zdalnego logowania

14

Przechowujemy naszych użytkowników w LDAP, wraz z niektórymi grupami, które mają znaczenie w różnych systemach (w tym role organizacyjne wheel). Istnieją również grupy lokalne na stanowiskach pracy, np audioalbo videoże nie są wskazane do wprowadzenia do LDAP. Teraz, jeśli loguję się lokalnie, otrzymuję te grupy lokalne, ale jeśli loguję się przez SSH na tym samym komputerze, brakuje mi ich. Oczywiście wrócą, jeśli suużyję od razu. Mogę być na niewłaściwym torze, ale podejrzewam PAM.

Odpowiednie wpisy z nsswitch.conf

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

Jeśli chodzi o pam, zawsze linia auth, ale pozostałe linie są takie same

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login(identyczny jak system-local-loginmogę dodać)

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

Jaki może być problem i jak go rozwiązać? Z przyjemnością udzielę innych potrzebnych informacji.

Max
źródło
Jak /etc/nsswitch.confwygląda twój wygląd group? Jaka jest wydajność getent YOURUSERNAME? Czy Twoja /etc/pam.d/sshd@include common- {sesja, autoryzacja, hasło, konto}?
eppesuig
jaki proces / kroki konfigurujesz po stronie klienta?
Rahul Patil
1
@Aurelien, gdy masz „shadow ldap”, to pam_unix wykonuje uwierzytelnianie pobierając informacje o haśle z nss.
Stéphane Chazelas,
1
Myślę, że podejrzewasz PAM. Bardziej prawdopodobne jest, że problem NIS. PAM w ogóle nie ma pojęcia o grupach; wszystko odbywa się poprzez libc, gdy sshd wywołuje initgroups.
Nicholas Wilson,
1
Właściwie nieznacznie to modyfikuję: najwyraźniej niektóre moduły przechwytują wywołanie pam_setcred w celu ustanowienia grup użytkowników, dlatego sshd wywołuje initgroups przed pam_setcred. Hmmm.
Nicholas Wilson

Odpowiedzi:

3

Dzisiaj nabrałem serca i wreszcie to rozwiązałem. Łańcuch pam działa w ten sposób

  • /etc/pam.d/sshd obejmuje:
    • /etc/pam.d/system-remote-login to obejmuje:
      • /etc/pam.d/system-login to obejmuje:
        • /etc/pam.d/system-auth który ma opcjonalny wymóg

Najwyraźniej ostatnie włączenie nie działa z jakiegoś powodu. Powodem, dla którego do tej pory byłem tak zdziwiony, było to, że wierzyłem, że to wszystko zadziała, co nie było prawdą. Jeśli ktoś może wyjaśnić, dlaczego byłbym bardzo wdzięczny. Wiem to, ponieważ jeśli dodam linię

auth    optional  pam_group.so

Into the /etc/pam.d/system-loginto działa.

Max
źródło
1

Program logowania (który konfiguruje twoje środowisko, w tym UID, GID i grupy uzupełniające) pobiera dane o nazwie użytkownika <--> UID, GID i dodatkowych grupach, do których należy nazwa użytkownika, z pewnego rodzaju bazy danych. Tradycyjnie z plików / etc / passwd i / etc / groups, dziś również z LDAP. W zależności od źródła danych przypisane grupy mogą się różnić.

Bądź ostrożny, jeśli różne źródła są mieszane, możesz bardzo dobrze mieć konto o tej samej nazwie, ale różnych UID (system naprawdę używa UID wewnętrznie) lub różnych zestawów grup. Rezultat jest zwykle bardzo zabawny dla przypadkowego obserwatora, a jednocześnie prowadzi do przedwczesnego łysienia z powodu nadmiernego wyrywania włosów dla rządzących stron. (Byłem tam.)

vonbrand
źródło
0

W nsswitch.conf :

    grupa: zgodność ldap

afaik to wywołuje getgrent, który pobiera grupy (wpisy grupowe)

EDYCJA: kolejną rzeczą jest dodanie do /etc/pam.d/common-auth :

wymagane uwierzytelnianie pam_group.so use_first_pass

Aby uzyskać więcej informacji, spójrz tutaj: Przypisz grupy lokalne do użytkowników, a może ten newgrp-and-groups-przypisany-via-pam-group-so

xx4h
źródło
Ta linia jest już taka właśnie obecna.
Maks.
może dodać go do „Odpowiednie wpisy z nsswitch.conf” w swoim pytaniu.
xx4h
gotowe i edycja nie pomogła niestety.
Maks.
zrobiłeś pam-auth-updatei ponownie uruchomiłeś nscd?
xx4h
0

Miałem prawie podobny problem: po zalogowaniu przy użyciu ssh brakowało niektórych grup. Zostało to rozwiązane poprzez zmianę /etc/nsswitch.conf:

group:      compat  -> group:      files nis
Bocquet Jean-Francois
źródło