Grupos diferem dos locais ao fazer login remotamente


14

Armazenamos nossos usuários no LDAP, ao lado de alguns grupos que têm significado em diferentes sistemas (inclusive funções organizacionais wheel). Também existem grupos locais nas estações de trabalho, por exemplo, audioou videoque não são desejáveis ​​para serem inseridos no LDAP. Agora, se eu fizer login localmente, recebo esses grupos locais, mas se eu fizer login via SSH na mesma máquina, não os tenho. É claro que eles voltam, se eu usar sulogo depois. Posso estar no caminho errado, mas suspeito de PAM.

Entradas relevantes de nsswitch.conf

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

Quanto ao pam, sempre a linha de autenticação, 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 ao que system-local-logindevo acrescentar)

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 o solucionaria? Fico feliz em fornecer outras informações necessárias.


Como é sua /etc/nsswitch.confaparência group? Qual é a saída de getent YOURUSERNAME? O seu /etc/pam.d/sshd@ inclui common- {session, auth, password, account}?
precisa saber é

qual processo / etapas você configura no final do cliente?
Rahul Patil

1
@ Aurelien, quando você tem "shadow ldap", o pam_unix faz a autenticação, recuperando as informações da senha do nss.
Stéphane Chazelas

1
Acho que você está fora do caminho, suspeitando de PAM. Provavelmente um problema NIS. O PAM não tem idéia de grupos; tudo é feito através da libc quando o sshd chama initgroups.
Nicholas Wilson

1
Na verdade, eu modifico levemente isso: aparentemente alguns módulos conectam a chamada pam_setcred para estabelecer grupos de usuários, e é por isso que o sshd chama initgroups antes de pam_setcred. Hummm.
Nicholas Wilson

Respostas:


3

Tomei coragem hoje e finalmente resolvi. A cadeia pam funciona assim

  • /etc/pam.d/sshd inclui:
    • /etc/pam.d/system-remote-login isso inclui:
      • /etc/pam.d/system-login isso 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 confusa até agora foi que eu confiei que essas inclusões funcionariam, o que não era o caso. Se alguém puder explicar por que eu ficaria muito grato. Eu sei disso porque se eu adicionar a linha

auth    optional  pam_group.so

para o /etc/pam.d/system-loginentão funciona.


1

O programa de login (que configura seu ambiente, incluindo UID, GID e grupos suplementares) obtém dados de 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 dos arquivos / etc / passwd e / etc / groups, hoje também do LDAP. Dependendo da fonte de dados, os grupos que você recebe podem variar.

Cuidado, se diferentes fontes forem misturadas, você poderá muito bem acabar com uma conta com o mesmo nome, mas com UIDs diferentes (o sistema realmente usa UID internamente) ou com diferentes conjuntos de grupos. O resultado é normalmente muito divertido para o espectador casual, enquanto leva à calvície prematura devido à extensa cabeleireira para os responsáveis. (Esteve lá.)


0

Into nsswitch.conf:

    grupo: compat ldap

afaik isso chama getgrent, que obtém os grupos (entradas de grupo)

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

autenticação necessária pam_group.so use_first_pass

para obter mais informações, dê uma olhada aqui: Atribua grupos locais aos usuários e talvez esse novo grupo -e-grupos-atribuído-por-pam-grupo-so


Essa linha já está presente assim.
Max

talvez adicione-o a "Entradas relevantes do nsswitch.conf" na sua pergunta.
Xx4h

feito e a edição não ajudou, infelizmente.
Max

você fez pam-auth-updatee reiniciou o nscd?
Xx4h

0

Eu tive um problema quase semelhante: ao fazer o login usando ssh, alguns grupos estavam ausentes. Foi resolvido alterando /etc/nsswitch.conf:

group:      compat  -> group:      files nis
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.