как добраться RW доступ в каталог с PHP?


UPDATE2

если я делаю ls внутри смонтированной директории php скрипт работает хотя бы один раз. Странно, не правда ли.


Я хочу получить доступ к каталогу из моего php-скрипта, который монтируется из

  • datadev сервера (datadev Линукс 2.6.22.18-0.2-умолчанию #1 СМП 2008-06-09 13:53:20 +0200 архитектуру x86_64 архитектуру x86_64 архитектуру x86_64 GNU/Линукс)

  • в wwwdev (Linux wwwdev 2.6.22.19-0.1-по умолчанию #1 SMP 2008-10-14 22:17: 43 +0200 архитектуру x86_64 x86_64 с архитектуру x86_64 GNU/Линукс)

через nfs

  • /etc / exports похоже ( попробовал некоторые вещи, которые не работали для меня)

    • в/var/lib в/жар-птица/данные 10.0.0.20 изменений(RW,no_root_squash)
    • в/var/lib в/жар-птица/данные 10.0.0.20(РВ,установленным битом setuid,no_root_squash)

    • в/var/lib в/жар-птица/дата-mapall=wwwrun:колеса 10.0.0.20 (rw)

    • в/var/lib в/жар-птица/данные 10.0.0.20(РВ,all_squash,anonuid=30,anongid помогают=100)

  • / etc / fstab-это как

    • 10.0.0.21:/ВАР/Либ/Жар-птица/данные в /var/lib в/жар-птица/данных по умолчанию НФС 0 0

Я могу получить доступ к каталогу из оболочки, но php дает мне ошибку Permission denied (errno 13) если я делаю chdir ('/var/lib/firebird / data');

[root][wwwdev /var/lib/firebird/data] ls -la
total 44G
-rw-rw---- 1 firebird firebird   64M Jun 10 15:43 ?
-rw-rw---- 1 firebird firebird  307M Jun 15 10:27 ?OQben.gdb
drwxr-xr-x 2 firebird firebird   16K Jul 21 16:55 ./
drwxr-xr-x 3 firebird wheel     4.0K Jul 21 11:36 ../

-

[root][datadev /var/lib/firebird/data] ls -la
total 44G  
-rw-rw---- 1 firebird firebird   64M Jun 10 15:43 ?
-rw-rw---- 1 firebird firebird  307M Jun 15 10:27 ?OQben.gdb
drwxr-xr-x 2 firebird firebird   16K Jul 21 16:55 ./
drwxr-x--- 4 firebird firebird  4.0K May  7 12:19 ../

мой php скрипт может редактировать конфиг.ini-файл

root][wwwdev /var/lib/edumate/imacs/radek/3.0] ls -la
total 128K
drwxr-xr-x 19 wwwrun wheel 4.0K Jul 21 16:27 ./
drwxr-xr-x  6 wwwrun wheel 4.0K Jul 19 14:28 ../
-rw-r--r--  1 wwwrun wheel 1.8K Jul 21 15:08 config.ini

обновление

Я хочу что-то, что уже работает для меня. Я смонтировал каталог с моего mac на тот же сервер wwwdev. wwwdev является клиентом nfs в обоих случаях. /etc / exports на mac имеет эту строку в /Users/radek/Sites -mapall=root:wheel -network 10.0.0.0 -mask 255.255.255.0

28
задан Radek
28.11.2022 13:38 Количество просмотров материала 2561
Распечатать страницу

4 ответа

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

Если по какой-то причине вы не можете изменить разрешения каталога, вы можете добавить веб-пользователя (wwwrun) до (firebird) группа на локальном компьютере. Я не уверен, что с головы до головы, как NFS справится с этим, если GIDs различаются на двух коробках, но мы можем разобраться в этом, если это так.

Это, вероятно, не самый безопасный способ сделать это, но я не уверен насчет ограничений для этого.

просто любопытно... по какой причине веб-серверу потребуется прямой доступ к этому местоположению? Если это расположение файлов базы данных, он может открыть новые возможности повреждения данных, если вы не очень осторожны. Не лучше ли использовать разъем Firebird/InterBase?

1
отвечен pferate 2022-11-29 21:26

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

учетная запись Пользователя Apache указана в файле конфигурации Apache (httpd.conf), и может быть что-то вроде "www-data" (в зависимости от конфигурации).

посмотреть в этой статье: как редактировать и понимать /etc / fstab

EDIT1

если нет проблем с fstab, то следующая остановка это с Селинуксом.

От документация политики NFS Selinux:

политика SELinux настраивается на основе наименьшего доступа требовать. Так по умолчанию политики не позволяет NFS для обмена архив.

Если вы хотите поделиться файлами для чтения / записи, вы должны установить nfs_export_all_rw логическое.

setsebool -P nfs_export_all_rw 1

чтобы быть абсолютно уверенным, что SELinux не вмешивается, смотрите как Отключите SELinux.

EDIT2

следующий и последний шаг, который я могу найти, - это проверить, правильно ли вы экспортировали общие ресурсы с сервера NFS. Вот некоторые ссылки, которые могут указывать путь:

NFS-mount "отказано в разрешении" ошибка

общий доступ к ресурсам NFS

1
отвечен harrymc 2022-11-29 23:43

нормально, Апач запущен от имени другого пользователя (Ф.е. www). Вы получаете доступ к каталогам через root...и, конечно, вы можете это сделать.

измените права доступа к смонтированной папке, чтобы показать, что Apache-User может их вводить.

0
отвечен Bobby 2022-11-30 02:00

наш сисадмин Исправлена проблема для меня. Он говорит, что он

  • создал новую группу xyz на сервере и клиенте nfs, а затем добавил firebird и wwwrun в эту группу
  • umount dir и настроить пользователя, группу, разрешение точно так же на обоих (сервер и клиент)
  • смонтировал его снова, и он работает с тех пор ...
0
отвечен Radek 2022-11-30 04:17

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх