Debian の Apache が Windows の vfat ファイルシステム上のリソースにアクセスできるようにするにはどうすればよいでしょうか?

Debian の Apache が Windows の vfat ファイルシステム上のリソースにアクセスできるようにするにはどうすればよいでしょうか?

ポストでウィンドウのNTFS上のリソースにアクセスする問題を解決し、Debian の Apache が Windows の ntfs ファイルシステム上のリソースにアクセスできるように成功しました。次に、Debian の Apache が Windows の 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自動的にマウントできるようになりました。私のApacheの設定は次の通りです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

答えは実際のこの問題については、以前の質問で既に取り上げられており、対処および説明されています。エラーの原因となっているディレクトリの 1 つまたは 2 つのディレクトリを超えたところに問題があると考えるのは誤りです。問題はまさに にあります/media/debian/

/media/someuserなどのディレクトリには近づかないでください/media/debian。これらのディレクトリはシステムによって特別な扱いを受け、必要に応じて各ユーザーに対して動的にディレクトリが作成されます。これらのディレクトリは「席を保持している」ユーザー専用であり、デフォルトでは Apache プロセスがアクセスできません。再起動または単純なログオフ/ログインによってアクセス権がリセットされ、以前はアクセスできたとしても Apache httpd が再びアクセスできなくなる可能性もあります。

/srv/マウントポイント ディレクトリを別の場所に作成するだけです。またはという新しいディレクトリ内/data/(または 内でもよいですが/var/www/、お勧めしません) に作成できます。

たとえば、root として:

mkdir -p /srv/media/SHARED

次に、すべての Apache 設定を変更し、の代わりに/etc/fstabを指すようにします。/srv/media/SHARED/media/debian/SHARED

の場合のように、ユーザー権限を動的に処理するツールとの競合は発生しないため/media/debian、apache httpd のユーザー www-data が にアクセスする際に権限の問題が発生することはありません/srv/media/SHARED

それが以前の目的だった場合、このディレクトリはこのユーザー用に予約されたディレクトリではないため、ユーザーの GUI には直接表示されない可能性があります。またはdebianを指すシンボリックリンクまたはその他のデスクトップ メソッドを追加するだけです。/srv/media/srv/media/SHARED


VFATは非常に制限されたファイルシステムであるため、問題が発生する場合があります。これは、Operation not permittedVFATでは正常で予想されるエラーです。チョーンそしてchmodVFATを使用しない以外に修正する方法はありません。httpdは(おそらくいくつかのオプションに依存しますが)実行権限を持つファイルに対して特別な解釈を行う可能性があります。そのようなケースが発生した場合、これは別の問題であり、POSIXファイルシステム、または少なくともNTFSを使用することで簡単に解決できます。ntfs-3g微調整を加えて(.NTFS-3G/UserMapping) を使用してアクセス権を処理します。VFAT または ExFAT は使用しないでください。

関連情報