このコマンドの機能:sudo dscl passwd / Users / administrator thePassword


12

サーバーとして使用されるMac Miniのグループを管理しようとしています。最近、すべてのパスワードを変更する必要があったので、SSHでこのコマンドを実行しました。これらのマシンで新しいユーザーアカウントを作成するときに使用したコマンドです。

sudo dscl . passwd /Users/administrator thePassword

残念ながら、これは既存のユーザーで使用したときに思っていたことをしませんでした。新しいパスワードはそうthePasswordではないため、にアクセスできなくなりましたsudoman dsclこれは言っています:

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.

そのため、前のコマンドを実行するときにユーザーの古いパスワードを入力する必要があったように見えますが、入力しませんでした。入力したパスワードを知っていて、まだマシンにSSHアクセスできます。コマンドが何をしたのかがわかれば、アカウントに設定したパスワードを知ることができます。

回答:


9

ああ、それがを使用しているときにユーザーのパスワードを変更する正しい方法であることわかりましたsudo。sudoを使用しない場合のみ、ユーザーの古いパスワードを提供する必要があります。

私の問題は、パスワードに「$」文字があり、それをエスケープしなかったことです。その結果、パスワードは$文字の前に切り捨てられました。


これは、thePasswordをthePa $$ wordに変更する適切なコマンドがsudo dsclのように見えることを意味します。passwd / Users / administrator thePa \ $ \ $ word右ですか?
マーク

1
私は、引数(引用でしょうsudo dscl . passwd /Users/administrator "thePa$$word"
MaxGabriel

2
コンソールからこれを行う場合は、パスワードを入力しないでください。dsclプロンプトが表示されるため、コマンド履歴に機密情報を残すリスクはありません。
マルセロカントス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.