Я хочу запустить сценарий с привилегиями root, но от пользователя apache. Поэтому я добавил бит SUID в файл сценария, но это не сработало, как я ожидал.
Владелец файла скрипта - root.
rwsr-xr-x 1 root root 2438 paź 8 12:10 script.sh
Когда я запускаю это из bash как root, все работает нормально ... но когда я запускаю его как пользователь apache (он запускается svn hook post-coomit script, запущенным как apache), я получаю сообщения об отказе в разрешении.
Для меня это странно, или я неправильно понял майнинг бита SUID. (пользователи получат разрешения владельца файла, а также UID и GID владельца при выполнении файла / программы / команды.)
Так в чем разница. Должен ли я добавить соответствующую строку в / etc / sudoers, которая позволит запускать этот скрипт от имени пользователя root ...
В большинстве сред bash-скрипты (и большинство других) не могут быть запущены как SUID (из-за серьезных проблем с безопасностью *).
Если вам нужна только пара команд, запускаемых от имени root, вы можете отредактировать /etc/sudoers
чтобы позволить процессу apache запускать только эти конкретные команды от имени пользователя root.