Какие на конфиг нужны права, чтобы безопасно менять в нем данные через веб интерфейс?
Есть одна хостинг панель, которая творит чудеса. Я пишу туда один костыль, который помогает внести нужный ip адрес в конфиг nfs-kernel-server, чтобы разрешить ему удаленное подключение.
По сути из textarea я беру данные и пишу их в /etc/exports, после валидации и проверки айпишника в нужном формате конфига для нужных папок.
Сейчас, пока я пишу всё это, я поставил на конфиг 777, что не хорошо.
Если конфиг оставить под рутом и -rw-r--r-- (644), то ничего туда писать нельзя. И как быть?
Писать bash скрипт, который запускается под рутом через exec? Выглядит прокладкой лишней, да и как через exec() выполнить из под рута? И я словил теорему Эскобара. Но ведь истина где-то рядом и лучший вариант должен быть, какой он? Добавить на конфиг группу www-data и разрешить ей запись? Я в растерянности. Пойду напьюсь.
Достаточно поставить SUID на скрипт, который будет менять конфиг, но рекомендую менять только определенные значения, не довать возможности записывать произвольный код, проводить очень строгую валидацию и ограничить доступ к web-ресурсу.
Т.е. я делаю sh скрипт, ему ставлю SUID, чтобы выполнялся от рута. А сам скрипт запускаю через exec(). Делаю apache авторизацию. Делаю валидацию и узкий круг возможностей записи в конфиг. Это наилучшее безопасное решение для данной задачи, все верно?