用root来解决问题:是否可以设置uid?

是否有可能告诉tar解压档案,并设置uid / gid到一个特定的,当你作为运行焦油(当使用厨师)?

我已经知道的事情:

  • 我可以使用-o作为根,然后chown uid:gid
  • --owner--owner显然只在添加文件时才起作用,而不是在解包时起作用

能够在解包时指定所有者是非常方便的。 那可能吗 ?

奇怪的是,你可以使用你的tar档案更接近你想要的(GNU) cpio 。 GNU cpio支持tar格式文件,并提供-R命令行选项来设置用户和提取文件组。 该选项控制所有文件的所有权,而不是特定的文件。

所有这一切意味着你可以运行,作为根,下面的命令…

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

…它将提取用户user1和group group1拥有的所有文件。

您可以作为特定用户运行厨师执行资源:

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

执行资源文档