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

4

我在一台老旧的机器上运行Linux(Lubutu 12.10),使用一个20GB硬盘。我有一个1TB的外部硬盘,其中有一个NTFS分区。在该分区上,有一个名为www的目录,用于存储我的网页内容。它会在启动时自动挂载到/media/t515/NTFS。

我想把apache文档目录从/var/www改为/media/t515/NTFS/www。

由于我在另一台运行WAMP的机器上也要使用同样的硬盘,所以我需要保留该分区作为NTFS分区。

我已经将/etc/apache2/sites-available目录下的"default"文件更改为新位置,并重新启动了服务器。但当我试图访问本地主机时,出现了以下错误:

403 Forbidden 您没有权限访问此服务器上的/。

然后我将fstab中的自动挂载选项更改为包括选项“umask=0000”,然后更改为“umask=2200”,但都没有成功。我仍然遇到相同的错误信息。

我可以毫无问题地从其他应用程序和任何用户登录时访问NTFS分区。但是Apache似乎无法(或不愿)访问该分区。我该如何授予Apache访问NTFS分区上的目录的权限?


实际上,我已经成功地解决了问题,而没有遇到任何麻烦。我不得不更改父文件夹的权限。尽管 /media/t515/NTFS 具有完全权限,但 /media/t515 却没有完全权限。我没有意识到 Apache 需要访问路径中的所有目录才能正常工作,但我在 Apache 文档中找到了这个信息。 - Tom V
如果您找到了一个尚未被任何现有答案涵盖的解决方案,请发布您自己的答案。谢谢! - Eliah Kagan
4个回答

6

经过多次尝试,我成功实现了以下操作,没有其他方法可行:更改Apache的配置,使其不再使用www-data(Apache用户),而是使用我的用户。

操作非常简单。在我的Apache版本中,需要更改的两行代码位于/etc/apache2/envvars文件中(在其他版本中可能是其他文件):

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

我用我的用户名(这里是 toto :))替换了 www-data

export APACHE_RUN_USER=toto
export APACHE_RUN_GROUP=toto

兄弟,你救了我。谢谢你。 - user7309871

4

根据我的经验,我总是需要重新挂载具有读写权限的驱动器。找到了这个:

sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever

或者:

For NTFS partitions, use the permissions option in fstab.

First unmount the ntfs partition.

Then edit /etc/fstab

Graphical gksu gedit /etc/fstab

Command line sudo -e /etc/fstab

Identify your partition UUID with blkid

sudo blkid

And add or edit a line for the ntfs partition

# change the "UUID" to your partition UUID
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0

Make a mount point (if needed)

sudo mkdir /media/windows

Now mount the partition

mount /media/windows

The options I gave you, auto, will automatically mount the partition when you boot and users allows users to mount and umount .

You can then use chown and chmod on the ntfs partition.

这两个链接都可以找到:https://askubuntu.com/questions/11840/how-to-chmod-on-an-ntfs-or-fat32-partition


1
方法二正是我所寻找的。 - RepeatUntil

1

0

实际上非常简单:

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

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

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

... 然后 ...

4)配置Linux上的NTFS挂载,使用相同的Windows用户和组(Linux用户/组在这里不相关)

5)将Apache配置为使用该Linux组(Linux用户/组在此必不可少


1
谢谢您的回答。我不是完全清楚如何做到这一点。我已经在Windows中创建了一个本地用户,并为该用户授予了完全的NTFS权限。我如何编辑fstab以将分区自动挂载为该Windows用户?然后我如何配置apache?我是否需要创建与我创建的Windows用户相同名称的Linux用户? - Tom V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接