fakechroot 是否存在安全漏洞?

fakechroot 是否存在安全漏洞?

我最近对 ​​有了更多的了解fakechroot。据我所知,它看起来很危险,因为它会提升用户权限,即使它是在 chroot 中。我知道,fakeroot但它不一样,因为你不能用它做任何需要 root 权限的事情。

但是,要想fakechroot在 chroot 中真正执行需要 root 权限的操作,是否意味着fakechroot普通用户有可能进入 root chroot 并在主机上以 root 身份突围?

我在他们的手册页上看到,这fakechroot不会提升用户权限,但我不确定我是否完全理解。

答案1

某些 Linux 应用程序仅在当前用户为 时才可运行root。这些应用程序中的大多数与更改 Linux 本身有关,因此受到保护,普通用户无法访问。

但是,有时候,当作为普通用户工作时,我们希望在不提升权限的情况下运行此类命令root,只是为了临时使用这些命令用于特定目的。

这些命令并不是什么安全漏洞,因为它们在当前用户下运行,并且对正在运行的 Linux 版本没有任何实际影响。


此类命令的最佳示例是fakeroot。其功能是假装当前用户是root,但实际上并没有发生这种情况。

这使得期望以 root 身份运行的程序实际上以普通用户身份运行,同时错误地认为需要 root 身份的操作成功了。

这通常用于构建包时,以便正在安装的包的安装过程可以无错误地进行,即使它运行chown root:root、或install -o root等, fakeroot也会记住它假装赋予这些文件的虚假所有权,因此后续检查所有权的操作将被视为root所有者而不是真正的所有者。

例如,这允许后续tar运行将文件存储为 root 所拥有。fakeroot在这种情况下将创建一个包含 root 和 suid 所拥有文件的 tarball。但是,除非您以 root 身份执行此操作且不升级权限,否则您将无法提取该 tarball 并保留这些权限。

fakeroot然后允许以普通用户身份运行构建,同时保留构建以 root 身份运行时所产生的效果,允许稍后重播。“真正”应用这些效果需要真正的 root 权限,而没有fakeroot提供任何获取该权限的方法。


另一个例子是fakechroot. fakechroot是一个常规的非 setuid 程序。它不会增强用户的权限,也不会降低系统的安全性。它创建了一个可以在没有 root 权限的情况下使用 chroot(8) 命令的环境,这对于调用apt安装程序包而无需 root 权限非常有用。用户以这种方式在自己的小圈子内创建了一个 root 环境,而不会影响系统上的任何其他人。

fakechroot不提供该fakeroot功能,因此需要fakechroot通过fakeroot命令调用。这两个命令是互补的,并且经常一起使用。

相关内容