Você precisa remover as aspas duplas. Ele está tentando executar um comando chamado "ulimit -Hn" como um único comando, espaços e tudo. -s
precisa ser a última opção sudo
na linha de comando sudo
, e todos os argumentos a seguir são passados para $SHELL -c
para execução.
sudo -u elasticsearch -s ulimit -Hn
Eu acho que a maneira como o -s
é processado mudou, já que a maneira atual permite que você passe argumentos com espaços para $SHELL
, escapando-os na linha de comando:
$ touch '/tmp/foo bar'
$ sudo -s rm '/tmp/foo bar'
O método antigo de manipulação de argumentos dividiria esse argumento '/tmp/foo bar'
em dois, quebrando o comando.