Estoy (intentando) administrar un grupo de Mac Minis utilizados como servidores. Hace poco necesitaba cambiar todas sus contraseñas, así que ingresé SSH y ejecuté este comando, que era lo que usaba al crear nuevas cuentas de usuario en esas máquinas:
sudo dscl . passwd /Users/administrator thePassword
Desafortunadamente, esto no hizo lo que pensé cuando lo usé en un usuario existente: la nueva contraseña no thePassword
lo es, por lo que he perdido el acceso sudo
. man dscl
tiene esto que decir:
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 debería haber proporcionado la contraseña anterior del usuario al ejecutar ese comando anterior, pero no lo hice. Sé qué contraseña ingresé y todavía tengo acceso SSH a las máquinas. Si puedo averiguar qué hizo el comando, podré decir qué contraseña configuré en las cuentas.
sudo dscl . passwd /Users/administrator "thePa$$word"
)dscl
lo solicitará y, por lo tanto, no se arriesgará a dejar información confidencial en su historial de comandos.