데비안의 아파치가 Windows의 vfat 파일 시스템에 있는 리소스에 액세스하도록 하는 방법은 무엇입니까?

데비안의 아파치가 Windows의 vfat 파일 시스템에 있는 리소스에 액세스하도록 하는 방법은 무엇입니까?

본문에서windowsntfs의 리소스에 액세스, 문제가 해결되었고 Debian의 Apache가 창의 ntfs 파일 시스템에 있는 리소스에 액세스할 수 있게 되었습니다. 이제 Debian의 Apache가 창의 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자동으로 설치할 수 있습니다. 내 아파치 설정은 다음과 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

Firefox에 및 를 입력합니다 127.0.0..127.0.0.1/project

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/SHAREDvfat디스크 파티션에 위치하므로 소유권을 변경할 수 없습니다 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/권장하지는 않습니다).

예를 들어 루트로서:

mkdir -p /srv/media/SHARED

그런 다음 모든 Apache 설정을 변경 하고 /etc/fstab대신 ./srv/media/SHARED/media/debian/SHARED

에서와 같이 사용자 권한을 동적으로 처리하는 도구와 충돌하지 않으므로 /media/debianApache httpd의 사용자 www-data에는 액세스 권한 문제가 발생하지 않습니다 /srv/media/SHARED.

이것이 의도된 목표라면 사용자 debian의 GUI는 이 디렉토리가 이 사용자를 위해 예약된 디렉토리에 없기 때문에 직접 표시하지 않을 수 있습니다. /srv/media또는 을 가리키도록 심볼릭 링크나 다른 데스크톱 방법을 추가하기만 하면 됩니다 /srv/media/SHARED.


VFAT는 매우 제한된 파일 시스템이므로 여전히 문제가 있을 수 있습니다. 이는 Operation not permittedVFAT에서 정상적이고 예상되는 오류입니다.그리고chmodVFAT를 사용하지 않으면 이 문제를 수정할 수 없습니다. httpd(아마도 일부 옵션에 따라)는 실행 권한이 있는 파일에 대해 특별한 해석을 가질 수 있습니다. 이런 일이 발생하면 POSIX 파일 시스템을 고수하거나 최소한 ntfs를 사용하여 해결할 수 있는 별도의 문제가 됩니다.NTFS-3G조정하다(.NTFS-3G/UserMapping) 액세스 권한을 처리합니다. VFAT 또는 ExFAT를 피하세요.

관련 정보