Solution 1 :
Il y a une différence, une différence cruciale.
Si vous voulez diminuer la priorité du processus, l'ordre n'a pas d'importance. En revanche, si vous souhaitez augmenter dessus, vous devez mettre sudo
avant le nice
.
Puisque vous exécutez la commande en tant qu'utilisateur normal (sinon vous ne vous soucieriez pas du tout de sudo), vous ne pouvez que diminuer la priorité de votre commande. Mais si vous utilisez sudo
d'abord, vous pouvez l'augmenter si vous le souhaitez.
Solution 2 :
Si vous exécutez nice sudo
alors l'invite pour votre mot de passe sera également agréable, mais puisque vous passerez beaucoup plus de temps à le taper, cela n'a vraiment pas beaucoup d'importance.
Comme l'a noté ThoriumBR, si vous réduisez la priorité, l'ordre n'est pas pertinent, mais si vous souhaitez augmenter la priorité, alors (puisque cela doit être fait en tant que root), vous devez utiliser sudo nice
.
Sinon, je ne peux pas imaginer de réelle différence.
Solution 3 :
En utilisant le "principe du moindre privilège", vous ne devez exécuter un programme avec des privilèges root que s'il en a besoin, puis les supprimer à nouveau dès que vous n'en avez plus besoin.
Alors oui, il y a une différence, s'il y a un exploit pour nice, un attaquant pourrait exécuter du code avec les mêmes privilèges que le programme nice.
De plus, sudo réinitialise votre environnement, il peut donc avoir des effets secondaires, essayez
$ 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
Ainsi, la commande "nice" que vous exécutez via sudo pourrait en fait être un binaire différent.
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
Solution 4 :
Réponse tardive :
Si votre accès sudo est limité à certains programmes (foo
et bar
, par exemple), alors vous n'aurez pas le droit d'exécuter sudo nice foo
, mais sera autorisé à exécuter nice sudo foo
.