Consegui fazê-lo funcionar usando o pam_exec:
-
Crie um script para configurar o ecryptfs para todos os novos usuários em
/etc/security/ecryptfs:#!/bin/bash home='eval echo ~$PAM_USER' ecryptfs=/home/.ecryptfs/$PAM_USER/.ecryptfs read password if [ -d $ecryptfs ]; then # ecryptfs is set echo "Ecryptfs is already configured" exit 0 elif [ 'id -u' == 0 ]; then # Setup ecryptfs and make home umask 077 mkdir -p $home group='id -gn $PAM_USER' chown $PAM_USER:$group $home ecryptfs-setup-private -u $PAM_USER -l "$password" -b --nopwcheck exit 0 else # NOT ROOT echo "Cannot login with 'su' for the first time" exit 1 fiVerifique se o script é executável:
sudo chmod a+rx /etc/security/ecryptfs -
Adicione uma entrada para executá-lo com pam_exec na autenticação:
sudo vim /etc/pam.d/common_authAdicione as seguintes linhas:
auth required pam_exec.so expose_authtok /etc/security/ecryptfs auth optional pam_ecryptfs.so unwrapO
pam_execé definido como obrigatório, porque não será configurado o ecryptfs se o script não for executado como raiz. Esse é o caso sesufor usado de um usuário não raiz. Portanto, se ecryptfs não for configurado esufor usado (ou seja, quando o usuário tentar efetuar login pela primeira vez usandosu), ele será recusado. Como tal, garantimos que o usuário não possa efetuar login sem uma configuração do ecryptfs. -
Crie outro script para preencher o diretório inicial no lugar de pam_mkhomedir
sudo vim /etc/security/mkhomeEste script irá copiar tudo em / etc / skel se o arquivo .donotremove não existir.
#!/bin/bash cd ~ if [ ! -f .donotremove ] ; then echo Copying /etc/skel cp -ra /etc/skel/* ~ touch .donotremove fiVerifique também se este arquivo é executável:
sudo chmod a+rx /etc/security/mkhome -
Adicione outra entrada para executar este script em uma sessão
sudo vim /etc/pam.d/common_sessionAdicione as seguintes linhas:
session optional pam_ecryptfs.so unwrap session optional pam_exec.so seteuid /etc/security/mkhome
Agora, os usuários do LDAP podem efetuar login e ter um diretório inicial criptografado do ecryptfs.
Atualizar
Em vez de editar os arquivos em /etc/pam.d diretamente (o que geralmente não é recomendado), é melhor aplicar as configurações como PAMConfig perfil.
Basta colar esse código em um novo arquivo /usr/share/pam-configs/ecryptfs-nonlocal :
Name: Enable EcryptFS for users from remote directories such as LDAP.
Default: no
Priority: 0
Conflicts: ecryptfs-utils
Auth-Type: Additional
Auth-Final:
required pam_exec.so expose_authtok /etc/security/ecryptfs
optional pam_ecryptfs.so unwrap
Session-Type: Additional
Session-Final:
optional pam_ecryptfs.so unwrap
optional pam_exec.so seteuid /etc/security/mkhome
Password-Type: Additional
Password-Final:
optional pam_ecryptfs.so
E, em seguida, execute pam-auth-update :
Verifique Enable EcryptFS for users from remote directories such as LDAP. e certifique-se de que eCryptfs Key/Mount Management esteja desmarcado . Deixe todas as outras opções de acordo com suas preferências.
Isso garante que as configurações relevantes em /etc/pam.d sejam aplicadas e permaneçam lá.