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

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

게시물에서window'sntfs의 리소스에 액세스,우리는 문제를 해결하고 데비안의 아파치가 창의 ntfs 파일 시스템의 리소스에 액세스하도록 하는 데 성공했습니다. 이제 데비안의 아파치가 창의 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

내 아파치를 다시 시작하십시오 :

sudo systemctl restart apache2

입력 127.0.0.하고 127.0.0.1/projectFirefox에서.

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 httpd가 다시 액세스하지 못하게 할 수도 있습니다.

다른 곳에 마운트 지점 디렉터리를 생성하면 됩니다. /srv/또는 이라는 새 디렉터리 안에 있을 수도 있습니다 /data/(또는 그 안에 있을 수도 있지만 /var/www/권장하지는 않습니다).

예를 들어 루트로서 다음과 같습니다.

mkdir -p /srv/media/SHARED

그런 다음 모든 아파치 설정을 변경하고 /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에서 일반적이고 예상되는 오류입니다.chown그리고chmodVFAT를 사용하지 않는 이상 수정할 수 없습니다. httpd(아마도 일부 옵션에 따라)는 실행 권한이 있는 파일에 대해 특별한 해석을 가질 수 있습니다. 그러한 경우가 발생하면 POSIX 파일 시스템을 고수하거나 적어도 다음과 함께 사용되는 ntfs를 사용하면 간단히 해결될 수 있는 별도의 문제가 됩니다.NTFS-3g비틀기와 함께 (.NTFS-3G/UserMapping) 액세스 권한을 처리합니다. VFAT 또는 ExFAT를 피하세요.

관련 정보