Есть ли разница между выполнением интенсивной задачи над sudo с помощью следующих команд ?:
- хороший sudo [интенсивная команда здесь]
- sudo nice [интенсивная команда здесь]
Кстати это для Linux 3.x.
linux
root
process-priority
Николас Лапланте
источник
источник
nice bash -c 'ps -p $$ -o pid,ni,comm'
, иsudo nice bash -c 'ps -p $$ -o pid,ni,comm'
, иnice sudo bash -c 'ps -p $$ -o pid,ni,comm'
. Все три должны показать вам хорошее значение для идентификатора процесса ($$) порожденной оболочки.Ответы:
Есть разница, решающая.
Если вы хотите уменьшить приоритет процесса, порядок не имеет значения. С другой стороны, если вы хотите увеличить его, вы должны поставить
sudo
раньшеnice
.Поскольку вы запускаете команду как обычный пользователь (иначе вы вообще не будете беспокоиться о sudo), вы можете только уменьшить приоритет своей команды. Но если вы используете
sudo
сначала, вы можете увеличить его, если хотите.источник
Если вы запустите,
nice sudo
запрос пароля также будет замечен, но, поскольку вы будете тратить гораздо больше времени на его ввод, это не имеет большого значения.Как отметил ThoriumBR, если вы понижаете приоритет, то порядок не имеет значения, но если вы хотите повысить приоритет, то (так как это должно быть сделано как root) вы должны использовать
sudo nice
.Иначе я не могу представить никакой реальной разницы.
источник
Используя «принцип наименьших привилегий», вы должны запускать программу с привилегиями суперпользователя только в том случае, если она им нужна, а затем отбрасывать их снова, как только они вам больше не нужны.
Так что да, есть разница: если есть уязвимость для nice, злоумышленник может запустить код с теми же привилегиями, что и для nice.
Кроме того, sudo сбрасывает вашу среду, так что это может побудить побочные эффекты, попробуйте
Таким образом, команда 'nice', которую вы запускаете через sudo, может в действительности оказаться другим двоичным файлом.
источник
Поздний ответ:
Если ваш доступ к sudo ограничен определенными программами (
foo
иbar
, например), у вас не будет прав для запускаsudo nice foo
, но вам будет разрешено работатьnice sudo foo
.источник