Solución 1:
Hay una diferencia, una crucial.
Si desea disminuir la prioridad del proceso, no importa el orden. Por otro lado, si desea aumentar debe poner sudo
antes de nice
.
Dado que está ejecutando el comando como un usuario normal (de lo contrario, no se molestaría en absoluto con sudo), solo puede disminuir la prioridad de su comando. Pero si usa sudo
primero, puedes aumentarlo si quieres.
Solución 2:
Si ejecuta nice sudo
entonces la solicitud de su contraseña también será agradable, pero dado que pasará mucho más tiempo escribiéndola, realmente no importa mucho.
Como señaló ThoriumBR, si está reduciendo la prioridad, entonces el orden es irrelevante, pero si desea aumentar la prioridad, entonces (ya que esto debe hacerse como root) debe usar sudo nice
.
De lo contrario, no puedo imaginar ninguna diferencia real.
Solución 3:
Usando el 'principio de privilegio mínimo', solo debe ejecutar un programa con privilegios de raíz si los necesita, y luego volver a soltarlos tan pronto como ya no los necesite.
Así que sí, hay una diferencia, si existe un exploit para nice, un atacante podría ejecutar código con los mismos privilegios que el programa nice.
Además, sudo restablece su entorno, por lo que podría tener efectos secundarios, intente
$ 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
Entonces, el comando 'agradable' que ejecuta a través de sudo podría terminar siendo un binario diferente.
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
Solución 4:
Respuesta tardía:
Si su acceso a sudo está limitado a ciertos programas (foo
y bar
, por ejemplo), entonces no tendrá autoridad para ejecutar sudo nice foo
, pero podrá ejecutar nice sudo foo
.