如何授予apache使用NTFS分区上的目录的权限?

时间:2013-02-13 23:02:28

标签: linux apache ubuntu file-permissions ntfs

我在一台装有20GB硬盘的旧机器上运行Linux(Lubutu 12.10)。我有一个1 TB的外置硬盘驱动器,上面有一个NTFS分区。在该分区上,有一个www目录,用于保存我的Web内容。它在启动时自动安装为/ media / t515 / NTFS。

我想将/ var / www中的apache文档目录更改为/ media / t515 / NTFS / www。

我需要将分区保留为NTFS分区,因为我在运行WAMP的其他计算机上使用相同的硬盘驱动器。

我将/ etc / apache2 / sites中的文件“default”更改为新位置,然后重新启动服务器。当我试图去当地主机时,我收到了错误:

403 Forbidden 您无权访问此服务器上的/。

然后我更改了fstab中的automount选项以包含选项“umask = 0000”,然后更改为“umask = 2200”,两者都无济于事。我仍然收到相同的错误消息。

我可以从其他应用程序访问NTFS分区,并以任何用户身份登录。但Apache似乎无法(或不愿意)访问该分区。如何授予apache使用NTFS分区上的目录的权限?

4 个答案:

答案 0 :(得分:5)

经过多次尝试之后,这对我来说是成功的而没有别的:更改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

答案 1 :(得分:4)

根据我的经验,我总是不得不用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

     

现在挂载分区

     

mount / media / windows

     

我给你的选项auto,将自动挂载分区   当你启动时,用户允许用户挂载和卸载。

     

然后,您可以在ntfs分区上使用chown和chmod。

两者都在这里找到:https://askubuntu.com/questions/11840/how-to-chmod-on-an-ntfs-or-fat32-partition

答案 2 :(得分: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/

答案 3 :(得分:0)

实际上非常简单:

1)在Windows主机上创建本地用户

2)向该用户授予适当的NTFS权限

3)验证访问权限(仅限Windows)

......那......

4)在Linux上配置你的NTFS挂载以使用相同的 Windows用户和组(Linux用户/组在这里无关紧要)

5)配置Apache使用该Linux组(Linux用户/组必需