Os grupos diferem dos locais quando fazem login remotamente

14

Armazenamos nossos usuários no LDAP, junto com alguns grupos que possuem significado em diferentes sistemas (funções organizacionais incluindo wheel ). Existem também grupos locais para estações de trabalho, por ex. audio ou video que não são desejáveis para serem colocados no LDAP. Agora, se eu fizer login localmente, eu obtenho esses grupos locais, mas se eu fizer login via SSH na mesma máquina, eu não os tenho. Eles, claro, voltam, se eu usar su depois. Eu posso estar no caminho errado, mas suspeito do PAM.

Entradas relevantes de nsswitch.conf

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

Quanto ao pam, sempre a linha auth, mas as outras linhas são as mesmas

/etc/pam.d/sshd

auth            include         system-remote-login

/etc/pam.d/system-remote-login (idêntico a system-local-login que eu possa adicionar)

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

Qual poderia ser o problema e como eu resolveria isso? Fico feliz em fornecer outras informações necessárias.

    
por Max 04.01.2013 / 13:46

4 respostas

3

Eu tomei o coração hoje e finalmente resolvi isso. A cadeia de pam funciona assim

  • /etc/pam.d/sshd inclui:
    • /etc/pam.d/system-remote-login que inclui:
      • /etc/pam.d/system-login que inclui:
        • /etc/pam.d/system-auth que tem um requisito opcional

Aparentemente, a última inclusão não funciona por algum motivo. A razão pela qual eu estava tão intrigado até agora era que eu confiava que essas inclusões funcionariam, o que não era o caso. Se alguém pode explicar porque eu ficaria muito grato. Eu sei disso porque se eu adicionar a linha

auth    optional  pam_group.so

no /etc/pam.d/system-login , então funciona. Eu realmente espero que isso ajude alguém.

    
por 18.06.2013 / 15:29
1

O programa de login (que configura seu ambiente, incluindo UID, GID e grupos suplementares) obtém dados no nome de usuário < - > UID, GID e os grupos suplementares aos quais o nome de usuário pertence, de algum tipo de banco de dados. Tradicionalmente, a partir dos arquivos / etc / passwd e / etc / groups, hoje também do LDAP. Dependendo da fonte de dados, os grupos atribuídos podem variar.

Tenha cuidado, se diferentes fontes forem misturadas, você pode muito bem acabar com uma conta com o mesmo nome, mas diferentes UIDs (o sistema realmente usa UID internamente), ou diferentes conjuntos de grupos. O resultado é normalmente muito divertido para o espectador casual, enquanto levando a calvície prematura devido ao extenso puxão de cabelo para as partes responsáveis. (Estive lá.)

    
por 18.01.2013 / 00:32
0

Em nsswitch.conf :

    group:          compat ldap

afaik esta chama getgrent, que recebe os grupos (entradas de grupo)

EDIT: Outra coisa é adicionar o seguinte a /etc/pam.d/common-auth :

auth    required     pam_group.so use_first_pass

para mais informações, dê uma olhada aqui: Atribua grupos locais aos usuários e talvez isso newgrp-and-groups-assigned-via-pam-group-so

    
por 13.02.2013 / 07:26
0

Eu tive um problema quase semelhante: quando logado usando ssh, alguns grupos estavam faltando. Foi resolvido alterando /etc/nsswitch.conf:

group:      compat  -> group:      files nis
    
por 27.08.2014 / 16:02