Existe alguma maneira de executar um comando personalizado quando passwd
É executado?
Estou criando uma GUI do servidor e quero amarrar os usuários do aplicativo com os usuários do sistema,
E eu não quero usar apenas o PAM Auth.
Então eu quero rodar um script que irá receber o usuário e senha, e enviá-lo para o Mysql Server.
Na verdade, agora que estou escrevendo, parece um problema de segurança.
Independentemente disso, isso é possível?
2
Respostas:
Você pode detectar se alguém roda
passwd
usandoinotifywait
, mas até onde sei, você não pode controlar seu comportamento dessa maneira.No seu próprio servidor, no entanto, você pode substituir o real
passwd
programa com o seu script, que invoca o realpasswd
programa então. Isso pode implicar vários riscos de segurança, então eu não faria isso e nem tentaria listar todos os riscos. Ainda assim, se você sentir vontade de fazer isso,expect
roteiro como este poderia funcionar como um substituto:Depois de renomear
passwd
parapasswd.real
, você colocaria esse script em/usr/bin/passwd
e dar permissão de execução normal (0755). Suid bit não é necessário (e seria outro problema de segurança), já que este script é apenas um frontend para o realpasswd
programa.O script funciona no Debian Jessie (8.4), em outros sistemas você pode ter que ajustar as palavras-chave correspondentes (atual. * Senha, nova. * Senha, etc). Além disso, você comente a última linha send_user e descomente a chamada do sistema, onde você realmente propaga a senha.
Mais uma vez: tente considerar todas as implicações de segurança, antes de fazer isso! Além disso, seus usuários provavelmente devem saber que você pode conseguir que suas senhas não sejam criptografadas. Talvez seja melhor, se você salvou este script como por exemplo.
mypasswd
(e isso iria desovarpasswd
então) e pediu aos usuários para alterarem a senha usandomypasswd
. Isso deixaria claro que eles não estão usando o originalpasswd
.fonte