Работает ли скрипт с установленным битом 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.