bom sudo ou sudo legal?

50

existe alguma diferença entre executar uma tarefa intensiva sobre o sudo com os seguintes comandos?:

  1. nice sudo [comando intensivo aqui]
  2. sudo nice [comando intensivo aqui]

BTW isto é para o Linux 3.x.

    
por Nicolas Laplante 05.09.2014 / 18:31

4 respostas

101

Há uma diferença crucial.

Se você quiser diminuir a prioridade do processo, o pedido não importa. Por outro lado, se você quiser aumentar , deverá colocar sudo antes de nice .

Como você está executando o comando como um usuário normal (caso contrário, você não se incomodaria com o sudo), você só pode diminuir a prioridade do seu comando. Mas se você usar sudo primeiro, você poderá aumentá-lo se quiser.

    
por 05.09.2014 / 19:04
15

Se você executar nice sudo , o prompt da sua senha também será afetado, mas, como você passará muito mais tempo digitando, ela não será muito importante.

Como ThoriumBR observou, se você está diminuindo a prioridade, então a ordem é irrelevante, mas se você quiser aumentar a prioridade, então (já que isso deve ser feito como root) você deve usar sudo nice .

Caso contrário, não consigo imaginar nenhuma diferença real.

    
por 05.09.2014 / 18:35
1

Usando o 'princípio do menor privilégio' , você só deve executar um programa com privilégios de root se precisar deles, e depois solte-os novamente assim que você não precisar mais deles.

Então, sim, há uma diferença: se houver uma exploração legal, um invasor poderá executar o código com os mesmos privilégios do programa.

Além disso, o sudo reconfigura o seu ambiente, para que ele cause efeitos colaterais, tente

$ 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

Assim, o comando 'legal' que você executa via sudo pode acabar sendo um binário diferente.

$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens: 
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
    
por 12.09.2014 / 15:04
1

Resposta tardia:

Se seu acesso sudo estiver limitado a determinados programas ( foo e bar , por exemplo), você não terá autoridade para executar sudo nice foo , mas poderá executar nice sudo foo .

    
por 22.01.2018 / 14:59