쉘이 로 설정된 사용자(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
쉘이 초기화될 때 얻은 파일에서 이를 정의합니다.