在单独的unix环境中执行terminal命令

时间:2012-10-29 13:46:53

标签: linux bash web-applications chroot lxc

我正在编写一个web应用程序,用户可以在服务器上执行git,bzr和hg命令。 基本上,用户将git / bzr / hg命令写入html表单,点击按钮,命令发送到服务器,并在用户拥有的目录中执行。

如何确保安全?我需要能够执行bash命令,该命令只能访问和更改一个特定目录。并且优选地,执行命令的目录不应包含其他文件。我认为这对chroot来说是必要的。

1 个答案:

答案 0 :(得分:0)

与用户输入一样,在将其进一步传递给任何命令之前进行检查。

  • 是否是有效的git / bzr / hg子命令
  • 是否有分号和其他不相关的命令
  • ...

您可以尝试在受限制的shell(bash -r)中运行命令,这可以防止一些事情。

更安全但更复杂的解决方案当然是chroot甚至更好的虚拟机。