Я пытался ограничить команду, которую конкретный пользователь может выполнить в файле 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 не работает
Буду очень признателен за ваши ответы.
В (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