如何讓debian中的apache存取windows的vfat檔案系統上的資源?

如何讓debian中的apache存取windows的vfat檔案系統上的資源?

在文中存取windowsntfs上的資源,問題解決了,成功讓debian中的apache存取window的ntfs檔案系統上的資源,現在我想讓debian中的apache存取window的vfat檔案系統上的資源。

磁碟分割區 sda2vfat格式化。

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

重新啟動我的阿帕契:

sudo systemctl restart apache2

在firefox輸入 127.0.0.and 。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/or的新目錄中/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

如果這是先前的預期目標,則使用者debian的 GUI 可能不會直接顯示此目錄,因為它不在為此使用者保留的目錄中。只需添加符號連結或任何其他桌面方法來指向/srv/media/srv/media/SHARED


由於 VFAT 是一個非常有限的檔案系統,因此可能仍然存在問題:這Operation not permitted是 VFAT 上的正常且預期的錯誤喬恩chmod除非不使用 VFAT,否則無法修正。 httpd(可能取決於某些選項)可能對具有執行權限的檔案有特殊的解釋。如果發生這種情況,這將是一個單獨的問題,只需堅持使用 POSIX 檔案系統或至少使用 ntfs 即可解決NTFS-3G進行調整(.NTFS-3G/UserMapping)來處理存取權限。避免 VFAT 或 ExFAT。

相關內容