我无法让除我或 root 之外的其他用户访问已挂载的 NTFS 分区上的文件。我发现类似问题的答案通常提到设置 uid 和 gid 选项。在我的情况下,我使用 ntfs-3g 挂载分区并在默认位置定义了 UserMapping 文件。如手册中所述,这会导致 uid 和 gid 设置被忽略。
当我正常访问分区时,一切都正常。我可以更改权限、所有权并执行文件,这很棒。但是,如果 apache(以 www-data 身份运行)也可以访问分区上的文件,那就太好了,但目前它还不能访问。
fstab 中的行如下所示:
<UUID> <mount point> ntfs-3g x-gvfs-show,x-gvfs-name=Data,exec,hide_hid_files,hide_dot_files 0 0
为了测试 apache 用户的访问权限,我简单尝试了一下:
sudo -u www-data ls -all <absolute path to mount point>
返回:
ls: cannot access Data: Permission denied
我还尝试将挂载点上的组更改为 www-data 用户所在的组(即 www-data),但没有效果。
有什么我忽略了或者可以尝试的吗?任何帮助都将不胜感激!
编辑
ntfs-3g.secaudit Data/Server/index.html 的输出
secaudit 1.4.0 : NTFS security data auditing
File Data/Server/index.html
Windows attrib : 0x20
Interpreted Unix owner 1000, group 33, mode 0666
No errors were found
ntfs-3g.secaudit 数据/服务器/的输出
secaudit 1.4.0 : NTFS security data auditing
Directory Data/Server/
Windows attrib : 0x30
Interpreted Unix owner 1000, group 33, mode 0750
Posix descriptor :
acccnt 3
defcnt 3
firstdef 3
mode : 0750
tagsset : 0x25
Posix ACL :
version 2
flags 0x00
ace 0 : access USR-O -1 perms 0007 rwx
ace 1 : access GRP-O -1 perms 0005 r-x
ace 2 : access OTHER -1 perms 0000 ---
ace 3 : default USR-O -1 perms 0007 rwx
ace 4 : default GRP-O -1 perms 0007 rwx
ace 5 : default OTHER -1 perms 0007 rwx
No errors were found
答案1
出错的地方是我将挂载点添加到了 /media 而不是 /mnt 目录(如第一和第二个链接中所述)。因此,权限问题已修复:
<UUID> /mnt/Data ntfs-3g x-gvfs-show,x-gvfs-name=Data,exec,hide_hid_files,hide_dot_files 0 0
代替:
<UUID> /media/kevin/Data ntfs-3g x-gvfs-show,x-gvfs-name=Data,exec,hide_hid_files,hide_dot_files 0 0
这有效地回答了我的问题。
为了确保 apache 确实会加载页面而不是返回 403 禁止响应,只剩下一件事要做。apache 配置需要具有以下目录设置(如第三个链接中所述)。我将其添加到 /etc/apache2/apache2.conf。
<Directory "/mnt/Data/www">
allow from all
Options +Indexes
Require all granted
</Directory>
就这样!Apache 现在可以从 ntfs 分区为我的网站提供服务了。