我正尝试在我的情侣网站上设置新的VPS。
nginx,php-fpm等安装所需的服务。
我为我的网站设置了一个nginx服务器块(虚拟主机),然后尝试创build一个用于testing的php文件。 一切正常,但是我想尝试echo file_get_contents('/etc/passwd')文件进行安全检查。 而且它的工作,一个test.php文件可以访问我的VPS etc / passwd文件等等。
在我尝试echo shell_exec('ls /')并显示我的根文件夹后。
那这是正常的吗? 或者我怎样才能防止这一点。 我想要拒绝访问所有除了/var/www的www-data用户运行PHP代码。
对不起,我的英语不好。
谢谢。
passwd文件是所有用户都可读的。 这是非常正常的。 与/相同。 程序需要访问/ etc / passwd来将用户名映射到ID。 实际的密码存储在更受限制的/ etc / shadow中。
如果由于某种原因,你不希望程序看到这些文件,你应该看看创build一个chroot监狱,它提供了自己的假根目录和所有需要的文件的单独副本。 但是对于大多数服务来说这是不必要
您可以通过设置和使用AppArmour或SELinux来阻止访问被禁止的边界。
你在这里说的是:“我把系统上运行的脚本访问到系统上的世界可读文件。”
是的,是的。