Dav*_*vid 22 users tar permissions
我想创建一个 tar 文件,其内容属于一个 owner:group 对,在创建该文件的系统上不存在该对。
这是我尝试过的方向:
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
Run Code Online (Sandbox Code Playgroud)
运行此命令时,出现以下错误:
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
有没有办法强制 tar 接受所有者:组,即使它们都不存在于创建文件的系统上?
Nyk*_*kin 21
Linux 在内部不使用所有者和组名称,而是使用数字 - UID 和 GID。为方便用户,用户和组名称从 /etc/passwd 和 /etc/group 文件的内容映射。由于您在任何这些文件中都没有“otherowner”条目,因此 Linux 实际上并不知道应该将哪个 UID 和 GID 分配给文件。让我们尝试传递一个数字:
$ tar cf archive.tar test.c --owner=0 --group=0
$ tar -tvf archive.tar
-rw-rw-r-- root/root 45 2013-01-10 15:06 test.c
$ tar cf archive.tar test.c --owner=543543 --group=543543
$ tar -tvf archive.tar
-rw-rw-r-- 543543/543543 45 2013-01-10 15:06 test.c
Run Code Online (Sandbox Code Playgroud)
它似乎工作。