Re: Динамически включать-выключать CPU
> В принципе хотелось бы вот такой скрипт, разрешённый в sudoers (у меня
> так уже живёт монтирование флешки, это IMHO всё же безопаснее чем
> setuid):
>
> #!/bin/sh
> echo $1 >/dev/cpuset/tasks
> renice -4 -p $1
>
> Но тут невооружённым глазом видна дырка на injection.
>
> Можно ли чем-то её закрыть, не считая варианта "написать то же самое
> на питоне"? Там-то проверить тривиально - int(sys.argv[1]), и если не
> конвертится - то exception.
Можно даже на чистом sh, но проще всего -
if printf "%s" "$1" | grep '^[1-9][0-9]*$' >/dev/null 2>&1
then :
else exit 1
fi
grep у тебя будет, он в бизибоксе есть. printf - встроенная команда шелла.
Опять же, включая бизибокс.
--
- А почему перед всеми командами надо сначала писать man?
- Чтобы показать компу, кто тут мужик.
-- http://bash.org.ru/quote/403510
Reply to: