Я потратил полдня, пытаясь выяснить это, и я провел много исследований.Я также знаком со многими существующими дискуссиями по этой теме, такими как эта: Как запустить PHP exec () от имени root?
К сожалению, ни одно из предложенных мной предложений 'мне показалось, что это работает для меня.
Прежде всего, я пишу что-то в спецификации, поэтому я не могу избежать этого.Кроме того, все машины будут находиться в частной сети, которая не подключена к Интернету.Хотя важно иметь НЕКОТОРЫЕ средства безопасности, в большинстве случаев необходимо предотвращать ошибки.Моя цель - настроить несколько «тонких серверов».С помощью сценария PHP мне нужно иметь возможность изменять конфигурацию сети (статическую или DHCP) и перезапускать сеть.
Первое, что я попробовал, было написать программу на языке Си, которая является SUID root.Он читает, изменяет и записывает файл конфигурации сети.Если я запускаю его как обычный пользователь, он работает просто отлично и может получить доступ и изменить файл, принадлежащий root.Но если я запускаю его из скрипта PHP, я получаю ошибки доступа.Похоже, что Apache каким-то образом предотвращает корень SUID.
Основываясь на предложениях других обсуждений, я попробовал метод "sudo".Временно я добавил это в / etc / sudoers: apache ALL = (ALL) NOPASSWD: ALL
Я получаю следующую ошибку: sudo: невозможно открыть систему аудита: разрешение отклонено
Согласнона этой странице на русском это происходит потому, что такие системы, как RHEL (я использую Fedora) по умолчанию требуют requiretty для sudoers.Поэтому я добавил эту строку в / etc / sudoers: по умолчанию! Requiretty
Я все еще получаю ту же ошибку.sudo: невозможно открыть систему аудита: в доступе отказано
Я полностью зашел в тупик.То есть, если я не хочу запускать сам Apache от имени root, что будет более неудобно, чем что-либо еще.
Может кто-нибудь высказать какие-либо предложения здесь?Я понимаю, что я пытаюсь сделать это странно.Бьюсь об заклад, некоторые из вас укажут мне на какую-то существующую систему для удаленной настройки компьютеров Fedora (и теперь, когда я об этом подумаю, я собираюсь разобраться с этим прямо сейчас).
Кстати, язапуск SELinux, потому что именно так настроена Fedora 15 по умолчанию.
Спасибо.
РЕДАКТИРОВАТЬ:
Я нашел этот учебник:
http://www.cyberciti.biz/faq/howto-disable-httpd-selinux-security-protection/
К сожалению, когда я запускаю "setsebool httpd_disable_trans 1", я получаю сообщение об ошибке:
Не удалось изменить активные логические значения: недопустимый логический
Я также пытался напрямую редактировать "/ etc / selinux / target / booleans",не существует и перезапускает apache, но это тоже не сработало.