2011-01-13 51 views
3

我最近收到一个项目,我想知道如何以正确和安全的方式做一些事情。修改系统配置文件并通过网络界面使用系统命令

的情况如下:

有类来管理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这样的产品会更好吗?

回答

0

你好 您可以使用WSGI兼容的Web框架(如CherryPy2)和模板引擎(如Genshi)轻松地在Python中创建Web应用程序。您可以使用'subprocess'模块来管理外部命令...

0

您可以使用sudo为apache用户root授予仅用于您的Web应用程序所需的命令/脚本的权限。