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, thePassword
więc straciłem dostęp do sudo
. man dscl
ma 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.
sudo dscl . passwd /Users/administrator "thePa$$word"
)dscl
poprosi o to, a zatem nie ryzykujesz pozostawieniem poufnych informacji w historii poleceń.