Обеспечение доступа к файлу в домашнем каталоге пользователя из веб / веб-сервера

У меня есть txt-файл, один из homedir моего пользователя, который регулярно обновляется там скриптом. Теперь я хочу иметь доступ к этому файлу (читать) из Интернета.

/home/user/folder/file.txt

Итак, я попробовал войти в систему как пользователь root, зайти в папку httpdocs моего веб-сервера

/var/www/path/to/domain/httpdocs

и там я попытался создать символическую ссылку с

ln -s /home/user/foler/file.txt /var/www/path/to/domain/httpdocs/file.txt
[ 116] Но это не сработало ... Я уже пытался изменить chmod символьной ссылки (которая, конечно, меняет те, что указаны в исходном файле), а также chown для пользователя с веб-сервера, но что бы я ни пытался, не могу откройте файл из Интернета или из php-скрипта (что я и хочу сделать)

Кто-нибудь может мне помочь и сказать, что мне нужно делать? Какие права мне нужно дать? Или есть другой способ добиться этого?

2
задан 19 February 2011 в 01:55

2 ответа

Символическая ссылка всегда будет иметь следующие разрешения: lrwxrwxrwx. « l » указывает, что это ссылка. Поэтому все пользователи могут переходить по ссылке, поскольку действующие разрешения - это права доступа к файлу, на который указывает ссылка. Никогда не стоит пытаться изменить разрешения символической ссылки.

Весь путь от корня до рассматриваемого файла должен быть доступен для чтения пользователю Apache. Итак ... взгляните на разрешения домашней папки:

ls -la /

Домашний каталог должен принадлежать root, группа принадлежит root, с маской разрешений 0755 по умолчанию: drwxr-xr-x. Если нет, измените его:

sudo chown root:root /home; sudo chmod 0755 /home

Теперь взгляните на каталог вашего пользователя:

ls -la /home

Если имя пользователя sambo , дом пользователя каталог должен принадлежать sambo, группа, принадлежащая sambo, с маской разрешения 0755 по умолчанию: drwxr-xr-x. Если нет, измените его:

sudo chown sambo:sambo /home/sambo; sudo chmod 0755 /home/sambo

Повторите это столько раз, сколько необходимо, поскольку сколько бы каталогов не существовало, пока вы не достигнете каталога, содержащего файл. Тогда не забудьте о самом файле.

sudo chown sambo:sambo /home/sambo/path/to/file/file.txt; sudo chmod 0644 /home/sambo/path/to/file/file.txt

Затем откройте его с помощью PHP:

<?php
    $file = '/home/sambo/path/to/file/file.txt';
    $fp = fopen($file, 'r');

Вы также можете использовать символическую ссылку на этом этапе.

0
ответ дан 19 February 2011 в 01:55

Мне удалось получить доступ к файлам из моей системы с помощью mediatomb (см. документация ), поскольку он имеет веб-интерфейс. Я бы порекомендовал включить защиту паролем как минимум.

Другой альтернативой является веб-сервер Opera Unite.

0
ответ дан 19 February 2011 в 01:55

Другие вопросы по тегам:

Похожие вопросы: