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
Username@server.ad.example.com'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: Username@AD.EXAMPLE.COM

Valid starting     Expires            Service principal
28/02/14 10:03:43  28/02/14 20:03:43  krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM
        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 Username@AD.EXAMPLE.COM
sshd[10567]: pam_krb5(sshd:auth): user Username authenticated as Username@AD.EXAMPLE.COM
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 Username@AD.EXAMPLE.COM:
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 ADUsername@AD.EXAMPLE.COM
sudo[10564]: pam_krb5(sudo:auth): (user AD\Username) krb5_get_init_creds_password: Client 'ADUsername@AD.EXAMPLE.COM' 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 / 12:11

0 respostas