Y a-t-il une différence entre l'exécution d'une tâche intensive sous sudo avec les commandes suivantes ?
- nice sudo [commande intensive ici]
- sudo nice [commande intensive ici]
BTW ceci est pour Linux 3.x.
Y a-t-il une différence entre l'exécution d'une tâche intensive sous sudo avec les commandes suivantes ?
BTW ceci est pour Linux 3.x.
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.
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.
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)
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.