Apa yang dilakukan perintah ini: sudo dscl. passwd / Pengguna / administrator kata sandi

12

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 thePassworddan karenanya saya kehilangan akses sudo. man dsclmemiliki 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.

MaxGabriel
sumber

Jawaban:

9

Ah, ternyata itu adalah cara yang benar untuk mengubah kata sandi pengguna saat menggunakan sudo. Jika Anda tidak menggunakan sudo, Anda hanya perlu memberikan kata sandi lama pengguna.

Masalah saya adalah ada karakter '$' dalam kata sandi, yang tidak saya hindari. Akibatnya, kata sandi dipotong sebelum $ karakter.

MaxGabriel
sumber
Ini berarti perintah yang tepat untuk mengubah kata sandi menjadi thePa $$ seperti: sudo dscl. passwd / Users / administrator thePa \ $ \ $ word Benar?
Markus
1
Saya hanya akan mengutip argumen ( sudo dscl . passwd /Users/administrator "thePa$$word")
MaxGabriel
2
Jika Anda melakukan ini dari konsol, jangan berikan kata sandi. dsclakan meminta untuk itu, dan dengan demikian Anda tidak akan mengambil risiko meninggalkan informasi sensitif dalam riwayat perintah Anda.
Marcelo Cantos