Soluzione 1:
C'è una differenza, cruciale.
Se vuoi diminuire la priorità del processo, l'ordine non ha importanza. D'altra parte, se vuoi aumentare esso, devi inserire sudo
prima del nice
.
Dato che stai eseguendo il comando come un utente normale (altrimenti non ti preoccuperesti affatto di sudo), puoi solo diminuire la priorità del tuo comando. Ma se usi sudo
prima, puoi aumentarlo se vuoi.
Soluzione 2:
Se esegui nice sudo
allora anche la richiesta della tua password sarà gradita, ma dato che passerai molto più tempo a digitarla, non ha molta importanza.
Come ha notato ThoriumBR, se stai abbassando la priorità, allora l'ordine è irrilevante, ma se vuoi aumentare la priorità, allora (poiché questo deve essere fatto come root) devi usare sudo nice
.
Altrimenti non riesco a immaginare alcuna reale differenza.
Soluzione 3:
Usando il "principio del privilegio minimo" dovresti eseguire un programma con privilegi di root solo se ne ha bisogno, e poi rilasciarli di nuovo non appena non ne hai più bisogno.
Quindi sì, c'è una differenza, se c'è un exploit per nice, un utente malintenzionato potrebbe eseguire codice con gli stessi privilegi del programma nice.
Inoltre, sudo ripristina il tuo ambiente, quindi potrebbe avere effetti collaterali, prova
$ 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
Quindi il comando 'nice' che esegui tramite sudo potrebbe effettivamente finire per essere un binario diverso.
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
Soluzione 4:
Risposta tardiva:
Se il tuo accesso sudo è limitato a determinati programmi (foo
e bar
, ad esempio), non avrai l'autorizzazione per eseguire sudo nice foo
, ma sarà autorizzato a eseguire nice sudo foo
.