Я (намагаюся) адмініструвати групу Mac Minis, що використовується як сервери. Нещодавно мені потрібно було змінити всі їх паролі, тому я ввімкнув SSHed і запустив цю команду, якою я користувався при створенні нових облікових записів користувачів на цих машинах:
sudo dscl . passwd /Users/administrator thePassword
На жаль, це не зробило те, що я думав, коли використовувався для вже наявного користувача - нового пароля немає, thePassword
тому я втратив доступ до нього sudo
. man dscl
має це сказати:
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.
Так виглядає, що я повинен був надати старий пароль користувача під час виконання цієї попередньої команди, але я цього не зробив. Я знаю, який пароль я ввів, і я все ще маю SSH доступ до машин. Якщо я зможу зрозуміти, що зробила команда, я зможу сказати, який пароль я встановив у акаунтах.