シェルがに設定されているユーザー(zabbix)があります/sbin/nologin
。ユーザーの家は/var/lib/zabbix
私alias curl='curl -k'
がに接続することです~zabbix/.bashrc
。しかし、テスト目的で質問を発行するとうまくいかず、
sudo -u zabbix curl https://HOST-WITH-INVALID-ISSUER-CERTIFICATE
nullを返します。
実際、コマンドはcurl https://HOST-WITH-INVALID-ISSUER-CERTIFICATE
zabbix-server<-->zabbix-agent の相互作用を介してリモートで実行されます。
答え1
.curlrc
エイリアスの代わりに~zabbix
。これには、curl
コマンドの実行時にコマンドに追加するコマンドラインパラメータが含まれています。
# --insecure being the more readable synonym for -k
$ echo "insecure" >> ~zabbix/.curlrc
答え2
デフォルトでは、非対話型シェルはエイリアスを拡張しません。shopt -s expand_aliases
エイリアスを定義する前に、これを明示的に実行する必要があります。また、通常は対話型シェルを介してのみ取得できるため、明示的に取得する必要が~/.bashrc
あるかもしれません。
つまり、関数はエイリアスの優れた代替手段であり、機能するために半分のあいまいな設定は必要ありません。次のようになります。
curl() { command curl -k "$@"; }
繰り返しウサギの洞窟に陥らないようにcommand
検索コマンドが組み込まれています。$PATH
シェルが初期化されたときに取得したファイルでそれを定義します。