> В принципе хотелось бы вот такой скрипт, разрешённый в 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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/87r53ool6i.wl%[email protected]

