명령을 실행하는 데 사용했습니다.
sudo -u elasticsearch -s "ulimit -Hn"
그리고 Ubuntu 11.10에서 시도 할 때까지 사용자 elasticsearch에서 볼 수 있듯이 ulimit -Hn 값을 반환했습니다. 거기 반환합니다 :
/bin/bash: ulimit -Hn: command not found
몇 가지 다른 명령을 시도했는데 인수를 사용할 때 항상 “명령을 찾을 수 없습니다”라는 메시지가 나타납니다.
$ sudo -u elasticsearch -s "ls all.sh"
/bin/bash: ls all.sh: command not found
통해 인수가 필요한 명령을 어떻게 실행할 수 sudo
있습니까?
답변
큰 따옴표를 제거해야합니다. “ulimit -Hn”이라는 명령을 단일 명령, 공백 및 모두로 실행하려고합니다. 명령 행 -s
에서 마지막 sudo
옵션 이어야하며 sudo
다음의 모든 인수가 전달되어 전달됩니다 $SHELL -c
.
sudo -u elasticsearch -s ulimit -Hn
-s
현재 방법을 사용하면 공백이있는 인수를 $SHELL
명령 줄에서 이스케이프 처리 하여 전달할 수 있으므로 처리 방법 이 변경 된 것 같습니다.
$ touch '/tmp/foo bar'
$ sudo -s rm '/tmp/foo bar'
오래된 인수 처리 방법은 해당 '/tmp/foo bar'
인수를 두 개로 나누고 명령을 깨뜨 렸습니다.