Назад | Перейти на главную страницу

Почему / 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.

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

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

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

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

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

su --login nova

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

sudo -i nova

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