¿Cómo hacer que Apache en Debian acceda al recurso en el sistema de archivos vfat de Windows?

¿Cómo hacer que Apache en Debian acceda al recurso en el sistema de archivos vfat de Windows?

En el postacceder al recurso en windowsntfsResolvemos el problema, logramos que Apache en Debian acceda al recurso en el sistema de archivos ntfs de Windows, ahora quiero que Apache en Debian acceda al recurso en el sistema de archivos vfat de Windows.

La partición del disco sda2está vfatformateada.

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

Escribo una configuración /etc/fstab para montarla automáticamente.

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

Ahora /dev/sda2se puede montar automáticamente. Mi configuración de Apache en 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>

Establecer permiso para /media/debian/SHARED/project.

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

Reiniciar mi apache:

sudo systemctl restart apache2

Para ingresar 127.0.0.y 127.0.0.1/projecten Firefox.

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

Para comprobar el registro:

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

Mostrar la propiedad en/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/SHAREDubicado en vfatla partición del disco, no se puede cambiar la propiedad con chown.

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

Cómo hacer que Apache acceda al recurso en la partición vfat, se agradece la solución paso a paso.

Respuesta1

Aquí hay una respuesta a laactualproblema, que ya tenía en su pregunta anterior y que fue abordado y explicado. Se le engaña haciéndole creer que el problema está en uno o dos directorios más allá del directorio que causa el error. El problema está justo en /media/debian/.

Manténgase alejado de /media/someuserdirectorios como /media/debian. Reciben un trato especial por parte del sistema, con directorios creados dinámicamente para cada usuario cuando es necesario. Estos directorios son privados para el usuario que "tiene el asiento" y no permitirán que el proceso de Apache acceda a ellos de forma predeterminada. Quizás incluso sea posible que un reinicio o un simple cierre de sesión/inicio de sesión restablezcan sus derechos de acceso impidiendo que Apache httpd vuelva a acceder a ellos, incluso si antes podía hacerlo.

Simplemente cree el directorio del punto de montaje en otro lugar. Podría estar dentro de un nuevo directorio llamado /srv/o /data/(o tal vez incluso en, /var/www/pero no lo recomendaría).

Así, por ejemplo, como root:

mkdir -p /srv/media/SHARED

Luego modifique todas las configuraciones de Apache y /etc/fstabapunte a /srv/media/SHAREDen lugar de /media/debian/SHARED.

Como no habrá conflictos con las herramientas que manejan dinámicamente los derechos de los usuarios como es el caso en /media/debian, el usuario www-data de Apache httpd no tendrá problemas de permisos para acceder /srv/media/SHARED.

Si ese era el objetivo anterior, debianes posible que la GUI del usuario no muestre directamente este directorio ya que no está en el directorio reservado para este usuario. Simplemente agregue un enlace simbólico o cualquier otro método de escritorio para señalar /srv/mediao /srv/media/SHARED.


Es posible que todavía haya problemas debido al hecho de que VFAT es un sistema de archivos muy limitado: Operation not permittedes un error normal y esperado en VFAT parachownychmody no se puede corregir de otra manera que no sea utilizando VFAT. httpd (quizás dependiendo de algunas opciones) puede tener una interpretación especial para archivos con derechos de ejecución. Si surge tal caso, este sería un problema separado que simplemente se resolvería apegándose a los sistemas de archivos POSIX, o al menos a los ntfs utilizados conntfs-3gcon ajustes (.NTFS-3G/UserMapping) para manejar los derechos de acceso. Evite VFAT o ExFAT.

información relacionada