Почему произошел сбой / etc / sudoers, когда не используется абсолютный путь?

Я хочу предоставить свою учетную запись nova sudo priviledge, поэтому я добавляю эту конфигурацию в / etc / sudoers

Defaults:nova !requiretty

nova ALL = (root) NOPASSWD: /openstack/bin/nova-rootwrap 
/etc/nova/rootwrap.conf *
nova ALL = (root) NOPASSWD: /usr/bin/privsep-helper *

Затем я переключаюсь на nova:

su - nova

Вот вопрос: Когда я выполняю sudo / openstack / bin / nova-rootwrap , он работает, но когда я выполняю sudo nova-rootwrap , система запрашивает пароль. Кажется, что NOPASSWD не работает.

Я уже добавил / openstack / bin в свой путь env. Система - CentOS7.4.

Почему это происходит? Как я могу выполнить его без пароля?

1
задан 8 August 2018 в 12:52
3 ответа

Первое, что приходит мне в голову, это то, что кто-то может изменить путь и заставить nova-rootwrap заполнить какой-то вредоносный код.

По этой теме есть действительно хорошее обсуждение -> https://stackoverflow.com/questions/257616/sudo-changes-path-why

2
ответ дан 3 December 2019 в 18:26

Ваша команда на переключение пользователей не обновляет среду, а сохраняет среду вашего предыдущего пользователя. Использование оболочки входа вместо использования только «-» позволит добиться этого более полно.

То есть, если вам нужна совершенно новая среда, вы должны сделать это:

su --login nova

Это также работает :

судо -i nova

1
ответ дан 3 December 2019 в 18:26

Это причина безопасности, потому что очень плохая идея давать sudo без полного пути или давать sudo на скрипт, принадлежащий непривилегированному пользователю, потому что в этот момент вы предоставляете ему привилегию root.

0
ответ дан 3 December 2019 в 18:26

Теги

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