【问题标题】:What's the best way to write to linux system files using PHP使用 PHP 写入 linux 系统文件的最佳方法是什么
【发布时间】:2010-07-07 14:09:31
【问题描述】:

我们需要一些脚本来根据用户输入为网络服务(如 DHCP、DNS 和网络)生成配置文件。这些需要 root 访问权限,但我不知道如何以 root 身份运行 PHP 应用程序。它通过公共网络界面运行。

【问题讨论】:

    标签: php security bash networking


    【解决方案1】:

    Awww... 授予 PHP 或 Web 服务器的 root 权限绝不是一个好习惯,无论您的设置多么安全。

    让 PHP 将更改的配置文件写入临时目录如何:

    /home/system/transfer/apache/httpd.conf
    /home/system/transfer/system/dhcp.conf
    /home/system/transfer/mysql/my.ini
    

    还有一个运行 shell 脚本的 sudo cron 作业从那里获取它们,并将它们复制到正确的位置(还负责重新启动服务等等),每五分钟?

    这会比让 Web/PHP 用户直接编写配置文件更安全一些,而且设置允许将配置文件回滚到早期版本的版本控制过程相对容易。

    【讨论】:

    • 他可以在它的原始位置创建一个链接并将配置文件移动到 temp-dir。在这种情况下,他不需要使用 cron。
    • 假设您使用 Linux:我不会运行 cron 作业,而是使用 incron 来监视目录,并且不要让 PHP 编写实际的配置文件,而只编写来自用户输入的数据。然后 incron 作业使用该数据创建实际的配置文件。
    • @Florian 是的,这就是我的意思。 @GOsha 是的,但这仍然不能解决停止/重新启动服务、管理版本等问题。此外,迁移到另一台机器会很痛苦。保留配置文件并让 cron 工作来完成管理工作听起来对我更有吸引力。
    【解决方案2】:

    不要给 PHP 脚本 root 访问权限,而是让配置文件可由网络用户写入。

    【讨论】:

      【解决方案3】:
      1. 以 root 用户身份运行 apache。
      2. 您的网站地址是什么?

      【讨论】:

      • 很有趣...但请发表评论。
      猜你喜欢
      • 2014-02-13
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2011-06-15
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多