我最近收到一个项目,我想知道如何以正确和安全的方式做一些事情。修改系统配置文件并通过网络界面使用系统命令
的情况如下:
有类来管理Linux用户,MySQL用户和数据库和Apache虚拟主机。他们习惯于在小型共享主机环境中自动添加用户。这些类然后用于命令行脚本中,为系统管理员提供一个很好的界面。
我现在要求构建一个简单的Web界面来为管理员提供GUI,然后直接向用户提供一些功能(更改他们的Unix密码和其他日常程序)。
我不知道如何实现Web应用程序。它将在Apache(使用apache用户)中运行,但类需要访问只能由root用户进行必要更改(例如useradd和虚拟主机配置文件)的文件和命令。在使用命令行脚本时,这不是一个问题,因为它们是在正确的用户下运行的。给apache用户授权可能会很危险。
通过Web应用程序允许这种最佳技术是什么?如果可能的话,我想直接使用这些类(这比调用命令行脚本(如外部进程和解析输出)更方便),但我无法看到如何以安全的方式执行此操作。
我看到现有产品做类似的事情(webmin,eBox,...),但我不知道它是如何工作的。
PS:我收到的课程很简单,但程序设计很差,几乎没有评论。他们实际上是在PHP中,但我打算将它们移植到python。然后,我想使用Django框架来构建Web管理界面。
如果问题不够清楚,谢谢并抱歉。
编辑:我读了一点关于webmin,看到它使用自己的迷你web服务器(称为miniserv.pl)。这似乎是一个很好的解决方案。运行此服务器的用户应具有修改这些文件并使用这些命令的权限。我怎么能做一些类似于Django的东西?使用开发服务器?使用CherryPy这样的产品会更好吗?