(セントOS 7)
このようなカールコマンドを試してみると、curl -u elastic -X GET 'http://localhost:9200/*' | more
1文字だけを入力した後にEnterキーを押したかのようにコマンドが実行され、認証に失敗することがわかりました。
これは普通ですか?
ファイルにリダイレクトしたり、上にスクロールしたり、wgetを使用したり(まだ試していない)コマンドにパスワードを入力したりできますが、ここで何が起こっているのかを知りたいです。
答え1
問題は、curl
とがmore
同時に同じTTYから読み取ることです。また、すべてTTY設定を変更できます。curl
入力したパスワードは画面に表示しないでください。more
これは基本的な行ベースの入力ではなく文字ベースの入力が必要なためです。
これが発生しないようにするには、コマンドが出力の生成を開始するmore
までコマンドの開始を遅らせることができると思います。curl
私はこれを行う標準コマンドがわかりませんが、2行のPythonコードで実行できます。
#!/usr/bin/python
import select
select.select([0], [], [])
上記のPythonスクリプトを使用して、元のコマンドを次のように変換できます。
curl -u elastic -X GET 'http://localhost:9200/*' | ( ./wait.py ; more )
答え2
すべて
# curl --help | grep -- ' -u'
-u, --user USER[:PASSWORD] Server user and password
#
努力する:
curl --silent --user elastic:changeme --request GET localhost:9200/*?pretty | more
別の解決策があります:
# pass=changeme
# curl -I -u alexus:$pass https://X.X.X
HTTP/1.1 200 OK
Server: nginx/1.13.5
Date: Wed, 27 Sep 2017 17:27:19 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 2350
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: max-age=31536000
Last-Modified: Sun, 13 Aug 2017 18:21:51 GMT
Strict-Transport-Security: max-age=15768000
#
保管も可能渡すchmod 700
ファイル内の変数(ファイルを忘れないでください)をsource
実行する前に変数を読み取るために使用されますcurl
。
望むより!