Я використовував для виконання команди:
sudo -u elasticsearch -s "ulimit -Hn"
і вона повертала значення ulimit -Hn, як це бачило користувач elasesearch, поки я не спробував це на Ubuntu 11.10. Туди він повертається:
/bin/bash: ulimit -Hn: command not found
Я спробував кілька різних команд, і коли я використовую аргумент, я завжди отримую "команду не знайдено":
$ sudo -u elasticsearch -s "ls all.sh"
/bin/bash: ls all.sh: command not found
Будь-які ідеї щодо того, як я можу виконати команду, яка потребує аргументів sudo
?
-s
? Просто тримайте звичайну оболонку і використовуйте її для виконання команд. Такі якsudo -u elasticsearch ls all.sh
. Якщоelasticsearch
використовується непридатна оболонка за замовчуванням, використовуйте-s bash
перед фактичною командою.