Permissions

強制 tar 文件內容的所有者和組?

  • January 25, 2019

我想創建一個 tar 文件,其內容屬於所有者:組對,該對在創建文件的系統上不存在。

這是我嘗試過的方向:

tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata

執行此命令時,出現以下錯誤:

tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now

有沒有辦法強制 tar 接受所有者:組,即使它們都不存在於創建文件的系統上?

Linux 不使用內部所有者和組名稱,而是使用數字 - UID 和 GID。為了方便使用者,使用者和組名是從 /etc/passwd 和 /etc/group 文件的內容映射而來的。由於您在任何這些文件中都沒有“其他所有者”條目,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

它似乎工作。

引用自:https://unix.stackexchange.com/questions/61004