如何让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.和。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。

相关内容