我正在使用 Yocto 进行大量针对嵌入式系统的开发。
作为其最终输出,Yocto 生成文件系统的 tarball,然后将其解压到 SD 卡的 ext4 分区上,该分区成为嵌入式系统的根文件系统。
为了正确设置SD卡ext4分区上的所有权限,我目前正在使用sudo解压文件,这意味着使用root权限重复执行删除文件等操作 - 我不小心删除某些系统只是时间问题由于错误/或其他原因导致的文件。
显然,我只需要嵌入式文件系统的 root 权限,而不是我自己的机器。
是否有某种方法可以以普通用户身份解压文件并最终在生成的文件系统上获得正确的 UID?如果可以解决问题的话,改变设备的安装方式就好了。或者也许是一些 chroot 技巧?
答案1
也许的tar
选择-p
就是您正在寻找的?
从man 1 tar
:
-p, --preserve-permissions, --same-permissions
提取有关文件权限的信息(超级用户的默认值)
--numeric-owner
并且--xattrs
可能还感兴趣:
--numeric-owner
始终使用数字作为用户/组名称。--xattrs
启用扩展属性支持。