Como um nome de usuário é determinado e posso ocultar o componente de domínio em um nome de usuário winbind?

1

Alguém perguntou uma pergunta na falha do servidor sobre um problema que também estou tendo, mas ninguém respondeu dessa forma Eu estou colocando uma questão um pouco diferente para tentar descobrir por mim mesmo.

Configurei o PAM no meu servidor Arch Linux para usar pam_krb5 e funciona.

login as: Username
[email protected]'s password:
Warning: Your password will expire in 32 days on Tue Apr  1 22:24:58 2014
Last login: Fri Feb 28 09:46:58 2014 from pc.ad.example.com
Could not chdir to home directory /home/AD/Username: No such file or directory
[AD\Username@server /]$ echo $KRB5CCNAME
FILE:/tmp/krb5cc_3000019_DF0uwI
[AD\Username@server /]$ klist
Ticket cache: FILE:/tmp/krb5cc_3000019_DF0uwI
Default principal: [email protected]

Valid starting     Expires            Service principal
28/02/14 10:03:43  28/02/14 20:03:43  krbtgt/[email protected]
        renew until 01/03/14 10:03:43

Eu ainda não criei o diretório home, então acho que o erro pode ser ignorado por enquanto.

E os registros mostram o seguinte.

sshd[10567]: pam_krb5(sshd:auth): pam_sm_authenticate: entry (nonull)
sshd[10567]: pam_krb5(sshd:auth): (user Username) attempting authentication as [email protected]
sshd[10567]: pam_krb5(sshd:auth): user Username authenticated as [email protected]
sshd[10567]: pam_krb5(sshd:auth): (user Username) temporarily storing credentials in /tmp/krb5cc_pam_7mIl6Q
sshd[10567]: pam_krb5(sshd:auth): pam_sm_authenticate: exit (success)
sshd[10567]: pam_krb5(sshd:account): pam_sm_acct_mgmt: entry
sshd[10567]: pam_krb5(sshd:account): (user Username) retrieving principal from cache
sshd[10567]: pam_krb5(sshd:account): pam_sm_acct_mgmt: exit (success)
sshd[10567]: Accepted password for Username from 192.168.1.10 port 50653 ssh2
sshd[10567]: pam_krb5(sshd:setcred): pam_sm_setcred: entry (establish)
sshd[10567]: pam_krb5(sshd:setcred): (user Username) initializing ticket cache FILE:/tmp/krb5cc_3000019_CgGnZS
sshd[10567]: pam_krb5(sshd:setcred): pam_sm_setcred: exit (success)
kernel: type=1006 audit(1393584192.561:70): pid=10567 uid=0 old auid=4294967295 new auid=3000019 old ses=4294967295 new ses=69 res=1
sshd[10567]: pam_krb5(sshd:session): pam_sm_open_session: entry
sshd[10567]: pam_krb5(sshd:session): pam_sm_open_session: exit (success)
sshd[10569]: pam_krb5(sshd:setcred): pam_sm_setcred: entry (establish)
sshd[10569]: pam_krb5(sshd:setcred): pam_sm_setcred: exit (success)

Ótimo.

Quando eu tento kinit , ele detecta o principal corretamente.

[AD\Username@server /]$ kinit
Password for [email protected]:
Warning: Your password will expire in 32 days on Tue 01 Apr 2014 22:24:58 BST

No entanto, quando tento usar sudo , ele interpreta o nome de usuário como principal.

[AD\Username@server /]$ sudo -i
[sudo] password for AD\Username:
sudo: 1 incorrect password attempt

E o log mostra o seguinte.

sudo[10564]: pam_krb5(sudo:auth): pam_sm_authenticate: entry (silent)
sudo[10564]: pam_krb5(sudo:auth): (user AD\Username) attempting authentication as [email protected]
sudo[10564]: pam_krb5(sudo:auth): (user AD\Username) krb5_get_init_creds_password: Client '[email protected]' not found in Kerberos database
sudo[10564]: pam_krb5(sudo:auth): authentication failure; logname=AD\Username uid=3000019 euid=0 tty=/dev/pts/0 ruser=AD\Username rhost=
sudo[10564]: pam_krb5(sudo:auth): pam_sm_authenticate: exit (failure)
sudo[10564]: pam_unix(sudo:auth): authentication failure; logname=AD\Username uid=3000019 euid=0 tty=/dev/pts/0 ruser=AD\Username rhost=  user=AD\Username
sudo[10564]: pam_krb5(sudo:auth): pam_sm_authenticate: entry (silent)
sudo[10564]: pam_krb5(sudo:auth): (user AD\Username) error getting password: Authentication failure
sudo[10564]: pam_krb5(sudo:auth): authentication failure; logname=AD\Username uid=3000019 euid=0 tty=/dev/pts/0 ruser=AD\Username rhost=
sudo[10564]: pam_krb5(sudo:auth): pam_sm_authenticate: exit (failure)

Eu tenho o winbind configurado no nsswitch.conf e presumo que seja este que decide que o nome de usuário deve ser "AD \ Username" ao invés de apenas "Username". Então, primeiro estou certo em pensar que cabe à biblioteca winbind qual o nome do usuário parece ser?

E, em segundo lugar, como configurar o winbind para que, se o usuário estiver no domínio Kerberos padrão (conforme definido por /etc/krb5.conf ), o nome de usuário não seja prefixado com o nome de domínio curto desse domínio?

    
por Styne666 28.02.2014 / 13:11

0 respostas