@Netscout

Как изменить права на системный каталог Linux через PHP (выполнить команды от рута)?

Здравствуйте !
Столкнулся с такой задачей - нужно с помощью PHP работать с файловой системой всего Linux сервера (сервер для экспериментов стоит в домашней локалке, за фаерволом и заточен под определённые нужды). Установленная ОС CentOS 6.7 Final, Апач 2, php работает как модуль.

Решить задачу нужно именно на PHP.

В данный момент необходимо работать с файлами в каталоге /etc/ - нужно сменить владельца и права на некоторые каталоги, выполнить копирование, бекап и тд и после этого снова вернуть первоначальные права.

Так вот - проблема в том, что апач не позволяет выполнять команды на php от рута:

shell_exec('chmod -R 777 /etc/catlib/'); - говорит недостаточно прав, нот пермиссион и тд.

Скрипты выполняются от пользователя Apache (echo exec('whoami');)
Запуск веб сервера от рута, добавление Apache в группу рута не помогают.

Вспомнил про SUDO, сделал следующее:

открыл: /etc/sudoers
добавил: apache ALL=NOPASSWD: /path/to/script

и всё равно не получается изменить права командой: shell_exec(' sudo chmod -R 777 /etc/catlib/');

Собственно вопрос - как решить ?
Не хочется делать ССШ соединение в скрипте само на себя и уже менять права. Что изменить в системе, чтобы дать php права рута для всего и вся ? Может в Sudo не та инструкция прописывается ?

Спасибо за ответ !
  • Вопрос задан
  • 428 просмотров
Пригласить эксперта
Ответы на вопрос 3
shambler81
@shambler81 Куратор тега Linux
И правильно делает, поскольку это не просто костыль а мега костыль и крест на безопасности.
Могу порекомендовать вам поднять демона на отдельном порту который уже смоежт работать от рута а апачь уже будет управлять им
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
я бы сам php скрипт от root'а запускал, и всех дел.
пользователя apache/www-data добавлять в sudoers - это оч.плохая идея...
Ответ написан
@alegzz
1.
shell_exec('sudo /path/to/script');
cat /path/to/script:
#!/bin/bash
chmod -R 777 /etc/catlib/

2. поставить incron, создавать в пхп файл, прописать на создание файла запуск скрипта
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽