用户在chroot中不存在错误

时间:2014-01-09 11:29:55

标签: linux chroot

我创建了一个Web应用程序,用户可以在浏览器中运行Java代码。

我正在使用chroot在Web服务器中执行用户提交的代码。

chroot脚本中我正在安装然后卸载一些必需的目录。 这通常工作得非常好,但当我解雇连续执行请求时,如 20-30个请求,然后对于某些响应,我收到此消息/bin/su: user XXX does not exist其中 XXX 是Linux系统的用户名,我将挂载所需的目录。

对于其他人,我得到了预期的输出结果。

我担心的是“在Linux框中反复执行mountunmount是否有任何副作用?

或者Linux中是否有任何设置可以支持此配置?

2 个答案:

答案 0 :(得分:0)

要使用/bin/su,您需要获得/etc/passwd提供的用户信息。您是否已挂载该目录或(正如我所建议的)将其复制到新根目录中的/etc/

关于安装问题,是的,安装和卸载可能需要一些时间,并且不能保证是即时的(尤其是如果挂载的文件系统上的某些内容仍处于活动状态,卸载可能会明显失败)。所以也许你应该检查unmount是否失败并在那种情况下重试。

答案 1 :(得分:0)

感谢您的回复......是的,你是绝对正确的Alfe!这是连续安装/卸载的问题。我通过SSH登录到我的网络服务器检查了这一点。当我重复执行20-30个程序命令(用分号分隔)时,我在窗口上按顺序得到了所需的输出。然后我打开另一个SSH窗口,然后我再次从该窗口执行10个命令,从前一个窗口执行20个命令。当我看到输出然后在两个窗口中的一些命令时,我得到了“/ bin / bash用户XXX不存在”的消息。所以一个结论是,当我同时发出Web请求时,命令的执行(chroot / unchroot)不是同步的。这就是我收到这条消息的原因。我在Linux上不是很好。我不知道如何解决这个问题。