É exatamente para isso que pam_mkhomedir
foi feito.
O módulo pam_mkhomedir
pode criar o diretório pessoal 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 em /etc/pam.d
.
Por exemplo, no meu sistema eu tenho /etc/pam.d/system-login
, que é incluído por todos os outros serviços que realizam login (ssh, gdm, etc).
Eu colocaria pam_mkhomedir.so
na pilha session
, 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 está na pilha. Mas você deve colocá-lo antes de qualquer coisa que possa precisar do diretório pessoal.
Veja man 8 pam_mkhomedir
para as opções que ele suporta.