fakeroot
简介
fakeroot ubuntu manpage的解释如下
fakeroot - run a command in an environment faking root privileges for file manipulation
fakeroot建立一种环境,在里边运行的命令可以以假的root权限操作文件。 读完上面这一句还是不太明白它有什么用,到底怎么用。
下面又有一句
This is useful for allowing users to create archives (tar, ar, .deb
etc.) with files in them with root permissions/ownership. Without fakeroot one would need
to have root privileges to create the constituent files of the archives with the correct
permissions and ownership, and then pack them up, or one would have to construct the
archives directly, without using the archiver.
它主要用来打包或者用来生成image,假如没有fakeroot,要做具有root权限文件的包的话,需要做的事情既多又麻烦, 首先切换到root权限,修改目录中所有文件为root权限,打包, 完了之后还需要把权限改回来。
有fakeroot就很方便了,在fakeroot环境中,只需要做打包动作,里边的所有文件自动的都是root权限。
fakeroot使用
rootfs目录是一份根文件系统目录,它的用户和组是本机登陆用户
进入fakeroot环境,文件的owner和group自动变为root。 exit 退出fakeroot, 文件的owner和group还原。
退出fakeroot后就返回普通用户状态,fakeroot只在运行过程中起作用。
在fakeroot中打包
可以看到包内的uid和gid是root用户的id。
所以这份image使用时他内部文件的权限就是root权限。
fakeroot的一般用法是fakeroot – script, script是shell脚本,把需要再root权限执行的命令写在脚本里边。
参考
https://blog.kghost.info/2011/02/11/使用fakeroot模拟root权限执行程序/