当我们在服务器上解压文件时,由于我们无法获取root权限,可能会出现以下问题:
Z:\MSD6308\Supernova_Game2048\target\fs\template\rootfs_3.1.10.tar.gz: 无法创建符号链接
Z:\MSD6308\Supernova_Game2048\target\fs\template\rootfs_3.1.10\rootfs\init! 客户端没有所需的特权。
Z:\MSD6308\Supernova_Game2048\target\fs\template\rootfs_3.1.10.tar.gz: 无法创建符号链接 Z:\MSD6308\Supernova_Game2048\target\fs\template\rootfs_3.1.10\rootfs\bin\linux64! 客户端没有所需的特权。
这个时候可以尝试使用fakeroot 命令;
例如: fakeroot tar zxf a.tat.gz
或者直接执行:fakeroot
这个时候用户的权限信息会改变,如下:
root@TRANSFORMERS:~#
此时执行其他解压命令就不会报错了,执行完解压后可以恢复到正常状态:
使用:exit 即可.
剪短的解释:
fakeroot 可以用来模拟 root 权限,以便建立特定权限与档案拥有者的压缩文件案(tar, ar, .deb 等)。透过 LD_PRELOAD 的 dynamic loader 功能,用户不必实际拥有 root 权限。
fakeroot不能获得root的权限,sudo可以。
fakeroot只是伪装成root,它不能改变需要root权限才能改变的文件,它只是让程序执行时按照有root权限的情况来运行,而对文件的操作实际上是在普通用户下进行的。