Estou trabalhando em um projeto no momento em que tenho um daemon que precisa executar um processo como outro usuário. Eu gostaria que o daemon não fosse executado como root, se possível. No entanto, estou lutando para descobrir a melhor forma de fazer isso.
FYI, todos os itens a seguir estão sendo feitos em python, mas não preciso usar python.
Eu tenho um protótipo para o PAM e o Autenticação do Kerberos (GSSAPI), onde eu posso autenticar com sucesso o usuário. Agora, se eu executar um daemon de superusuário, posso chamar o SO e gerar o processo usando o seguinte,
ksu kerbuser -c "/bin/bash authed-process.py"
Isto é seguro, tanto quanto eu saiba, uma vez que para falsificar isso, você precisaria de um krbtgt ou da senha do usuário.
Então, a outra coisa que considerei, foi armazenar a senha do usuário no getpass do usuário python e depois passar a senha por aí (essa é uma solução bastante insegura). Eu não vou fazer isso.
A última coisa em que estou pensando ... Se eu usar os tickets do kerberos, estou certo em pensar que posso usar a ferramenta de linha de comando 'ksu' para gerar um processo como esse usuário? Eu estou apenas trabalhando em um POC, mas imaginei que alguém aqui poderia ter uma maneira melhor de fazer isso? Não existe um padrão para executar um daemon sem privilégios que possa executar processos como usuários autenticados?
Este é o meu primeiro post, então se você acha que isso é melhor em outro lugar, me avise.
Felicidades,
Morgan