Como fazer o apache no debian acessar o recurso no sistema de arquivos vfat da janela?

Como fazer o apache no debian acessar o recurso no sistema de arquivos vfat da janela?

Na postagemacessar recurso no window'sntfs, resolvemos o problema, conseguimos fazer o apache no debian acessar o recurso no sistema de arquivos NTFS da janela, agora quero fazer o apache no debian acessar o recurso no sistema de arquivos vfat da janela.

A partição do disco sda2está vfatformatada.

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

Eu escrevo uma configuração /etc/fstab para montá-lo automaticamente.

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

Agora o /dev/sda2pode ser montado automaticamente. Minha configuração do Apache em 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>

Definir permissão para /media/debian/SHARED/project.

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

Reinicie meu apache:

sudo systemctl restart apache2

Para inserir 127.0.0.e 127.0.0.1/projectno 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 verificar o 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

Exibir a propriedade em/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/SHAREDlocalizado na vfatpartição do disco, não pode ser alterado a propriedade com chown.

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

Como fazer o apache acessar o recurso na partição vfat, solução passo a passo é apreciada.

Responder1

Aqui está uma resposta para orealproblema, que você já tinha na sua pergunta anterior e que foi abordado e explicado. Você está enganado ao pensar que o problema é um ou dois diretórios além do diretório que está causando o erro. O problema está certo em /media/debian/.

Fique longe de /media/someuserdiretórios como /media/debian. Eles recebem tratamento especial do sistema, com diretórios criados dinamicamente para cada usuário quando necessário. Esses diretórios são privados para o usuário "que ocupa o lugar" e não permitem que o processo Apache os acesse por padrão. Talvez seja até possível que uma reinicialização ou um simples logoff/login possa redefinir seus direitos de acesso, impedindo novamente o apache httpd de acessá-los, mesmo que pudesse antes.

Basta criar o diretório mountpoint em outro lugar. Poderia estar dentro de um novo diretório chamado /srv/or /data/(ou talvez até dentro, /var/www/mas eu não aconselharia).

Então, por exemplo, como root:

mkdir -p /srv/media/SHARED

Em seguida, altere todas as configurações do seu apache e /etc/fstabaponte para /srv/media/SHAREDem vez de /media/debian/SHARED.

Como não haverá conflitos com as ferramentas que lidam dinamicamente com os direitos do usuário, como é o caso do /media/debian, o usuário www-data do apache httpd não terá problemas de permissão para acessar o /srv/media/SHARED.

Se esse fosse o objetivo pretendido anteriormente, a debianGUI do usuário poderia não exibir diretamente este diretório, pois não está no diretório reservado para este usuário. Basta adicionar um link simbólico ou qualquer outro método Desktop para apontar para /srv/mediaou /srv/media/SHARED.


Ainda pode haver problemas devido ao fato de o VFAT ser um sistema de arquivos muito limitado: Operation not permittedé um erro normal e esperado no VFAT parachownechmode não pode ser corrigido de outra forma a não ser não usar VFAT. httpd (talvez dependendo de algumas opções) pode ter interpretação especial para arquivos com direitos de execução. Se tal caso surgir, este seria um problema separado que seria simplesmente resolvido aderindo aos sistemas de arquivos POSIX, ou pelo menos ao NTFS usado comNTFS-3Gcom ajustes (.NTFS-3G/UserMapping) para lidar com direitos de acesso. Evite VFAT ou ExFAT.

informação relacionada