我正在用C语言在UNIX环境中开发一个with服务器。目前,我已经完成了对进程的监禁,但是现在我不能使用syslog和登录到一个文件选项,这基本上是由于改变了根路径。
程序的新根路径是它的目录。为了使用这些函数并再次返回监狱根路径,我无法从它逃到真正的根"/“。
对此还有其他选择或解决办法吗?
发布于 2016-10-30 17:38:17
使用chroot()的全部目的是使真正的根不可访问,所以非常简单的公式:如果您可以破坏它,您就不需要它。
因此,您应该让syslog可以从chroot环境中访问。多么?只有openlog()在chroot()之前。在此之后,您可以使用syslog(),即使您不能再使用openlog()了。
发布于 2016-10-30 17:27:26
如果您的根目录是工作目录,不要使用chroot,并删除您使用的所有相对路径的“/”,或者添加“.”。在这之前。只有当您想要完全工作时才使用chroot,就好像它是您的系统根一样。
发布于 2016-10-30 21:38:31
如果两个env位于同一个文件系统上,则可以使用硬链接,以便在chroot‘’ed env下可以看到“外部”的文件。配置所有东西来工作可能不是那么容易,但这是可能的。改变你的观点:不要试图逃避色度,试着将事物融入其中。
https://stackoverflow.com/questions/40331580
复制相似问题