从PHP执行root命令......有安全的方法吗?

Cra*_*her 8 php command root

我正在考虑制作一个基于Web的小型Linux控制面板(只是为了好玩).

我想到的第一个潜在问题是,我需要给Apache的用户root级权限来运行这些命令,这会危及整个系统的安全性.

为系统安装专用Web服务器并不是一个真正的选择.

也许我可以运行第二个Apache实例(为普通用户保留第一个)但是如果可能的话甚至不确定.

那么,你们想的是什么?我最好的选择是什么?

提前感谢任何输入.

编辑:好的家伙感谢所有的建议,我会记住它们.

Pau*_*aul 5

编写可以作为root运行的特定脚本并使用setuid位来执行此操作,以便Apache可以以root身份运行这些脚本.IE

#! /usr/bin/php (or wherever your php binary is)
<?php
   // Some PHP code that takes in very limited user input,
   // validates it carefully, and does a sequence of actions
   // that you need to run as root.

   // This could easily be a shell script (or whatever else you want)
   // instead of PHP. That might be preferable in many situations.
?>
Run Code Online (Sandbox Code Playgroud)

然后确保该脚本由root用户拥有,并由Apache运行的用户分组:

chown root:www-data myscript.php
Run Code Online (Sandbox Code Playgroud)

然后让它作为所有者运行:

chmod u+s myscript.php
Run Code Online (Sandbox Code Playgroud)

并确保Apache可以执行它:

chmod g+x myscript.php
Run Code Online (Sandbox Code Playgroud)