есть ли разница между запуском интенсивной задачи поверх sudo с помощью следующих команд ?:
Кстати, это для Linux 3.x.
Есть разница, очень важная.
Если хочешь уменьшение приоритет процесса, порядок не имеет значения. С другой стороны, если вы хотите увеличение это, вы должны положить sudo
перед nice
.
Поскольку вы запускаете команду как обычный пользователь (в противном случае вы бы вообще не беспокоились о sudo), вы можете только уменьшить приоритет своей команды. Но если вы используете sudo
во-первых, вы можете увеличить его, если хотите.
Если ты бежишь nice sudo
тогда запрос пароля также будет отображаться, но, поскольку вы потратите гораздо больше времени на его ввод, это не имеет большого значения.
Как отметил ThoriumBR, если вы понижаете приоритет, то порядок не имеет значения, но если вы хотите повысить приоритет, то (поскольку это должно быть сделано от имени пользователя root) вы должны использовать sudo nice
.
Иначе я не могу себе представить реальной разницы.
Используя "принцип наименьших привилегий" вы должны запускать программу с привилегиями root, только если они ей нужны, а затем отбрасывать их снова, как только они вам больше не нужны.
Так что да, есть разница: если есть эксплойт для nice, злоумышленник может запустить код с теми же привилегиями, что и программа nice.
Кроме того, sudo сбрасывает вашу среду, поэтому могут возникнуть побочные эффекты, попробуйте
$ echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jens/.local/bin:/home/jens/bin:/home/jens/.local/bin
$ echo 'echo $PATH' | sudo sh
[sudo] password for jens:
/sbin:/bin:/usr/sbin:/usr/bin
Таким образом, «хорошая» команда, которую вы запускаете через sudo, на самом деле может оказаться другим двоичным файлом.
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
Поздний ответ:
Если ваш доступ к sudo ограничен определенными программами (foo
и bar
, например), то у вас не будет права запускать sudo nice foo
, но будет разрешено работать nice sudo foo
.