我想构建一个基于Web的前端来管理/管理我的Linux机器。例如。我希望能够添加用户,管理文件系统和所有这些东西。可以把它想象成一个cPanel克隆,但更多的是系统管理员而不是网络管理员。
我正在考虑创建一个在我的盒子上运行并执行所有系统级别任务的服务。通过这种方式,我可以清楚地分离基于Web的前端和实际逻辑。服务器页面可以通过这种方式调用我的专用服务器或队列任务。但是,我不确定这是不是最好的方法。
我想另一个重要的问题是,在构建这样的东西时我将如何处理安全问题?
PS:这只是一个宠物项目和学习经历,所以我对做类似事情的现有解决方案不感兴趣。
答案 0 :(得分:1)
您的解决方案似乎是解决“根”问题的一个非常明智的解决方案。
一些建议:
答案 1 :(得分:1)
让专门的服务守护进程作为一个独特的用户运行 - 让我们称之为'managerd'。设置/ etc / sudoers文件,以便'managerd'可以在没有密码的情况下以root身份执行您希望它能够运行的各种命令。
让Web服务器删除“触发器”文件,其中包含要在模式为“770”的目录中运行的命令,其中只有Web服务器用户和“managerd”是其成员的组。确保'managerd'在执行命令之前验证文件是否具有正确的所有权。
确保Web界面已锁定 - 仅通过HTTPS运行,需要身份验证,如果可能,请放入特定于IP的ACL,以便您只能提前从已知位置访问它。