Do czego służy ta komenda: sudo dscl. passwd / Users / administrator theHasło

12

Próbuję administrować grupą komputerów Mac Minis używanych jako serwery. Niedawno musiałem zmienić wszystkie ich hasła, więc włączyłem SSH i uruchomiłem to polecenie, którego użyłem podczas tworzenia nowych kont użytkowników na tych komputerach:

sudo dscl . passwd /Users/administrator thePassword

Niestety nie działało to tak, jak myślałem, gdy zostało użyte na istniejącym użytkowniku - nowe hasło nie jest, thePasswordwięc straciłem dostęp do sudo. man dsclma to do powiedzenia:

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.

Wygląda więc na to, że powinienem podać stare hasło użytkownika podczas uruchamiania poprzedniego polecenia, ale tego nie zrobiłem. Wiem, jakie hasło podałem i nadal mam dostęp SSH do maszyn. Jeśli uda mi się dowiedzieć, co zrobiło polecenie, będę w stanie powiedzieć, jakie hasło ustawiłem na kontach.

MaxGabriel
źródło

Odpowiedzi:

9

Ach, okazuje się, że jest to właściwy sposób na zmianę hasła użytkownika podczas korzystania sudo. Jeśli nie korzystasz z sudo, musisz podać stare hasło użytkownika.

Mój problem polegał na tym, że hasło zawierało znak „$”, którego nie uniknąłem. W związku z tym hasła zostały odcięte przed znakiem $.

MaxGabriel
źródło
Oznacza to prawidłowe polecenie zmiany Hasła na słowo Pa $$ wygląda następująco: sudo dscl. passwd / Users / administrator thePa \ $ \ $ słowo Prawda?
Mark
1
Chciałbym zacytować argument ( sudo dscl . passwd /Users/administrator "thePa$$word")
MaxGabriel,
2
Jeśli robisz to z konsoli, nie podawaj hasła. dsclpoprosi o to, a zatem nie ryzykujesz pozostawieniem poufnych informacji w historii poleceń.
Marcelo Cantos