Что делает эта команда: sudo dscl. passwd / Пользователи / Администратор thePassword

12

Я (пытаюсь) администрировать группу Mac Minis, используемых в качестве серверов. Недавно мне нужно было изменить все их пароли, поэтому я ввел SSH и запустил эту команду, которую я использовал при создании новых учетных записей пользователей на этих машинах:

sudo dscl . passwd /Users/administrator thePassword

К сожалению, это не соответствовало тому, что я думал, когда использовал его для существующего пользователя - новый пароль - нет, thePasswordи поэтому я потерял доступ к нему sudo. man dsclимеет это сказать:

ПАРОЛЬ

 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-доступ к машинам. Если я смогу выяснить, что сделала команда, я смогу сказать, какой пароль я установил для учетных записей.

MaxGabriel
источник

Ответы:

9

Ах, оказывается, что это является правильным способом для изменения пароля пользователя при использовании sudo. Если вы не используете sudo, только тогда вам нужно предоставить старый пароль пользователя.

Моя проблема заключалась в том, что в пароле был символ «$», который я не избежал. Следовательно, пароли были обрезаны до символа $.

MaxGabriel
источник
Это означает, что правильная команда для изменения пароля на слово Pa $$ выглядит так: sudo dscl. passwd / Пользователи / Администратор thePa \ $ \ $ word Правильно?
Марк
1
Я бы просто процитировал аргумент ( sudo dscl . passwd /Users/administrator "thePa$$word")
MaxGabriel
2
Если вы делаете это с консоли, не указывайте пароль. dsclпопросит об этом, и, таким образом, вы не рискуете оставить конфиденциальную информацию в своей истории команд.
Марсело Кантос