
Я пытался ограничить команды, которые может выполнять определенный пользователь в файле sudoers, скажем, у меня есть что-то вроде этого:
dummy myserver=(ALL:ALL) /usr/sbin/reboot,/usr/sbin/shutdown
Мой фиктивный пользователь может только перезагружать или выключать систему. Я намеренно разрешаю фиктивному пользователю выдавать себя за других пользователей, но всякий раз, когда я пытаюсь использовать опцию -u sudo, напримерsudo -u anotheruser whoami
Я получаю следующую ошибку:
Sorry, user dummy is not allowed to execute '/usr/bin/whoami' as anotheruser on myserver.
Я понимаю, что могу конкретно указать пользователя и группу, от имени которых я хочу действовать в sudoers, но мне интересно, почему не работает ALL:ALL
Буду очень признателен за ваши ответы.
решение1
Это (ALL:ALL)
работает, ваш dummy
пользователь просто не может выполнить whoami
. Вы должны добавить /usr/bin/whoami
в список разрешенных команд. Ваше текущее правило говорит, что dummy
может выполнить /usr/sbin/reboot
или /usr/sbin/poweroff
каклюбойпользователь илюбойгруппа. Вам разрешено звонить sudo -u anotheruser /usr/sbin/reboot
, его отказ перезагрузить систему не будет иметь ничего общего ссудо.
Более того, в вашей системе, вероятно, нет исполняемых файлов /usr/sbin/reboot
и /usr/sbin/poweroff
. Это важные команды, поэтому они должны быть в /sbin
.
Подводя итог: ваш /etc/sudoers
файл должен содержать такую строку:
dummy myserver=(ALL:ALL) /sbin/reboot, /sbin/poweroff, /usr/bin/whoami