Diretórios base e pam.d usando LDAP

10

Antecedentes:
não estou muito familiarizado com os meandros da autenticação pam e LDAP no lado da configuração. Eu usei sistemas que usam o pam, mas só trabalhei em aplicativos, não nos próprios sistemas.

Perguntas:
Usando o pam para controlar a autenticação via LDAP, isso significa que um diretório inicial não será criado no sistema?

Caso contrário, eu criaria usuários no servidor ou enviaria os usuários ao sistema a partir de uma fonte LDAP?

Nicholas Anderson
fonte
1
Esta questão pode estar relacionada: unix.stackexchange.com/q/106391/34796
drs:

Respostas:

13

Isto é exatamente o que pam_mkhomedirfoi feito.
O pam_mkhomedirmódulo pode criar o diretório inicial do usuário no login, se esse diretório não existir.

Como instalá-lo depende da sua distribuição. Mas você precisaria colocá-lo em um ou mais arquivos /etc/pam.d.
Por exemplo, no meu sistema, tenho o /etc/pam.d/system-loginque está incluído em todos os outros serviços que realizam login (ssh, gdm, etc).
Eu colocaria pam_mkhomedir.sona sessionpilha, como:

session     optional    pam_loginuid.so
session     required    pam_env.so 
session     optional    pam_lastlog.so 
session     include     system-auth
session     optional    pam_mkhomedir.so # <<< right here
session     optional    pam_ck_connector.so nox11
session     optional    pam_gnome_keyring.so auto_start
session     optional    pam_motd.so motd=/etc/motd

Onde você coloca, é totalmente dependente do que mais há na pilha. Mas você deve colocá-lo antes de qualquer outra coisa que possa precisar do diretório inicial.

Veja man 8 pam_mkhomediras opções que ele suporta.

Patrick
fonte
Impressionante. Obrigado pela resposta. Atualmente, nossos usuários não fazem login no sistema, eles fazem login em um aplicativo Web hospedado no sistema. Existe um gatilho que pode criar seu diretório inicial após um login inicial do aplicativo Web?
Nicholas Anderson
1
Se o aplicativo Web usar a pilha pam, funcionaria (embora você precise colocá-lo na authpilha em vez de session). Se o aplicativo não usar a pilha pam, você precisará criar algo no próprio aplicativo.
22314 Patrick
Parece que apenas o módulo de sessão é fornecido, eu tentei e, de fato, pam_mkhomedir não está funcionando com o módulo de autenticação. Eu tenho o mesmo problema que Nicholas Anderson, eu tenho um aplicativo da web. Existe alguma maneira de resolver esse problema no módulo de autenticação?
Fabiano Tarlao
6

No Ubuntu 14.04 system-loginnão está presente, mas outro arquivo nomeado como common-sessionestá presente.

Eu fui lá e coloquei:

root@GW:~# vim /etc/pam.d/common-session

#
session optional        pam_systemd.so skel=/etc/skel/ umask=0077

Isso criará o diretório inicial, se não existir, configure também a permissão para 700

Mansur Ali
fonte
O umask sugerido por help.ubuntu.com/community/LDAPClientAuthentication é umask=0022. Acredito que o seu remove TODOS os recursos, inclusive o readque pode impedir que alguns mecanismos de autenticação / confiança baseados em chave funcionem em um sistema multiusuário ou em outros casos.
dragon788
0

Eu recomendo usar o oddjob-mkhomedir :

Para o Centos 7, isso funciona:

yum install oddjob-mkhomedir

Acrescente isso a /etc/pam.d/system-authe /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

E finalmente:

systemctl enable oddjob; systemctl start oddjob

Foi publicada originalmente aqui: https://www.centos.org/forums/viewtopic.php?t=48631

Nota: Se você acabou de montar sua /homepartição, não se esqueça de fazerrestorecon /home

mejem
fonte