I gruppi differiscono da quelli locali quando effettuano l'accesso in remoto


14

Memorizziamo i nostri utenti in LDAP, insieme ad alcuni gruppi che hanno significato attraverso sistemi diversi (ruoli organizzativi inclusi wheel). Esistono anche gruppi locali per le workstation, ad esempio audioo videoche non sono desiderabili per essere inseriti in LDAP. Ora se accedo localmente ottengo quei gruppi locali, ma se accedo tramite SSH nella stessa macchina mi mancano. Ovviamente tornano, se lo uso susubito dopo. Potrei essere sulla strada sbagliata, ma sospetto PAM.

Voci pertinenti da nsswitch.conf

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

Per quanto riguarda pam, sempre la riga di autenticazione, ma le altre righe sono uguali

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login(identico a quello system-local-loginche potrei aggiungere)

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

Quale potrebbe essere il problema e come lo risolverei? Sono felice di fornire altre informazioni necessarie.


Che /etc/nsswitch.confaspetto ha il tuo group? Qual è l'output di getent YOURUSERNAME? Il vostro /etc/pam.d/sshd@include common {sessione, autenticazione, la password, account}?
eppesuig,

quale processo / passaggi hai impostato alla fine del client?
Rahul Patil,

1
@Aurelien, quando hai "shadow ldap", allora pam_unix esegue l'autenticazione recuperando le informazioni sulla password da nss.
Stéphane Chazelas,

1
Penso che tu sia fuori strada sospettando PAM. Più probabilmente un problema NIS. PAM non ha idea dei gruppi; è tutto fatto attraverso libc quando sshd chiama initgroups.
Nicholas Wilson,

1
In realtà, lo modifico leggermente: apparentemente alcuni moduli agganciano la chiamata pam_setcred per stabilire gruppi di utenti, motivo per cui sshd chiama initgroups prima di pam_setcred. Hmmm.
Nicholas Wilson,

Risposte:


3

Oggi ho preso il cuore e finalmente l'ho risolto. La catena pam funziona così

  • /etc/pam.d/sshd comprende:
    • /etc/pam.d/system-remote-login quello include:
      • /etc/pam.d/system-login quello include:
        • /etc/pam.d/system-auth che ha un requisito opzionale

Apparentemente l'ultimo include non funziona per qualche motivo. Il motivo per cui ero così perplesso finora era che mi fidavo che queste inclusioni avrebbero funzionato, il che non era il caso. Se qualcuno può spiegare perché sarei molto grato. Lo so perché se aggiungo la linea

auth    optional  pam_group.so

nel /etc/pam.d/system-loginpoi funziona.


1

Il programma di accesso (che configura il tuo ambiente, inclusi UID, GID e gruppi supplementari) ottiene i dati sul nome utente <--> UID, GID e sui gruppi supplementari a cui appartiene il nome utente, da una sorta di database. Tradizionalmente dai file / etc / passwd e / etc / groups, oggi anche da LDAP. A seconda dell'origine dati, i gruppi assegnati possono variare.

Fai attenzione, se diverse fonti sono miste puoi benissimo finire con un account con lo stesso nome ma UID diversi (il sistema utilizza davvero UID internamente) o diversi gruppi di gruppi. Il risultato è di solito molto divertente per lo spettatore occasionale, mentre porta a una calvizie prematura a causa dell'ampia stiramento dei capelli per le parti in carica. (Stato lì.)


0

In nsswitch.conf :

    gruppo: compat ldap

dopo questo chiama getgrent, che ottiene i gruppi (voci di gruppo)

EDIT: un'altra cosa è aggiungere quanto segue a /etc/pam.d/common-auth :

autenticazione richiesta pam_group.so use_first_pass

per maggiori informazioni dai un'occhiata qui: Assegna gruppi locali agli utenti e forse questo newgrp-and-groups-assegnato-via-pam-group-so


Quella linea è già presente proprio così.
Max

forse aggiungerlo a "Voci rilevanti da nsswitch.conf" nella tua domanda.
xx4h,

fatto e la modifica non ha aiutato purtroppo.
Max

hai fatto pam-auth-updatee un riavvio nscd?
xx4h,

0

Ho avuto un problema quasi simile: quando ho effettuato l'accesso usando ssh, mancavano alcuni gruppi. È stato risolto cambiando /etc/nsswitch.conf:

group:      compat  -> group:      files nis
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.