o que 'sudo' significa para root?

o que 'sudo' significa para root?

Estou executando os seguintes comandos no Ubuntu 14.04:

root@ubuntu:~# service rpki-ca restart 
stop: Unknown job: rpki-ca
start: Unknown job: rpki-ca
root@ubuntu:~# sudo service rpki-ca restart 
rpki-ca stop/waiting
rpki-ca start/running
root@ubuntu:~#

Qual é o efeito sudono segundo comando? Por que o root precisa de sudo?

Responder1

Ok, pesquisando isso no Google, encontrando issoResposta U&L, verificando seuhistórico de revisõese seguindo a fonte citada norevisão #1, este é umBug inicial; o problema é que ao mudar para root em execução, sua $UPSTART_SESSIONvariável de ambiente é transportada do ambiente anterior em vez de ser definida novamente.

Depois de muito bater a cabeça e pesquisar no Google, encontrei uma postagem (https://unix.stackexchange.com/questions/120050/sudo-service-vsftpd-returns-unknown-job-vsftpd) mostrando que

sudo service xxxx start(ou pare ou reinicie)

funciona, enquanto

`service xxxx start (em uma sessão su)

não funciona.

Portanto, o culpado foi claramente o ambiente: se você fizer root com "su" em vez de "sudo su" ou "su -", "service" também não funcionará corretamente, pois "su" carregará a maior parte do seu ambiente normal de usuário para a sessão raiz.

Após alguns testes, descobri que o culpado é a variável de ambiente UPSTART_SESSION, que vem definida quando você "su", mas não definida quando você "sudo su" ou "su -". Aqui estão alguns resultados de testes:

-- não funciona

jsveiga@dell:~$ su
Password:
root@dell:/home/jsveiga# service smbd restart
stop: Unknown job: smbd
start: Unknown job: smbd

-- funciona mesmo em uma sessão su

root@dell:/home/jsveiga# sudo service smbd restart
smbd stop/waiting
smbd start/running, process 3823

-- funciona

root@dell:/home/jsveiga# exit
jsveiga@dell:~$ sudo su
root@dell:/home/jsveiga# service smbd restart
smbd stop/waiting
smbd start/running, process 3862

-- funciona

root@dell:/home/jsveiga# exit
jsveiga@dell:~$ su -
Password:
root@dell:~# service smbd restart
smbd stop/waiting
smbd start/running, process 3905

-- indo su e desativando o UPSTART_SESSION funciona

root@dell:/home/jsveiga# exit
jsveiga@dell:~$ su
Password:
root@dell:/home/jsveiga# service smbd restart
stop: Unknown job: smbd
start: Unknown job: smbd
root@dell:/home/jsveiga# unset UPSTART_SESSION
root@dell:/home/jsveiga# service smbd restart
smbd stop/waiting
smbd start/running, process 4244

Portanto, os scripts de início/parada estão falhando de alguma forma simplesmente pela presença da UPSTART_SESSIONvariável de ambiente.

BR, João S. Veiga

Para corrigir isso, basta unset $UPSTART_SESSION:

unset UPSTART_SESSION

ou mude para root por outros meios, como su -, sudo suou sudo -i.

Responder2

Nesse contexto, não significa nada e deve ser removido. Sem especificar algum outro usuário, sudotenta se tornar root, e então se você já é root, isso é autônomo, a não ser criar um processo adicional (para sudosi) que ocupa alguns recursos até que o comando que está executando termine.

informação relacionada