Depois de mais investigações posso responder a pergunta por mim mesmo: é não é possível usar sudo
ou credenciais de samba para descriptografar automaticamente uma pasta privada de eCryptfs no login porque a senha é desconhecida em ambos os casos .
1) sudo
Vamos supor que o usuário alice chama sudo -u bob
. Alice não precisa da senha de Bob para isso; ela usa sua própria senha. Assim, a senha de Bob não é conhecida e não pode ser adicionada ao chaveiro do usuário ou usada pelo eCryptfs. Essa é uma diferença para su
, que requer a senha de bob. Portanto, é possível montar automaticamente uma pasta eCryptfs com su
, mas não com sudo
.
2.) Samba
Minha observação foi que as credenciais de login estão faltando no chaveiro de sessão do usuário. Eu pensei que talvez o samba não os adicione por padrão, então eu procurei uma maneira de fazer isso manualmente.
Depois de um pouco de pesquisa, descobri que o módulo PAM pam_cifscreds
, que pode ser usado para fornecer credenciais de usuário ao kernel, soa bem. Eu adicionei pam_cifscreds.so
aos dois recursos do PAM auth
(para armazenar a senha no chaveiro) e session
, mas não tive sorte. Com o conjunto de argumentos debug
, a chamada session
escreveu a mensagem no stored password found
no log; a chamada auth
não estava visível.
Mais pesquisas me levam a outro módulo PAM pam_script
e seu arquivo de exemplo logscript
, que pode ser usado para rastrear chamadas PAM. Ele revelou que o recurso session
é chamado em cada cliente samba, mas o recurso auth
não é. Então, encontrei este parágrafo na smb.conf
Configuração do PAM :
Atualmente, um cliente samba não envia a senha em texto simples, mas um valor de hash para o servidor. Assim, o servidor não tem acesso à senha e não pode adicioná-lo ao chaveiro.
Provavelmente é possível alterar a configuração do samba para permitir senhas em texto puro, mas eu não quero isso e, portanto, não tentei.
Conclusão
Minha idéia de descriptografia transparente do lado do servidor baseada em credenciais de login do samba não é possível, porque a senha está faltando no servidor.
Pode haver outra opção como solução alternativa: se os eCryptfs não usassem um único arquivo wrapped-passphrase
, mas um por tipo de login (por exemplo, senha UNIX, Samba, certificado SSH, ...), a senha de montagem poderia ser desembrulhada dependendo no login. Mas, como implementar essa ideia parece bastante complicado e demorado para mim, não irei acompanhá-la ainda mais.