Вопрос о создании файлов.

Бочонок

http://frontender.info
Вопрос о создании файлов.

Приятного времени суток.

Возник вопрос:
Когда я скриптом создаю скриптом какой то файл (ОС UNIX) его владельцем является пользователь, под которым запущен апач.
Могу я как то сделать так что бы владельцем стал другой пользователь?
Я не могу поменять владельца файла функцией chown так как она требует права суперпользователя.
Но мне необходимо что бы созданные файлы/директории принадлежали тому пользователю, от имени которого я работаю с хостинг сервисом.
Есть ли какое то решение?

Очень надеюсь на вашу подсказку.
С уважением. Я.
 

HraKK

Мудак
Команда форума
Если мне память не изменяет - нельзя.
 

MagnetiZ

Новичок
Если у тебя просто возникает проблема с копированием файла или его удалением то просто при создании файла ставь права 775
 

Бочонок

http://frontender.info
Очень печально.
Тогда может быть вы сможете подсказать выход из сложившейся ситуации:

Есть CMS. Она создает некую файловую структуру в корневом директории сайта. Естественно владельцем всех созданных файлов и директориев является апач.

1. Как результат пользователь от имени которого осуществляется доступ к хостингу не может опперировать с этими файлами иначе кроме как через средства предоставленные CMS. Что соответственно неудобно иногда до колик.

2. Что бы что то писать в корневой директорий и во все последующие нужно что бы права доступа к директорию
для мира должны быть: wxr а для файлов: w-r
Насколько я понимаю, любой пользователь того же хостинга, для которого апач запущен от имени того же пользователя, в результате может теоретически свободно распоряжатся этими файлами и директориями.
Это является реальной проблемой безопасности или просто бред параноика?

-~{}~ 06.02.08 00:30:

2baev:
Пример диалога с хостером:
Ворон (23:03:53 5/02/2008)
Приятного вечера.
Могу я у вас проконсультироваться?

FREEhost.com.ua (23:04:15 5/02/2008)
Добрый вечер. Слушаю вас

Ворон (23:07:47 5/02/2008)
Я работаю с сайтом XXX.
Если я создаю php скриптом файл то его владелец - пользователь от имени которого запущен апач.
Я не могу поменять владельца файла функцией chown так как она требует права суперпользователя.
Но мне необходимо что бы созданные файлы/директории принадлежали тому пользователю, от имени которого я работаю с сервисом.
Есть ли какое то решение?


FREEhost.com.ua (23:08:22 5/02/2008)
Только писать запрос с контактного имейла на [email protected] с просьбой изменить владельца

Ворон (23:08:54 5/02/2008)
Понятно.
Очень печально.


FREEhost.com.ua (23:09:17 5/02/2008)
Скоро будет запущена новая панель - там эта функция будет доступна без запроса

Ворон (23:09:42 5/02/2008)
Проблема в том, что мне нужно делать это из скрипта.
Не в ручную.
-~{}~ 06.02.08 00:32:

2MagnetiZ:
Спасибо!
Сейчас попробую.
 

dimagolov

Новичок
если не стоит в php.ini юзеров open_basedir && safe_mode, то однозначно дыра в безопасности.
 

Бочонок

http://frontender.info
2dimagolov:

1.Насколько я понимаю с включенным safe_mode я вообще не смогу работать с деревом созданных директорий.

Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
Владелец созданного директория будет апач.
Владелец скрипта управления CMS будет пользователь от имени которого осуществляется доступ к хостингу.

2. Подскажи - в чем будет выражена дыра? Как злоумышленник может ее использовать? Я хочу знать чего боятся и чем такая дыра для сайта черевата.

3. Какой есть выход, если скрипт должен создавать html/сss/js файлы и файлы с php кодом, не говоря уже про запись картинок и создание структуры директориев для всего этого?
 

dimagolov

Новичок
Бочонок, дыра в том, что раз у скрипта права апача, то по идее нет никаких препятствий тому, чтобы получить доступ к другим virtual host home. а про то есть safe_mode или нет знает phpinfo. на уровне php такое ограничивается с помощью open_basedir, которая прописывается индивидуально для каждого vhost.

http://forum.dklab.ru/viewtopic.php?t=20268
 

Бочонок

http://frontender.info
2baev:
Насколько я понял ты рекомендуешь использовать этот дистрибютив так как он работает позволяет работать под различными дользователями для каждого виртуального хоста?
Apache в Unix (Linux, FreeBSD и т. д.) для обслуживания нескольких независимых сайтов, работающих под разными, полностью разграниченными друг от друга пользователями Unix.
Проблема в том что как правило хостинг предоставляется самыми обычными хостинг провайдерами и нет возможности выбирать http сервер.
Я пытаюсь сообразить можно ли избавиться от уязвимости доступными средствами.
Пока - безрезультатно.
Может вы что то подскажете?

open_basedir в настройках php насколько я понимаю может ограничить область работы скриптов отведенными для каждого пользователя директориеми. Но это может сделать только системный администратор хостинг провайдера. (я правильно понял?)
А из скрипта open_basedir как я понимаю менять бессмысленно абсолютно, т.к. оно будет только для этого скрипта и действительно (я правильно понял?).

Тоесть любой скрипт с UID пользователем апача может просканировать дерево директориев, и записать что захочет в любой директорий у которого в правах доступа для мира разрешена запись. При условии что нет соответствующих ограничений наложенных с помощью open_basedir.
Верно?

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

Соответственно в этом случае единственное решение:
Искать хостинг провайдера у которого:
1. Апач запускается разными пользователями для каждого виртуального хостинга.
2. Добросовесно прописаны open_basedir для каждого виртуального хостинга?

Я все правильно понял или как всегда что то упустил?
Я правильно понимаю суть дыры в безопасности?
Возможно есть еще какое то решение, если мне нужно генерировать контент для сайта?


---------


И еще вопрос, даже если директория открыта на запись для мира с другого сервера к ней все равно нет доступа на запись, верно?
 

dimagolov

Новичок
open_basedir это опция только в ini, а не времени выполнения

в остальном близко

ну а ответ на последний зависит от дырявости скриптов. если кто-то на сервере имеет скрипт манипуляции с файлами и он дырявый, то его можно заставить залезть куда угодно на сервере, куда хватает прав к юзера/группы апача. естественно в директории других юзеров вообще без проблем. не будешь же ты проводить аудит всех других сайтов на хостинге, чтобы выявить уязвимость?

ИМХО менять надо такого хостера или заставить его правильно настроить апач-пхп
 

Бочонок

http://frontender.info
Понятно.
Вопрос безопасности в общем то исчерпан.
Просто я оцениваю принципиальную пригодность идеи CMS которая может генерировать работоспособный контент сайта а не парсить каждый раз. CMS такая уже есть. Я ее и использую.
Но сейчас хочу переписать с 0. И вот обдумываю что надо а что нет.
Всем спасибо огромное.
Тему можно считать закрытой, пожалуй.
 
Сверху