что 'sudo' означает для корня?

Я выполняю следующие команды в 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:~#

Из чего эффект sudo во второй команде? Почему корню нужно sudo?

5
задан 22 June 2015 в 07:54

2 ответа

Хорошо, гугля это, находя этот ответ U&L, проверяя его историю изменений и после заключенного в кавычки источника в пересмотре № 1, это, оказывается, Новомодная ошибка; проблема состоит в том что при переключении на корневое выполнение su $UPSTART_SESSION переменную среды несут от предыдущей среды вместо того, чтобы быть установленной снова.

После большого стука по моей голове и поиска с помощью Google, я нашел сообщение (https://unix.stackexchange.com/questions/120050/sudo-service-vsftpd-returns-unknown-job-vsftpd) показывающий это

sudo service xxxx start (или остановитесь, или перезапуск),

работы, в то время как

'сервис xxxx запускается (на su сессии)

не работает.

Таким образом, преступник был ясно средой: Если Вы идете корень с "su" вместо "sudo su" или "su -", "сервис" не делает для работы правильно также, поскольку "su" будет нести большую часть среды обычного пользователя на корневую сессию.

После некоторых тестирований я нашел, что преступник является переменной среды UPSTART_SESSION, которая прибывает набор когда Вы "su", но не набор когда Вы "sudo su" или "su -". Вот некоторые результаты испытаний:

- не работает

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

- работы даже от su сессии

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

- работы

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

- работы

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

- движение su затем сбрасывающий работы UPSTART_SESSION

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

Таким образом, запустить/остановить сценарии перестали работать так или иначе просто присутствием UPSTART_SESSION переменная среды.

BR, Joao S Veiga

Для фиксации этого просто сбросьте $UPSTART_SESSION:

unset UPSTART_SESSION

или переключитесь для укоренения другими средствами, как su -, sudo su или sudo -i.

3
ответ дан 23 November 2019 в 10:27

В том контексте это ничего не означает и должно быть удалено. Не определяя некоторого другого пользователя, sudo попытки стать корнем, и поэтому если Вы уже - корень, который является не кроме создания дополнительного процесса (для sudo самого), который занимает некоторые ресурсы до команды, это выполняет концы.

0
ответ дан 23 November 2019 в 10:27

Другие вопросы по тегам:

Похожие вопросы: