
在文中存取windowsntfs上的資源,問題解決了,成功讓debian中的apache存取window的ntfs檔案系統上的資源,現在我想讓debian中的apache存取window的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
重新啟動我的阿帕契:
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。