使用 root 解压:是否可以设置 uid?

使用 root 解压:是否可以设置 uid?

当您以 root 身份运行 tar 时(使用 chef),是否可以告诉 tar 解压存档并将 uid/gid 设置为特定的 uid/gid?

我已经知道的事情:

  • 我可以使用-oroot 身份提取,chown uid:gid然后
  • --owner并且--group显然只在添加文件时有效,而不是在解压时

如果能在拆包时指定所有者,那就太方便了。可以吗?

答案1

cpio奇怪的是,使用 (GNU)处理 tar 存档可以更接近您想要的效果。GNUcpio支持 tar 格式文件,并提供-R命令行选项来设置提取文件的用户和组。此选项控制全部文件,而不是特定文件。

所有这些意味着您可以以 root 身份运行以下命令...

cpio -iv -R user1:group1 < /path/to/myarchive.tar

...它将提取用户user1和组拥有的所有文件group1

答案2

您可以以特定用户身份运行 chef 执行资源:

execute "tar -xf /path/to/your/tarfile.tar" do
  user "someone"
end

执行资源文档

相关内容