Você está certo de que o conceito principal de sua solução está errado, mas acho que está errado muito antes do que você suspeita. A prática recomendada é não compartilhar contas; cada usuário deve ter uma conta individual e usar sudo
para executar tarefas que exigem privilégios alternativos. Se você honestamente precisar compartilhar uma ou mais contas, permita que seus usuários compartilhem sudo su - ACCOUNT
em vez de fazer login diretamente como ACCOUNT. Por exemplo:
user { 'alice': groups => ['developer', 'deployer', 'root'] # other params... }
ssh_authorized_key { 'alice': #params }
Em seguida, adicione entradas apropriadas no seu /etc/sudoers
(também gerido por fantoche!):
# deployer group can run the deployment script without a password.
%deployer ALL = NOPASSWD: /usr/local/bin/deploy
# developer group can run commands as 'developer'
%developer ALL = (developer) ALL
# or, if you actually *must* allow them to log in as 'developer'
%developer ALL = /usr/bin/su developer