在阅读了this question的一些非常好的答案之后,我仍然很模糊你为什么要假装你是root而没有获得实际root的任何好处.
到目前为止,我可以收集到的是fakeroot用于为一个文件提供所有权,该文件在解压缩/ tar时需要是root文件.我的问题是,为什么你不能用chown做到这一点?
谷歌小组讨论here指出你需要fakeroot来编译Debian内核(如果你想从非特权用户那里做).我的评论是,你需要成为root才能编译的原因可能是因为没有为其他用户设置读取权限.如果是这样不是fakeroot允许编译的安全违规(这意味着gcc现在可以读取root用户的文件)?
这个答案here描述了实际系统调用是用用户的真实uid / gid进行的,那么fakeroot在哪里帮助呢?
fakeroot如何在Linux上阻止不需要的权限提升?如果fakeroot可以欺骗tar创建一个由root拥有的文件,为什么不用SUID做类似的事情呢?
根据我收集的内容,当您想要更改您构建为root的任何包文件的所有者时,fakeroot非常有用.但是你可以用chown做到这一点,所以我在哪里缺乏对这个组件如何被使用的理解?
解决方法:
So far, what I can gather is that fakeroot is used to give ownership to a file that needs to be root when it is unzip/tar’ed. My question, is why can’t you just do that with chown?
因为你不能用chown做到这一点,至少不能作为非root用户. (如果你是以root身份运行,你不需要fakeroot.)这就是fakeroot的重点:允许以root身份运行的程序作为普通用户运行,同时假装需要root的操作成功.
这通常在构建程序包时使用,因此正在安装的程