¿Qué significa 'sudo' para root?

¿Qué significa 'sudo' para root?

Estoy ejecutando los siguientes comandos en 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:~#

¿Cuál es el efecto del sudosegundo comando? ¿Por qué necesita root sudo?

Respuesta1

Ok, busqué esto en Google y encontré esto.respuesta de U&L, comprobando suhistorial de revisionesy siguiendo la fuente citada en elrevisión #1, esto resulta ser unError advenedizo; el problema es que cuando se cambia a la ejecución raíz, sula $UPSTART_SESSIONvariable de entorno se transporta desde el entorno anterior en lugar de configurarse nuevamente.

Después de golpearme mucho la cabeza y buscar en Google, encontré una publicación (https://unix.stackexchange.com/questions/120050/sudo-service-vsftpd-returns-unknown-job-vsftpd) mostrando que

sudo service xxxx start(o detener, o reiniciar)

funciona, mientras

`servicio xxxx inicio (en una sesión su)

No funciona.

Entonces, el culpable fue claramente el entorno: si accedes a la raíz con "su" en lugar de "sudo su" o "su -", "servicio" tampoco funcionará correctamente, ya que "su" transportará la mayor parte de tu entorno de usuario normal. a la sesión raíz.

Después de algunas pruebas, descubrí que la culpable es la variable de entorno UPSTART_SESSION, que viene configurada cuando haces "su", pero no cuando haces "sudo su" o "su -". Aquí hay algunos resultados de las pruebas:

-- No funciona

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

-- funciona incluso desde una sesión su

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

-- obras

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

-- obras

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

-- ir a su y luego desarmar el 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

Entonces, los scripts de inicio/parada fallan de alguna manera simplemente por la presencia de la UPSTART_SESSIONvariable de entorno.

BR, Joao S Veiga

Para solucionar este problema, simplemente desconfigúrelo $UPSTART_SESSION:

unset UPSTART_SESSION

o cambiar a root por otros medios, como su -, sudo suo sudo -i.

Respuesta2

En ese contexto, no significa nada y debería eliminarse. Sin especificar ningún otro usuario, sudointenta convertirse en root, por lo que si ya es root, eso no es operativo, aparte de crear un proceso adicional (para sudosí mismo) que ocupa algunos recursos hasta que finaliza el comando que está ejecutando.

información relacionada