Em Como posso alterar meu comando para executar sem privilégios de superusuário, mas com o valor de limite alterado? , descobri que posso executar sleep 100
com limite de tamanho de arquivo principal alterado como
sudo sh -c "ulimit -c 1024 && sleep 100"
ou melhor ainda com privilégios reduzidos:
sudo sh -c "ulimit -c 1024 && sudo -u nobody sleep 100"
Como posso escrever um script chamado my_ulimit
para que possa ser chamado
pela sintaxe semelhante como ulimit
do bash mas também é um
utilitário de carregamento de corrente, assim como a sintaxe de
link
my_ulimit [-H] [-S] [limits...] {next-prog}
Mais geralmente, é possível não apenas para o bash ulimit
, mas também
para outro comando que funciona de maneira semelhante a ulimit
, como:
mywrapper {command-name} [command-arg] {next-prog}
A parte difícil para mim é como especificar e manipular os argumentos para ulimit
, o nome do programa carregado por cadeia e seus argumentos, com relação à expansão de parâmetro e divisão de palavras.
Aqui está o meu experimento, aprecio qualquer melhoria nele
$ cat mywrapper.sh
#/bin/bash
setup_command="$1"
chained_command="$2"
eval "$setup_command" && sudo -u nobody bash -c "$chained_command"
$ sudo ./mywrapper.sh "ulimit -c 1024" "sleep 100"
^\Quit
Obrigado.