我正在考虑制作一个基于Web的小型Linux控制面板(只是为了好玩).
我想到的第一个潜在问题是,我需要给Apache的用户root级权限来运行这些命令,这会危及整个系统的安全性.
为系统安装专用Web服务器并不是一个真正的选择.
也许我可以运行第二个Apache实例(为普通用户保留第一个)但是如果可能的话甚至不确定.
那么,你们想的是什么?我最好的选择是什么?
提前感谢任何输入.
编辑:好的家伙感谢所有的建议,我会记住它们.
编写可以作为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)
| 归档时间: |
|
| 查看次数: |
4888 次 |
| 最近记录: |