Вопрос: приятно sudo или sudo приятно?


есть ли разница между запуском интенсивной задачи над sudo со следующими командами ?:

  1. nice sudo [интенсивная команда здесь]
  2. sudo nice [интенсивная команда здесь]

BTW это для Linux 3.x.


50
2017-09-05 16:31


Источник


Чтобы помочь вам проверить 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', Все три должны показать вам отличное значение для идентификатора процесса ($$) порожденной оболочки. - Zoredache
@Zoredache, в то время как я думаю, что ваш комментарий ОЧЕНЬ конструктивен, мы должны сказать, что все они будут иметь такое же приятное значение, потому что оно наследуется при форкинге, что должно быть фактическим ответом на вопрос. - Florin Asăvoaie
@FlorinAsavoaie, если вы думаете, что это должен быть ответ, тогда, пожалуйста, не стесняйтесь его добавлять. Я добавил свой комментарий выше как способ проверить вещи, потому что лично я не был на 100% уверен, что произойдет, и я решил найти команду, которая могла бы показать приятную ценность с различными вызовами. Я нахожусь в лагере, который, как правило, предпочитает иметь тест, который показывает, что все работает так, как они должны. - Zoredache
@FlorinAsavoaie Я бы тоже так подумал, но посмотри serverfault.com/a/626576/117546, - emory


Ответы:


Есть разница, важная.

Если ты хочешь снижение приоритет процесса, порядок не имеет значения. С другой стороны, если вы хотите увеличение это, вы должны положить sudo до nice,

Поскольку вы используете команду как обычный пользователь (в противном случае вы бы вообще не беспокоились о sudo), вы можете только уменьшить приоритет своей команды. Но если вы используете sudo во-первых, вы можете увеличить его, если хотите.


101
2017-09-05 17:04



Поздравляем, вы побеждаете. - Michael Hampton♦
Это очень важный момент, хотя в качестве ответа он завершен только тогда, когда вы объясняете Зачем порядок не имеет значения в базовом случае (как это делает Майкл в своем ответе). - Lightness Races in Orbit


Если вы запустите nice sudo то подсказка для вашего пароля также будет нарезанной, но поскольку вы потратите гораздо больше времени на ее ввод, это действительно не имеет большого значения.

Как отметил ThoriumBR, если вы снижаете приоритет, тогда порядок не имеет значения, но если вы хотите повысить приоритет, то (поскольку это нужно сделать как root), вы должны использовать sudo nice,

В противном случае я не представляю никакой реальной разницы.


15
2017-09-05 16:35





Используя «принцип наименьших привилегий» вы должны запускать программу с привилегиями root, если она им нужна, а затем отбрасывать их снова, как только они вам больше не понадобятся.

Так что да, есть разница, если есть эксплойт для 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

Таким образом, команда «nice», которую вы запускаете через sudo, может фактически оказаться другой бинарной.

$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens: 
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)

1
2017-09-12 13:04





Поздний ответ:

Если ваш доступ к sudo ограничен определенными программами (foo а также bar, например), то у вас не будет полномочий для запуска sudo nice foo, но будет разрешено работать nice sudo foo,


1
2018-01-22 13:59