Los grupos difieren de los locales al iniciar sesión de forma remota


14

Almacenamos a nuestros usuarios en LDAP, junto con algunos grupos que tienen significado en diferentes sistemas (roles organizacionales incluidos wheel). También hay grupos locales para estaciones de trabajo, por ejemplo, audioo videoque no son deseables para poner en LDAP. Ahora, si inicio sesión localmente, obtengo esos grupos locales, pero si inicio sesión a través de SSH en la misma máquina, me faltan. Por supuesto, vuelven, si uso sudirectamente después. Puedo estar en el camino equivocado, pero sospecho de PAM.

Entradas relevantes de nsswitch.conf

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

En cuanto a pam, siempre la línea de autenticación, pero las otras líneas son las mismas.

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login(idéntico al system-local-loginque podría agregar)

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

¿Cuál podría ser el problema y cómo lo resolvería? Me complace proporcionar otra información necesaria.


¿Cómo es tu /etc/nsswitch.confaspecto group? ¿Cuál es la salida de getent YOURUSERNAME? ¿Su /etc/pam.d/sshd@include common- {sesión, autenticación, contraseña, cuenta}?
Eppesuig

¿Qué proceso / pasos configuras al final del cliente?
Rahul Patil

1
@Aurelien, cuando tienes "shadow ldap", entonces pam_unix realiza la autenticación recuperando la información de contraseña de nss.
Stéphane Chazelas

1
Creo que estás fuera de pista sospechando de PAM. Lo más probable es un problema NIS. PAM no tiene idea de grupos en absoluto; todo se hace a través de libc cuando sshd llama a initgroups.
Nicholas Wilson el

1
En realidad, modifico ligeramente eso: aparentemente algunos módulos enganchan la llamada pam_setcred para establecer grupos de usuarios, por lo que sshd llama a initgroups antes que pam_setcred. Hmmm
Nicholas Wilson el

Respuestas:


3

Hoy me animé y finalmente lo resolví. La cadena de pam funciona así

  • /etc/pam.d/sshd incluye:
    • /etc/pam.d/system-remote-login eso incluye:
      • /etc/pam.d/system-login eso incluye:
        • /etc/pam.d/system-auth que tiene un requisito opcional

Aparentemente, la última inclusión no funciona por alguna razón. La razón por la que estaba tan perplejo hasta ahora fue porque confiaba en que estos incluyen funcionarían, lo cual no fue el caso. Si alguien puede explicar por qué estaría muy agradecido. Sé esto porque si agrego la línea

auth    optional  pam_group.so

en el /etc/pam.d/system-loginentonces funciona.


1

El programa de inicio de sesión (que configura su entorno, incluidos UID, GID y grupos suplementarios) obtiene datos sobre el nombre de usuario <--> UID, GID y los grupos complementarios a los que pertenece el nombre de usuario, de algún tipo de base de datos. Tradicionalmente de los archivos / etc / passwd y / etc / groups, hoy también de LDAP. Dependiendo de la fuente de datos, los grupos que le asignan pueden variar.

Tenga cuidado, si se mezclan diferentes fuentes, puede terminar con una cuenta con el mismo nombre pero diferentes UID (el sistema realmente usa UID internamente), o diferentes conjuntos de grupos. El resultado normalmente es muy entretenido para el espectador casual, mientras que conduce a la calvicie prematura debido a los largos tirones de cabello para las partes a cargo. (Estado allí.)


0

En nsswitch.conf:

    grupo: compat ldap

afaik esto llama getgrent, que obtiene los grupos (entradas de grupo)

EDITAR: otra cosa es agregar lo siguiente a /etc/pam.d/common-auth:

se requiere autenticación pam_group.so use_first_pass

para obtener más información, eche un vistazo aquí: asigne grupos locales a los usuarios y tal vez este newgrp-and-groups-named-via-pam-group-so


Esa línea ya está presente así como así.
Max

quizás lo agregue a "Entradas relevantes de nsswitch.conf" en su pregunta.
xx4h

hecho y la edición no ayudó desafortunadamente.
Max

Qué hiciste pam-auth-updatey un reinicio de nscd?
xx4h

0

Tuve un problema casi similar: cuando inicié sesión con ssh, faltaban algunos grupos. Se ha resuelto cambiando /etc/nsswitch.conf:

group:      compat  -> group:      files nis
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.