Работает ли скрипт с установленным битом SUID так же, как и тот же скрипт с sudo (или root)?

Я хочу запустить какой-нибудь скрипт с правами root, но от пользователя apache. Поэтому я добавил бит SUID в файл сценария, но это не работает, как я ожидал.

Владелец файла скрипта - root.

rwsr-xr-x 1 root root 2438 paź 8 12:10 script.sh

Когда я запускаю это из bash от имени root, все работает нормально... но когда я запускаю это как пользователь apache (запускается сценарием svn hook post-coomit, работающим как apache), я получаю некоторые сообщения об отказе в разрешении.

Это странно для меня, или я неправильно понял майнинг бит SUID. (пользователи получат права владельца файла, а также UID и GID владельца при выполнении файла / программы / команды.)

Так в чем же разница. Должен ли я добавить правильную строку в /etc/sudoers, которая позволит запускать этот скрипт от имени root...

1 ответ

Решение

В большинстве сред bash-скрипты (и большинство других) нельзя запускать как SUID (из-за серьезных проблем безопасности *).

Если вам нужно запустить только пару команд от имени пользователя root, вы можете отредактировать /etc/sudoers чтобы позволить процессу apache запускать только эти конкретные команды от имени пользователя root.

* http://www.vidarholen.net/contents/blog/?p=30

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