su
requer o compartilhamento de uma senha. Eu prefiro o sudo. Portanto, os desenvolvedores executariam sudo -u app command
para executar command
como app
ou executar sudo -u app -i
para iniciar um shell interativo como app
. Possivelmente sudo -u app -i /bin/bash
se você tiver definido o shell de app
para algo como / bin / false ou / bin / true.
Se eles não precisarem de um shell completo como o aplicativo, mas precisarem apenas reiniciar o aplicativo, você poderá limitar os comandos que eles podem executar como aplicativo. Use uma ACL padrão nos diretórios que eles precisam acessar, o que concede acesso aos desenvolvedores e ao aplicativo para que você não tenha problemas de permissão do sistema de arquivos. O princípio do menor privilégio é o que você precisa seguir, IMHO. Se eles não precisarem fazer isso, não dê acesso a eles.
Normalmente, prefiro usar chaves apenas para ssh. Se você puder fazer isso, desative senhas para os devs e defina as regras de sudo para não exigir uma senha. Então não há senhas necessárias para ninguém e, portanto, nenhuma senha para divulgar / perder / redefinir.
Tarefa de leitura para esta noite, porque é um pouco demais para este post: "como funcionam as ACLs do sistema de arquivos" e "como configuro o sudo". Talvez seguido pelo gerenciamento de chaves ssh.