Evitando 'passwd' para pedir a senha local

5

Eu configurei o servidor para usar somente o LDAP para autenticação usando authconfig-tui . Tudo funciona bem, mas, quando eu corro passwd , recebo dois prompts para uma senha:

[beamin@rhel6-test-server1 ~]$ passwd
Changing password for user beamin.
Changing password for beamin.
(current) UNIX password:
Enter login(LDAP) password:

Por que isso está pedindo os dois? Posso impedir que isso aconteça?

Editar # 1:

Aqui está o conteúdo de /etc/pam.d/passwd :

$ cat /etc/pam.d/passwd
#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   substack     system-auth
-password   optional    pam_gnome_keyring.so

Aqui está o conteúdo do include ( /etc/pam.d/system.auth ):

$ cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so

Editar # 2:

Conteúdo de nsswitch.conf solicitado por @Nikhil:

$ egrep 'passwd|shadow' /etc/nsswitch.conf
#passwd:    db files nisplus nis
#shadow:    db files nisplus nis
passwd:     files
shadow:     files
    
por Belmin Fernandez 08.12.2011 / 19:36

1 resposta

3

É o /etc/nsswitch.conf que informa ao sistema onde procurar pelo repositório de usuários, grupos em mapas de passwd, group & sombra. Se seriam arquivos locais, nis / yp ou ldap, é o nsswitch.conf. A configuração para suportar essa alteração viria mais tarde na configuração pam ou nas bibliotecas nss. O pam no Linux simplifica, já que também suporta tcp_wrappers juntamente com a personalização da autenticação unix de várias maneiras.

Depois de executar e alterar /usr/bin/authconfig para usar o ldap,

O Authconfig irá alterar seus arquivos PAM para você (entre outras coisas), especificamente o arquivo /etc/pam.d/system-auth. Um típico arquivo system-auth em um sistema da Red Hat configurado para autenticar usando o LDAP se parece com isto:

O módulo 'pam_unix' é chamado a seguir e fará o trabalho de solicitar ao usuário uma senha. Os argumentos "nullok" e "likeauth" significam que as senhas vazias não são tratadas como contas bloqueadas, e que o módulo retornará o mesmo valor (o valor que é "como" o valor "auth"), mesmo que seja chamado como um módulo de configuração de credenciais. Note que este módulo é "suficiente" e não "obrigatório". O módulo 'pam_ldap' é invocado e é avisado para "use_first_pass", em outras palavras, use a senha que foi coletada pelo módulo pam_unix em vez de solicitar ao usuário outra senha. Note que o fato de este módulo estar marcado como "suficiente" e estar posicionado depois de pam_unix significa que se o pam_unix tiver sucesso em verificar uma senha localmente, o pam_ldap não será invocado.

#%PAM-1.0
 # This file is auto-generated.
 # User changes will be destroyed the next time authconfig is run.
 auth        required      pam_env.so
 auth        sufficient    pam_unix.so nullok try_first_pass
 auth        requisite     pam_succeed_if.so uid >= 500 quiet
 auth        sufficient    pam_ldap.so use_first_pass
 auth        required      pam_deny.so

 account     required      pam_unix.so broken_shadow
 account     sufficient    pam_succeed_if.so uid < 500 quiet
 account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
 account     required      pam_permit.so

 password    requisite     pam_cracklib.so try_first_pass retry=3
 password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
 password    sufficient    pam_ldap.so use_authtok
 password    required      pam_deny.so

 session     optional      pam_keyinit.so revoke
 session     required      pam_limits.so
 session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
 session     required      pam_unix.so
 session     optional      pam_ldap.so

/etc/ldap.conf deve ter

pam_lookup_policy yes
pam_password exop

/ etc / ssh / sshd_config deve e deve ser reiniciado após a mudança de configuração.

UsePAM yes
    
por 09.12.2011 / 05:33