57 votes

sudo nice ou sudo nice ?

Y a-t-il une différence entre l'exécution d'une tâche intensive sous sudo avec les commandes suivantes ?

  1. nice sudo [commande intensive ici]
  2. sudo nice [commande intensive ici]

BTW ceci est pour Linux 3.x.

105voto

ThoriumBR Points 5222

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. Par contre, si vous voulez augmentation de vous devez mettre sudo avant 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.

17voto

Michael Hampton Points 232226

Si vous exécutez nice sudo l'invite à saisir votre mot de passe sera également désactivée, mais comme vous passerez beaucoup plus de temps à le taper, cela n'a pas vraiment d'importance.

Comme l'a noté ThoriumBR, si vous abaissez la priorité, alors l'ordre n'est pas pertinent, mais si vous voulez augmenter la priorité, alors (puisque cela doit être fait en tant que root) vous devez utiliser sudo nice .

Sinon, je ne peux pas imaginer une réelle différence.

4voto

Jens Timmerman Points 866

Utilisation de la le principe du moindre privilège vous ne devriez exécuter un programme avec les privilèges root que s'il en a besoin, puis les abandonner dès que vous n'en avez plus besoin.

Donc oui, il y a une différence, s'il existe un exploit pour nice, un attaquant pourrait exécuter du code avec les mêmes privilèges que le programme nice.

Aussi, sudo réinitialise votre environnement, donc il peut 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 "belle" commande que vous exécutez via sudo peut 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)

3voto

Chris Dennis Points 121

Réponse tardive :

Si votre accès sudo est limité à certains programmes ( foo y bar par exemple), alors vous n'aurez pas l'autorisation d'exécuter le programme sudo nice foo mais sera autorisé à courir nice sudo foo .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X