Saya (berusaha) untuk mengelola grup Mac Minis yang digunakan sebagai server. Saya baru-baru ini perlu mengubah semua kata sandi mereka, jadi saya SSH masuk dan menjalankan perintah ini, yang saya gunakan saat membuat akun pengguna baru di mesin-mesin itu:
sudo dscl . passwd /Users/administrator thePassword
Sayangnya, ini tidak melakukan apa yang saya pikirkan ketika digunakan pada pengguna yang sudah ada — kata sandi baru tidak thePassword
dan karenanya saya kehilangan akses sudo
. man dscl
memiliki ini untuk mengatakan:
sandiwara
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.
Jadi sepertinya saya harus memberikan kata sandi lama pengguna saat menjalankan perintah sebelumnya, tetapi saya tidak melakukannya. Saya tahu kata sandi apa yang saya masukkan dan saya masih memiliki akses SSH ke mesin. Jika saya dapat mengetahui apa yang dilakukan perintah, saya akan dapat memberi tahu kata sandi apa yang saya atur di akun.
sudo dscl . passwd /Users/administrator "thePa$$word"
)dscl
akan meminta untuk itu, dan dengan demikian Anda tidak akan mengambil risiko meninggalkan informasi sensitif dalam riwayat perintah Anda.