LINUX.ORG.RU

Open_basedir и бинарник

 , ,


0

2

На сервере стоит директива РНР open_basedir, которая запрещает пхп скриптам работать с файлами ниже домашней директории. Но надо кое что сделать, не отключая этой директивы. Попробовал написать на Си бинарник, закинул его рядом со скриптом, и вызвал через system(функция пхп) - не работает. И пхп скрипт, и бинарник имеют владельца root и права 777. Почему такое может быть, и как это можно обойти?

Если очень по простому, мне нужен веб интерфейс, чтобы писать в файл в /etc , но не отключая open_basedir

я для этого писал отдельный JSON-RPC-микросервис не на php, который слушал локальный порт

подпишусь, мб кто-нибудь предложит что-нибудь элегантнее

Попробовал написать на Си бинарник, закинул его рядом со скриптом, и вызвал через system(функция пхп) - не работает

это была бы слишком очевидная дыра в безопасности, php говно, но не настолько же

Ford_Focus ★★★★★
()

вызвал через system(функция пхп) - не работает.

Поподробнее.

open_basedir это ламерская защита, которая впрочем может помочь, но действия внутри внешних программ она не контролирует.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

писать в файл в /etc

вызвал через system(функция пхп)

Оно же не от root запустилось и видимо поэтому и не сработало.

xaizek ★★★★★
()
Ответ на: комментарий от goingUp

Не работает, как отладить - не знаю, просто не отрабатывает скрипт да и все.

zer0cat
() автор топика
Ответ на: комментарий от xaizek

А от кого запускается скрипт, с какими правами? Апача или рут? Владелец root как бы , но запускается по вебу, т.е. по http.

zer0cat
() автор топика
Ответ на: комментарий от zer0cat

А как ты тогда писать собираешься в /etc? У тебя апач работает из-под www-data, соответственно запуск бинарика твоего тоже из-под www-data. Поэтому тебе сервис и предлагают.

anonymous
()
Ответ на: комментарий от zer0cat

бинарник, закинул его рядом со скриптом, и вызвал через system

сокет на каком-то порте вида 1488

Зачем такие сложности? Просто включи у http-сервера запись в корневую директорию и тебе нужный скрипт добрые люди из интернета сами запишут. Но я думаю ты просто тролль, номер порта красноречиво намекает.

dvetutnev
()
Последнее исправление: dvetutnev (всего исправлений: 1)
Ответ на: комментарий от anonymous

Думал, что права могут наследоваться не от родительского процесса, а от владельца на диске (я не спец в линуксах ни разу).

В общем все понял, спасибо, буду писать сервис. з.ы. номер порта выбран от балды, хз какой тут троллинг.

zer0cat
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.