У меня есть веб-сайт, который при необходимости записывает файлы. Эти файлы принадлежат www-data. У меня также есть пользователь, который запускает приложение для сбора информации из этих файлов. Написан на Python. Однако, поскольку эти файлы принадлежат www-data, мое приложение не может их прочитать, и я должен запускать приложение от имени пользователя root, чего я бы предпочел не делать. Что я могу сделать, чтобы мой пользователь мог читать файлы, созданные www-data?
РЕДАКТИРОВАТЬ, относительно комментариев:
-rw-r--r-- 1 ivan www-data 444 2011-07-20 16:34 serverfile1.php
-rw-r--r-- 1 ivan www-data 140 2011-07-20 16:34 serverfile2.php
-rw-r--r-- 1 ivan www-data 478 2011-07-20 16:35 serverfile3.php
-rw-r--r-- 1 www-data www-data 10 2011-07-20 17:41 info1.txt
-rw-r--r-- 1 www-data www-data 21 2011-07-20 17:41 info2.txt
-rw-r--r-- 1 ivan www-data 236 2011-07-20 16:35 serverfile4.php
Я все еще не могу прочитать файлы info1 и info2 с помощью пользователя ivan
Добавьте вашего пользователя в группу www-data и сделайте файлы group-readabe.
# usermod -a -G www-data username
# chmod -R g+r /var/www/files
Ваши файлы уже доступны для группового чтения, если вы открываете файлы только для чтения, у вас не должно возникнуть проблем. Некоторые из них уже предлагались, но вот что нужно проверить.
Предполагая, что список разрешенных файлов точен, пользователь ivan должен иметь доступ к этим файлам.
Вы можете проверить режим, в котором вы открываете файл с помощью Python. Если вы попытаетесь открыть его с правами записи, вы получите сообщение об ошибке.
Если, как иван, вы можете катать или возглавлять файлы info1 / info2, это, скорее всего, будет проблемой python / кода.
Альтернативой может быть запуск php как fastcgi под конкретным пользователем (php fastcgi + suexec).
пока, Стефано