Eu tenho um nome de usuário e uma chave SSH para um cara (hipotético) e preciso dar a ele acesso de administrador a um servidor Linux (Ubuntu).
Quero que ele consiga fazer login via SSH e, em seguida, defina sua senha por uma conexão segura, em vez de passar a senha.
Eu sei como fazer a senha expirar e forçá-lo a redefini-la no primeiro login. Mas isso não funciona, a menos que ele já tenha uma senha, que eu tenho que lhe dizer.
Pensei em deixar a senha em branco - o SSH não permitiria o login, mas qualquer um pode su
entrar no usuário.
Minha pergunta é: existem práticas recomendadas para criar contas dessa maneira? Ou definir uma senha padrão é inevitável?
sudo
, não é?USERNAME = NOPASSWD: /usr/local/bin/pwreset.sh
in/etc/sudoers
e o scriptpwreset.sh
executando o comando,/usr/bin/passwd USERNAME
ele não precisará de uma senha para (re) definir sua própria senha.Basta colocar um arquivo de texto com a senha dentro da casa dos usuários com direitos 600. O usuário efetua login com a chave altera a senha e exclui o arquivo. Com um skript com suid bit definido, você pode até criar algo como passwd <arquivo de texto sem dar ao usuário o direito de ler o arquivo (os direitos seriam 060 com group = root)
fonte
Definir uma senha padrão é inevitável. Meu procedimento seria:
1) gere uma senha segura e aleatória (diferente para cada usuário). Eu uso o gerador de senhas nas configurações da conta do OSX, mas você pode usar um site como http://strongpasswordgenerator.com
2) Forneça a senha a eles com segurança, por exemplo, pessoalmente ou via http://www.privnote.com
3) force uma redefinição no primeiro login, como você já sabe fazer
fonte