在文中访问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.
和。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。