我有一个 tarball,它包含的文件没有正确的用户和组所有权。文件归所有人所有jenkins:jenkins
,我希望他们归所有人所有naftuli:othergroup
。
有没有办法让我就地编辑 tarball 以便它包含的文件归naftuli:othergroup
.
我面临的问题是,在创建 tarball 时,jenkins
用户chown
对不同用户和组的内容没有权限。在提取时,我将有权像用户提到的那样创建这些文件,因此我需要编辑 tarball 中的用户 ID 和组 ID。
您无法在提取时显式更改权限,但可以在创建时将首选身份放入 tarball 中(即使不作为 运行root
)。
tar cvf /tmp/tarball.tar --owner=naftuli --group othergroup files...
Run Code Online (Sandbox Code Playgroud)
如果源系统不知道您的帐户详细信息,您可以在名称后添加首选 uid 和 gid(例如--owner=naftuli:3000
)。
或者,如果您已经有一个 tarball,您可以以您自己的身份提取 jenkins 创建的文件 ( naftuli:othergroup
),并且因为您不是,所以root
这些文件将归您所有。
Archive::Tar或类似软件将是一种方法。
% touch foo
% tar cvf x foo
foo
% tar tvf x
-rw-rw-r-- 1 jdoe12 jdoe12 0 May 6 20:36 foo
% perl -MArchive::Tar -e '$t=Archive::Tar->new;$t->read("x");$t->chown("foo","root");$t->write("y")'
% tar tvf y
-rw-rw-r-- 1 root jdoe12 0 May 6 20:36 foo
%
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4340 次 |
最近记录: |