ユーザのパスワードの変更方法について
ユーザのパスワードの変更は画面以外にもOS上からコマンドで変更することは可能でしょうか。
-
正式なコメント
REST API の PATCH リクエストを curl コマンドで投げることで、パスワード変更することが可能です。
例:
$ curl -k -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' \
-H 'Authorization: Token <REST APIトークン値>' \
-d '{"password": "<パスワード文字列>"}' \
https://<Kompiraサーバアドレス>/config/user/id_<ユーザID>コメントアクション -
Window10標準のcurlコマンドでもいけますでしょうか。
↑の例に同じくDOSでコマンド実行したのですが、エラーの問題点を教えてください。
curl -k -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' ^
-H 'Authorization: Token Sn3XLxxx' ^
-d '{"password": "Cloudtrek_yyy"}' ^
https://k-user0043.cloud.kompira.jp/config/user/id_zzzcurl: (6) Could not resolve host: application
curl: (6) Could not resolve host: application
curl: (6) Could not resolve host: Token
curl: (6) Could not resolve host: Sn3XLrqWQNEciXIdcyt1lot8MjFCr
curl: (3) unmatched close brace/bracket in URL position 15:
Cloudtrek_xxxx}'
^※APIトークン値は実際に振り出された文字列のものです(ダミーでxxxとしています)
※変更パスワードもダミーでyyyとしています
※id_<ユーザID>は特権ユーザの”表示名”の文字列です(ダミーでzzzとしています)
-
Windows ではシングルクォーテーションは使えないため、ダブルクォーテーションを使うようにしてみてください。
curl -k -X PATCH -H "Accept: application/json" -H "Content-Type: application/json"
-H "Authorization: Token <REST APIトークン値>"
-d "{\"password\": \"<パスワード文字列>\"}"
https://<Kompiraサーバアドレス>/config/user/id_<ユーザID>上は表示のために改行していますが、1行で入力してください。
変更するパスワードに記号などを含む場合は適切にエスケープする必要が出てくると思いますが、Windows はコマンドラインの仕様が複雑であったりコマンド自体の実装に依存するようになるためご注意ください。
curl コマンドには送信データをファイルから読み込む機能があり Windows 版でも利用できるようですので、これを利用する方式をご紹介しておきます。
まず、以下のようなテキストファイルを作成します。(この場合も JSON としての記号のエスケープは必要になります)
{"password": "<パスワード文字列>"}
これを new_password.json というファイルで作成したとしたときに、-d オプションに @new_password.json と指定するとファイルの内容をデータとして送信できます。
curl -k -X PATCH -H "Accept: application/json" -H "Content-Type: application/json"
-H "Authorization: Token <REST APIトークン値>"
-d @new_password.json
https://<Kompiraサーバアドレス>/config/user/id_<ユーザID>参考になさってみてください。
-
有難うございます。
Windowsのシングルクォーテーション、そうでした。失念しておりました。
まずは1行にまとめて実行し状況が変わりました。
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.11.13</center>
</body>
</html>で、Not Allowedとなります。
特権ユーザでAPI tokenを発行し、<ユーザID>を特権ユーザの表示名にしています。
初歩的なところで恐縮ですが、Not Allowdにならない指定を教えてください。
サインインしてコメントを残してください。
コメント
10件のコメント