我的网页文件位于/var/www/html/example.com/web/
权限是:
drwxr-xr-x 20 root root 4096 Aug 13 18:22 var ... same for www and html ... drwxr-xr-x 4 root root 4096 Aug 13 18:22 example.com drwxr-xr-x 10 apache root 4096 Aug 13 18:22 web
我有一个FTP用户“ftpuser”,但我不希望他们能够访问任何在/var/www/html/
但是,如果我在任何父级别文件夹上尝试chmod o-rx ,即使用户Apache在Web上仍具有接收权限,它也会提供403 Forbidden错误。
如何阻止ftpuser进入这些目录并读取这些文件,而不会阻止用户通过浏览器进行访问?
注意 – 奇怪的是我有另一个服务器设置类似的地方,我简单地做了example.com文件夹上的chmod o-rx ,并且所有东西都保持web可访问。
只需设置Web服务器(Apache,WWW,万维网,无论它在您的发行版作为所有者)
chown -R apache:root /var/www/html chmod -R o-rwx /var/www/html/
(这些命令应该正确地提供你所要求的内容,我不相信这是你想要的,因为它拒绝任何对任何与公共服务远程相关的文件的ftpuser访问…
如果你想让ftp用户访问: /var/www/html/example.com/web/然后运行上面的命令,然后执行以下命令:
chown -R ftpuser:apache /var/www/html/example.com/web/ chmod -R g+rx /var/www/html/example.com/web/
这些不是完美的许可,但他们应该接近完成工作。 (你可能必须在以下所有的父目录上授予ftpuser rx: /var/www/html/example.com/web/
这个问题可能更适合超级用户或Linux
从你发布的权限,我猜你只需要chown -R apache:root example.com/目录,然后做chmod o-rx从所有人,而不是networking服务器(和根)去除访问。 你最后的select涉及扩展属性(如ntfs权限)。
你有几个select,但是我会做的是安装suPHP,如果我假设你使用Apache是正确的; 如果不是,我希望我的回答能让你走上正确的道路。
它允许您以非Web服务器用户身份运行PHP脚本。 然后,您可以通知FTP服务器将用户locking在其$ HOME中,并将DocumentRoot移动到ftpuser的主文件夹中。 你没有提到你正在使用哪个Linux发行版,但是这里有一个在Ubuntu中安装的指南 , 这里是CentOS 6的一个 。
其他选项涉及到ftpuser的home文件夹位置,为避免出于标准化的原因,我会避免使用它 – suPHP将完美地完成这项工作,而不会过分地干扰您的系统configuration。
使用suPHP唯一需要注意的是权限必须是100%正确的,否则你将得到服务器错误。 我不能发布超过2个链接,所以只是谷歌“修复suphp权限”,并select“piyecarane.wordpress.com”页(目前为我的第一个链接)。