以这种方式使用 C“shell 模拟器”让用户向内核发送命令(在 linux 中)是否有任何限制?作为一个事后思考的问题,如果您将用户设置为没有 shell 访问权限,是什么阻止他们使用类似的东西与内核交互?(比如说通过 php 从 shell_exec 运行程序)?
(通过限制用户,我的意思是在 /etc/passwd 中)谢谢
好的,这里有几个问题。
首先,popen 作为一种模拟 shell 的方式并不是非常令人满意,因为您将无法创建自己的管道,并且您将不断地与权限和类似的事情作斗争。
其次,无论如何,popen 并不能特别保护您免受恶意命令的侵害。
您真正想要的是使用受限制的 shell。
更新
在回答你的第二个问题时,几乎没有。这就是为什么你应该非常小心地使用它。