Хороший sudo или хороший sudo?

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

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

Кстати это для Linux 3.x.

4 ответа

Решение

Есть разница, решающая.

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

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

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

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

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

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

Так что да, есть разница: если есть уязвимость для 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

Таким образом, команда 'nice', которую вы запускаете через 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,

Другие вопросы по тегам