O que esse comando faz: sudo dscl. senha / Usuários / administrador thePassword

12

Estou (tentando) administrar um grupo de Mac Minis usado como servidores. Recentemente, eu precisei alterar todas as suas senhas, então fiz o SSH e executei este comando, que foi o que eu usei ao criar novas contas de usuário nessas máquinas:

sudo dscl . passwd /Users/administrator thePassword

Infelizmente, isso não fez o que eu pensava quando usado em um usuário existente - a nova senha não é thePassworde, portanto, perdi o acesso sudo. man dscltem o que dizer:

passwd

 Usage: passwd user_path [new_pasword | old_password new_pasword]

 Changes a password for a user. The user must be specified by full path,
 not just a username.  If you are authenticated to the node (either by
 specifying the -u and -P flags or by using the auth command when in
 interactive node) then you can simply specify a new password.  If you are
 not authenticated then the user's old password must be specified.  If
 passwords are not specified while in interactive mode, you will be
 prompted for them.  Passing these passwords on the command line is inher-
 ently insecure and can cause password exposure.  For better security do
 not provide the password as part of the command and you will be securely
 prompted.

Parece que eu deveria ter fornecido a senha antiga do usuário ao executar o comando anterior, mas não o fiz. Sei qual senha inseri e ainda tenho acesso SSH às máquinas. Se eu descobrir o que o comando fez, poderei dizer qual senha eu defini nas contas.

MaxGabriel
fonte

Respostas:

9

Ah, acontece que essa é a maneira correta de alterar a senha de um usuário ao usá-lo sudo. Se você não usar o sudo, somente será necessário fornecer a senha antiga do usuário.

Meu problema era que havia um caractere '$' na senha, do qual não escapei. Consequentemente, as senhas foram cortadas antes do caractere $.

MaxGabriel
fonte
Isso significa que um comando apropriado para alterar a senha para a palavra Pa $$ se parece com: sudo dscl. senha / Usuários / administrador thePa \ $ \ $ word Certo?
Mark
1
Gostaria apenas de citar o argumento ( sudo dscl . passwd /Users/administrator "thePa$$word")
MaxGabriel
2
Se você estiver fazendo isso no console, não forneça uma senha. dsclsolicitará isso e, portanto, você não correrá o risco de deixar informações confidenciais em seu histórico de comandos.
Marcelo Cantos