Por que meu arquivo gerado pelo sudo é de propriedade do root?

4

Quando eu executo '# sudo touch newfile' minha expectativa era de que o arquivo seria de minha propriedade, não de root, já que meu entendimento do sudo é que ele está dando privilégios de root ao usuário, mas na verdade não muda o usuário.

Eu tenho um mal-entendido fundamental sobre o que é o sudo?

    
por Yarin 09.07.2010 / 14:04

4 respostas

8

Quando você usa sudo , você executa um programa como o superusuário (root), para que os arquivos criados sejam criados como o superusuário.

    
por 09.07.2010 / 14:08
6

O que mipadi disse, que você pode demonstrar comparando a saída desses dois comandos 'whoami' ("quem sou eu?"):

$ sudo whoami
$ whoami

    
por 09.07.2010 / 14:41
4

sudo (o nome vem do su "do" ou super usuário "do") permite que você execute o comando como root. Não dá ao seu usuário privilégios diferentes. Portanto, quando você executar #sudo touch newfile é o usuário root que executou o comando touch newfile e é por isso que o newfile é de propriedade do usuário root.

Mais informações na página do Sudo .

    
por 09.07.2010 / 14:40
3

Você pode pensar no 'su' no sudo como "alternar usuário". Se você não disser qual usuário executar como, o padrão será root , o superusuário, também associado ao su.

sudo -u yourself touch newfile se você deseja que o arquivo seja de propriedade de yourself .

Sua suposição de que sudo não altera o ID do usuário está correta na perspectiva do restante de sua sessão. Pense nisso como su + touch newfile + exit . Então, em seu shell você "permanece", mas sudo executa seu comando em um novo processo com outro ID do usuário efetivo.

    
por 09.07.2010 / 15:30

Tags