我想知道什么是最简单和最安全的方式在Web服务器上,以防止用户浏览除他们的主文件夹以外的目录。
我有一个与多个用户共同的Web服务器,他们都有一个public_html目录。 使用PHP,他们可以很容易地包含或列出其他用户的文件。
我怎么能让他们认为他们已经到达了服务器的根目录,当他们试图cd ../在他们的主目录或者当他们<?php include('../../otheruser/public_html/config.php'); ?
我正在考虑chroot监狱。 有没有一种最简单的方式只使用模式? Apache的? PHP的configuration? 其他的Linux工具?
非常感谢您的帮助。
编辑:忘了说我正在使用CentOS 6.4和Debian服务器。
编辑2:我不需要用户有一个shell访问。
您可以安装和configurationsuPHP 。
suPHP是一个Apache模块,它将用户的脚本作为自己的uid而不是apache运行。 由于这些脚本都是作为自己的uid运行的,因此简单的文件权限会将其保留在其他用户的目录之外,并且apache用户可以访问其他任何目录。
文件系统权限也会阻止它们从shell进入其他用户的文件夹。 只要确保主目录不给其他权限,例如。 770是好的,777或775是坏的。
如果您希望用户拥有shell访问权限,那么您所要求的操作并不容易。 想想这样:你想要能够运行ls ? 所以你必须给读取权限/ bin / ls所在的位置,并且必须能够读取ls所链接的/ lib中的所有库(参见ldd /bin/ls )。
你想限制他们的访问目的是什么? 如果要阻止他们查看其他用户的文件,请确保其他用户的主目录没有权限让他们读取。 如果原因是你对用户一无所知,那么首先不要给他们shell访问权限。 如果你可以将它们限制为sftp,那么很容易就可以把它们放到他们的主目录中。