您没有权限访问此服务器上的 / 目录 Ubuntu 14.04。

4

议程:在Linux和Windows之间建立一个共同的项目文件夹。

我已经将我的文档根目录从/var/www/html更改为/media/mithun/Projects/test,在我的Ubuntu 14.04机器上。

但我遇到了以下错误:

禁止访问

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

Apache/2.4.7(Ubuntu)服务器位于localhost端口80

因此,我添加了一些脚本:sudo gedit /etc/apache2/sites-available/000-default.conf

# DocumentRoot /var/www/html
  DocumentRoot /media/mithun/Projects/test

但是 "Document Root /var/www/test" 能用,但不能使用Windows NTFS分区驱动器

即使参考了以下内容:
  1. 错误信息 "Forbidden You don't have permission to access / on this server"
  2. 我的 Ubuntu Apache 配置文件问题 (Forbidden You don't have permission to access / on this server.)
没有成功 :(. 因此请协助我解决这个问题... 注意: Projects 是一个 New Volume(内部驱动器:在 Windows 中为 E:/ 驱动器)

@Lmwangi - Please check my updates for your reference below:

Output of : ls /etc/apparmor.d/

abstractions    lightdm-guest-session  usr.bin.evince         usr.sbin.cupsd
cache           local                  usr.bin.firefox        usr.sbin.mysqld
disable         sbin.dhclient          usr.lib.telepathy      usr.sbin.rsyslogd
force-complain  tunables               usr.sbin.cups-browsed  usr.sbin.tcpdump

I tried killing apparmor:

sudo /etc/init.d/apparmor kill

I receive output as : Usage: /etc/init.d/apparmor {start|stop|restart|reload|force-reload|status|recache}

After this, i was also able to restart apache successfully


以单处理器/调试模式启动您的Apache服务器。将strace附加到它上面,并找出引发错误的确切系统调用。您能将其粘贴到您的问题中吗? - Lmwangi
另外,你可以尝试类似于sudo -u www-data "ls /media/mithun/Projects/test"的东西。我的直觉是你可能被apparmor或selinux或类似的东西阻止了 :) - Lmwangi
嗨@Lmwangi - 我尝试使用sudo -u www-data“ls /media/mithun/Projects/test”。它抛出了命令未找到的错误。 - Mithun Shreevatsa
抱歉,只需删除引号即可。应该是sudo -u www-data ls /media/mithun/Projects/test或更好的sudo -u www-data strace ls /media/mithun/Projects/test。 - Lmwangi
@Lmwangi - 我得到了这个输出:ii apparmor 2.8.95~2430-0ubuntu5.1 amd64 User-space parser utility for AppArmor ii dh-apparmor 2.8.95~2430-0ubuntu5.1 all AppArmor debhelper routines ii libapparmor-perl 2.8.95~2430-0ubuntu5.1 amd64 AppArmor library Perl bindings ii libapparmor1:amd64 2.8.95~2430-0ubuntu5.1 amd64 changehat AppArmor library ii libselinux1:amd64 2.2.2-1ubuntu0.1 amd64 SELinux runtime shared libraries - Mithun Shreevatsa
显示剩余3条评论
4个回答

1

现在您已经发现,您不能仅使用chmod之类的工具来操作NTFS分区的权限。

但是,在挂载分区时,您可以尝试强制设置整个分区的特定所有者/权限。

现在,如何执行此操作取决于您实际使用的NTFS实用程序(我不知道,因此我假设您正在使用ntfs-3g)。

例如,使用以下参数挂载分区(将dev/sdX替换为您的实际分区,将/path/to/where/drive/is/mounted替换为目标路径:

  mount -o gid=www-data /dev/sdX /path/where/the/drive/is/mounted 

应该将分区上的所有文件都归属于www-data组。
如果文件系统明确设置了组所有权,这可能仍然无法正常工作。在这种情况下,您可能需要设置一个usermap,将Windows用户/组(在分区中找到)映射到Linux用户/组。 ntfs-3g.usermap实用程序将帮助您生成初始的用户映射文件,然后您可以根据自己的需要进行编辑。
 ntfs-3g.usermap /dev/sdX

然后将usermap传递给挂载选项:

  mount -o usermapping=/path/to/usermap.file /dev/sdX /path/where/the/drive/is/mounted 

我尝试了您的第一步 mount -o gid=www-data /dev/sdX /path/where/the/drive/is/mounted,但在第二步中失败了 - 它抛出错误 Could not open "/dev/sda1" Make sure "/dev/sda1" is not mounted。我还使用 Gparted 卸载了它。 - Mithun Shreevatsa
我接受了这个答案,因为它表示了一定的努力,但问题还没有完全解决。由于我的悬赏积分今天就要过期了,所以请帮忙解决。我不想白白浪费这些积分。 - Mithun Shreevatsa

1
也许问题很简单:你的新根目录是否对www-data用户可访问? 尝试:
$ chown -R www-data:www-data /media/mithun/Projects

嗨,我尝试了你的代码。它报错为:"chown: changing ownership of ‘/media/mithun/Projects’: Operation not permitted"。 - Mithun Shreevatsa
尝试在root中运行。如果您想确定这是否是真正的问题,请尝试运行 ls -la /media/mithun/Projects 并查看第三和第四列是否设置为www-data(对于Projects中的文件夹也执行相同操作)。 - axellink
我没有看到它是一个Windows分区... 这将会更加复杂... 你的项目将会在线访问吗?如果不是,尝试给你的所有文件赋予chmod 777权限。 - axellink
抱歉之前没有将它作为Windows分区放置。在被投反对票后,我进行了分析并尽可能地使其变得干净和清晰。我尝试使用777设置权限,但仍然不行 :( 我需要为/media/mithun/Projects完整目录或/media/mithun/Projects/test(其中项目文件夹存在)分配777权限吗? - Mithun Shreevatsa
现在很明显这应该是一个权限问题,因为NTFS分区。也许你应该尝试这里的其中一种解决方案: https://dev59.com/aW7Xa4cB1Zd3GeqPp3EW - axellink
另外,您还应该执行chmod 777 -R /media/mirhun/Projetcs。 - axellink

0

在使用Ubuntu和Windows时,我遇到了同样的问题,通过重新挂载具有读写访问权限的驱动器来解决。以下命令将帮助您完成此操作:

sudo mount -o remount,rw /disk/location /disk/new_location

如果还是不工作,在Windows操作系统中,转到电源选项并禁用快速启动。

当您启用快速启动的计算机关闭时,Windows会锁定Windows硬盘。如果您将计算机配置为双重启动,则无法从其他操作系统访问它。更糟糕的是,如果您启动另一个操作系统,然后访问或更改休眠Windows安装使用的硬盘(或分区)上的任何内容,可能会导致损坏。如果您正在进行双引导,则最好根本不使用“快速启动”或“休眠”。

原文链接: https://www.howtogeek.com/243901/the-pros-and-cons-of-windows-10s-fast-startup-mode/


0

我怀疑您的apparmor执行规则阻止了Apache读取非白名单目录路径。我建议您:

  1. 编辑Apache的apparmor配置以访问您的自定义路径。您需要在/etc/apparmor.d/中寻找。您可能还会发现在非强制模式下使用apparmor有所帮助。

    $ sudo aa-complain /etc/apparmor.d/*

  2. 使用mod_apparmor?请参见this

  3. 或者完全禁用apparmor。请参见this

我的首选顺序是1、3、2。这应该可以为您解决问题 :)


嗨 @Lmwangi - 当我尝试按照你的步骤进行时,第一步出现了错误,类似于这个 - Mithun Shreevatsa
你在 /etc/apparmor.d/* 中有任何和 Apache 相关的内容吗?能否发布 ls /etc/apparmor.d/ 的输出? - Lmwangi
此外,为了确定我们是否在正确的方向上进行,可以在停止arparmor后检查Apache是否正常工作。停止命令如下:sudo /etc/init.d/apparmor kill。 - Lmwangi
在运行1. /etc/init.d/apparmor stop,然后2. /etc/init.d/apache restart之后,Apache是否会为您提供目录服务? - Lmwangi
不要使用自定义目录... 它仍然会抛出相同的错误。 - Mithun Shreevatsa

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