본문에서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/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/
권장하지는 않습니다).
예를 들어 루트로서:
mkdir -p /srv/media/SHARED
그런 다음 모든 Apache 설정을 변경 하고 /etc/fstab
대신 ./srv/media/SHARED
/media/debian/SHARED
에서와 같이 사용자 권한을 동적으로 처리하는 도구와 충돌하지 않으므로 /media/debian
Apache httpd의 사용자 www-data에는 액세스 권한 문제가 발생하지 않습니다 /srv/media/SHARED
.
이것이 의도된 목표라면 사용자 debian
의 GUI는 이 디렉토리가 이 사용자를 위해 예약된 디렉토리에 없기 때문에 직접 표시하지 않을 수 있습니다. /srv/media
또는 을 가리키도록 심볼릭 링크나 다른 데스크톱 방법을 추가하기만 하면 됩니다 /srv/media/SHARED
.
VFAT는 매우 제한된 파일 시스템이므로 여전히 문제가 있을 수 있습니다. 이는 Operation not permitted
VFAT에서 정상적이고 예상되는 오류입니다.존그리고chmodVFAT를 사용하지 않으면 이 문제를 수정할 수 없습니다. httpd(아마도 일부 옵션에 따라)는 실행 권한이 있는 파일에 대해 특별한 해석을 가질 수 있습니다. 이런 일이 발생하면 POSIX 파일 시스템을 고수하거나 최소한 ntfs를 사용하여 해결할 수 있는 별도의 문제가 됩니다.NTFS-3G조정하다(.NTFS-3G/UserMapping
) 액세스 권한을 처리합니다. VFAT 또는 ExFAT를 피하세요.