Как заставить Apache в Debian получить доступ к ресурсу в файловой системе VFAT Windows?

Как заставить Apache в Debian получить доступ к ресурсу в файловой системе VFAT Windows?

В постедоступ к ресурсам на windowsntfsМы решили проблему, успешно разрешили Apache в Debian получить доступ к ресурсу в файловой системе NTFS окна, теперь я хочу разрешить Apache в Debian получить доступ к ресурсу в файловой системе VFAT окна.

Раздел диска sda2отформатирован vfat.

sudo blkid |grep 995A
/dev/sdb2: LABEL="SHARED" UUID="5E9C-995A" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="efdeb9ab-e920-40e6-9d24-df672b8806e9"

Я пишу конфигурацию /etc/fstab для автоматического монтирования.

UUID=5E9C-995A  /media/debian/SHARED vfat auto ,sync,umask=000 ,rw 0  0

Теперь /dev/sda2можно монтировать автоматически. Мои настройки Apache debian:

cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
 ServerName localhost
 DocumentRoot  /media/debian/SHARED/project 
 Alias  /project  "/media/debian/SHARED/project/build/html"
 <Directory /media/debian/SHARED/project>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
 </Directory>
</VirtualHost>

Установите разрешение для /media/debian/SHARED/project.

sudo chmod -R 644 /media/debian/SHARED/project

Перезапускаю Apache:

sudo systemctl restart apache2

Для ввода 127.0.0.и 127.0.0.1/projectв Firefox.

Forbidden    
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at 127.0.0.1 Port 80

Чтобы проверить журнал:

sudo cat /var/log/apache2/error.log

[Wed Aug 12 17:11:58.727479 2020] [core:error] [pid 3149] (13)Permission denied: [client 127.0.0.1:56434] AH00035: access to / denied (filesystem path '/media/debian/SHARED') >because search permissions are missing on a component of the path     
[Wed Aug 12 16:53:37.958950 2020] [core:error] [pid 3061] (13)Permission denied: [client 127.0.0.1:56158] AH00035: access to /project/ denied (filesystem path '/media/debian/SHARED') because search permissions are missing on a component of the path

Отображение права собственности на/media/debian/SHARED/project

ls -al  /media/debian/SHARED/project
total 304
drwxr-xr-x 14 root root 16384 Aug 12 14:19 .
drwxr-xr-x  4 root root 16384 Jan  1  1970 ..
drwxr-xr-x  4 root root 16384 Aug 12 14:18 build

/media/debian/SHAREDрасположен на vfatразделе диска, сменить владельца с помощью chown.

sudo chown -R www-data.www-data /media/debian/SHARED/project
chown: changing ownership of '/media/debian/SHARED/project': Operation not permitted

Как заставить Apache получить доступ к ресурсам на разделе VFAT? Пошаговое решение приветствуется.

решение1

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

Держитесь подальше от /media/someuserтаких каталогов, как /media/debian. Они получают особое отношение со стороны системы, с каталогами, динамически создаваемыми для каждого пользователя при необходимости. Эти каталоги являются частными для пользователя, «удерживающего место», и не позволяют процессу apache получать к ним доступ по умолчанию. Возможно даже, что перезагрузка или простой выход из системы/вход в систему могут сбросить их права доступа, не позволяя apache httpd снова получить к ним доступ, даже если он мог это сделать раньше.

Просто создайте каталог точки монтирования в другом месте. Он может быть внутри нового каталога с именем /srv/или /data/(или даже внутри, /var/www/но я бы не советовал).

Например, как root:

mkdir -p /srv/media/SHARED

Затем измените все настройки Apache и /etc/fstabукажите /srv/media/SHAREDвместо /media/debian/SHARED.

Поскольку не будет конфликтов с инструментами, динамически обрабатывающими права пользователей, как в случае с /media/debian, у пользователя apache httpd www-data не возникнет проблем с правами доступа /srv/media/SHARED.

Если бы это было предыдущей предполагаемой целью, debianGUI пользователя мог бы не отображать напрямую этот каталог, поскольку он не находится в зарезервированном каталоге для этого пользователя. Просто добавьте символическую ссылку или любой другой метод Desktop, чтобы указать на /srv/mediaили /srv/media/SHARED.


Проблемы все еще могут возникать из-за того, что VFAT — очень ограниченная файловая система: это Operation not permittedнормальная и ожидаемая ошибка для VFATЧауничмоди не может быть исправлена ​​иначе, как не используя VFAT. httpd (возможно, в зависимости от некоторых опций) может иметь особую интерпретацию для файлов с правами на выполнение. Если возникнет такой случай, это будет отдельная проблема, которая будет просто решена путем использования файловых систем POSIX или, по крайней мере, ntfs, используемых сntfs-3gс доработками (.NTFS-3G/UserMapping) для управления правами доступа. Избегайте VFAT или ExFAT.

Связанный контент