Я создаю простой веб-сайт в веб-пространстве, предоставленном моим университетом. У меня нет доступа к базе данных, поэтому я храню все данные в плоском файле. Проблема, с которой я столкнулся, связана с правами доступа к файлам. Мне нужен PHP, чтобы иметь возможность читать и записывать файл данных, но я действительно не хочу устанавливать для файла значение 777, поскольку кто-либо еще в системе может его изменить, у них уже есть доступ для чтения ко всем веб-каталогам. Есть ли у кого-нибудь идеи, как это сделать?
заранее спасибо
Вы можете использовать suPHP для выполнения этой задачи. Если вы можете его использовать, просто измените права доступа к файлу на 0700, и все будет работать так, как вы хотите.
Просто установите 0755 (или ниже), но убедитесь, что владельцем каталога является пользователь, в контексте которого запущен apache (или другой веб-сервер).
например
chown apache:apache /var/www/html
Вы можете получить информацию о пользователе, например, с помощью phpinfo ().
ОБНОВИТЬ
Если вы делитесь apache с большим количеством сайтов, вам следует разделить свой контент на Веб-каталоги для каждого пользователя
Идеальная ситуация была бы, если бы файловая система на сервере поддерживала posix acls, чтобы вы могли добавить доступ на запись к определенным файлам для uid, под которым работает веб-сервер.
И у вас достаточно доступа к файловой системе (желательно через учетную запись оболочки), чтобы установить права acl.
См. Man acl для обзора и man setfacl для подробностей о том, как их установить.
Вы можете использовать команду ниже, чтобы установить разрешение на чтение / запись:
sudo chown www-data PATH
если www-data не существует, вы можете заменить его на апач: апач или Apache.