如何授予 apache 使用 NTFS 分区上的目录的权限?
Posted
技术标签:
【中文标题】如何授予 apache 使用 NTFS 分区上的目录的权限?【英文标题】:How do I give apache permission to use a directory on an NTFS partition? 【发布时间】:2013-01-29 16:07:02 【问题描述】:我在具有 20GB 硬盘驱动器的旧机器上运行 Linux (Lubutu 12.10)。我有一个带有 NTFS 分区的 1 TB 外置硬盘。在该分区上,有一个 www 目录,其中包含我的 Web 内容。它在启动时自动挂载为 /media/t515/NTFS。
我想将 apache 文档目录从 /var/www 更改为 /media/t515/NTFS/www。
我需要将该分区保留为 NTFS 分区,因为我在运行 WAMP 的不同机器上使用相同的硬盘。
我将 /etc/apache2/sites-available 中的“默认”文件更改为新位置,然后重新启动服务器。当我尝试去本地主机时,我得到了错误:
403 禁止 您无权访问此服务器上的 /。
然后我将 fstab 中的自动挂载选项更改为包含选项“umask=0000”,然后更改为“umask=2200”,但均无济于事。我仍然收到相同的错误消息。
当我以任何用户身份登录时,我可以从其他应用程序毫无问题地访问 NTFS 分区。但是 Apache 似乎无法(或不愿意)访问该分区。
【问题讨论】:
实际上,我可以毫不费力地使用它。我不得不更改父文件夹的权限。虽然 /media/t515/NTFS 有完全权限,但 /media/t515 没有完全权限。我没有意识到 apache 需要访问路径中的所有目录才能工作,但我发现它隐藏在 apache 文档中。 如果您发现任何现有答案尚未涵盖的解决方案,请post your own answer。谢谢! 【参考方案1】:上面的答案都没有解决问题,实际上问题与Apache本身有关,而不是文件系统或权限。
你唯一需要做的就是:
<Directory "/www/mywebdirectoryinapartitioneddisk">
Require all granted
</Directory>
这将解决问题
这里是我博客中的帖子,详细解释了所有内容。它可以在 NTFS 上运行
http://www.tbogard.com/2014/09/12/making-apache-server-to-read-a-partitioned-disk-the-definitive-solution/
【讨论】:
【参考方案2】:经过多次尝试,这对我来说是成功的没有别的,那就是:更改 Apache 的配置,使其不再使用 www-data
(Apache 用户)而是我自己的用户。
做起来很简单。在我的 Apache 版本中,要更改的两行位于 /etc/apache2/envvars
文件中(它可以是另一个版本中的另一个文件):
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
我用我的用户名替换了www-data
(这里是toto
:)):
export APACHE_RUN_USER=toto
export APACHE_RUN_GROUP=toto
【讨论】:
伙计,你救了我。谢谢。【参考方案3】:根据我的经验,我总是不得不重新安装具有 RW 权限的驱动器。发现这个:
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever
或:
对于 NTFS 分区,使用 fstab 中的权限选项。
首先卸载ntfs分区。
然后编辑
/etc/fstab
图形
gksu gedit /etc/fstab
命令行
sudo -e /etc/fstab
用 blkid 识别你的分区 UUID
sudo blkid
并为 ntfs 分区添加或编辑一行
# change the "UUID" to your partition UUID UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0
创建一个挂载点(如果需要)
sudo mkdir /media/windows
现在挂载分区
挂载/media/windows
我给你的选项,auto,会自动挂载分区 当你启动并且用户允许用户挂载和卸载时。
然后您可以在 ntfs 分区上使用 chown 和 chmod。
两者都在这里找到:https://askubuntu.com/questions/11840/how-to-chmod-on-an-ntfs-or-fat32-partition
【讨论】:
方法#2正是我要找的【参考方案4】:其实很简单:
1) 在 Windows 主机上创建一个本地用户
2) 向该用户授予适当的 NTFS 权限
3) 验证访问权限(仅限 Windows)
...那么...
4) 配置您在 Linux 上的 NTFS 挂载以使用相同 Windows 用户和组(Linux 用户/组在此无关紧要)
5) 配置 Apache 以使用该 Linux 组(Linux 用户/组在此处必不可少)
【讨论】:
感谢您的回答。我不完全清楚如何做到这一点。我在 Windows 中创建了一个本地用户,并为该用户提供了完整的 NTFS 权限。如何编辑 fstab 以将该分区自动挂载为该 Windows 用户?在那之后我该如何配置apache?我必须创建一个与我创建的 Windows 用户同名的 Linux 用户吗?以上是关于如何授予 apache 使用 NTFS 分区上的目录的权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用 linux 在 ntfs-3g 分区中取消设置文件的稀疏标志?
如何将NTFS格式的移动硬盘挂接到Mac OS上进行读写操作