PHP可以在服务器上移动并编辑根系统文件吗?

这可能看起来像一个愚蠢的问题,但我已经谷歌无济于事。

我一直认为PHP是创builddynamic数据库驱动的网站的语言,我从来没有想过使用它来移动实际服务器上的系统文件(因为我从来没有这个需要)。 我的问题是:

  1. 可以标准的PHP 5.3.xx安装移动,复制或编辑系统文件(我使用Linux服务器为例)在/ bin或可能/ etc?
  2. 这是一个好主意/练习吗?

我从来没有想过,如果一个恶意的黑客能够将一些PHP注入一个站点,那么他们将被有效地授予对整个Linux服务器(及其所有系统文件)的访问权限。 我只想到PHP是在/ vhosts目录下运行的(可能是天真的)。

对不起,如果这听起来像一个愚蠢的问题,但我不能真的testing我的理论,就好像我的老板看到我写/上传/执行一个脚本,在Linux文件系统中移动的东西,我会死的。

谢谢你们的帮助! 🙂

PHP可以将您的服务器作为允许它执行的用户帐户的权限。 PHP作为一种语言不受限制(至少在权限方面),它是受限制的用户帐户。

这就是为什么人们通常会在这里创建一个Apache / nginx / insert web服务器的用户来运行,只给它权限来操纵与web服务器相关的文件和目录。 如果你不给这个用户对/bin/etc访问权限,那么它不能做任何会影响他们的事情。

这是一个好主意/练习吗?

通常不会。 将系统管理保留给您的系统管理员,而不是请求您的PHP脚本的用户。

PHP可以尝试调用许多系统命令来移动或直接编辑硬盘上的文件。 它是否成功取决于安全设置。

让我们假设你通过apache和apache运行的PHP被设置为以用户www-data的形式运行所有进程 – 这是Debian等操作系统的默认设置。 如果您授予用户www-data权限来编辑/ etc,那么是的,PHP可以读取和写入/ etc中的文件

你所确定的只有一个主要的缺点, 安全性,安全性和安全性。 你最好还是确定你的PHP工作正常,因为一个错误的写入文件现在可以取消整个服务器。

我也绝对不会在你的老板后面练习你的老板。 看看获得一个便宜的虚拟机,无论是其他地方或在您自己的VirtualBox的机器curtsey托管

是的,它可以。 它是一种编程语言,它可以做任何事情

这完全取决于谁在运行它。 如果它的root它可以做任何事情。 如果它只是一个正常的用户鲍勃 。 在家庭/home/bob家庭之外做不了多少事情。 Apache也像鲍勃Apache通常在www-datawwwapache用户名下运行。