Archive
是否有沒有文件元數據的標準存檔格式?
在某些情況下,我正在開發一個類似於包管理器的實用程序,它支持以非 root 使用者身份建構包。我想確保由 root 使用者建構的包和由非 root 使用者建構的包絕對無法區分,而不是使用
tar
存檔並忽略元數據。是否有一種格式/實用程序有點像
tar
存檔中的文件和目錄不(理想情況下不能)包含權限位、時間戳和所有權相關資訊等元數據?我希望存檔由其中存在的目錄和文件以及文件內容完全描述(因此它也無法儲存符號連結或硬連結)。我也可以使用無法區分絕對路徑和相對路徑的存檔格式(即
/a/b
映射a/b
到同一事物,因為存檔的路徑概念與 Unix 路徑不同)。
使用 tar(或 cpio)時不能刪除使用者資訊,但可以強制他們避免區分誰製作了包。使用 tar 並強制使用一些參數來避免區分已建構包的使用者(請參閱 參考資料
man tar
):
-P
,--absolute-names
: 強制 tar 不刪除前導 ‘/’(這是預設完成的)。如果您不能在命令行上放置絕對路徑,那麼您提到的路徑將被保留(如果您無法在所需的根目錄中 cd,請嘗試使用 -C 或 –change-directory)--owner
:強制使用者儲存在 tar 文件中,忽略文件/目錄的實際所有者(例如 –owner=root)--group
: 強制組儲存在 tar 文件中(例如 –group=root)。--no-acls
: 避免在 tar 文件中複製您自己的 ACL--numeric-owner
,--numeric-group
: 掩蓋本地帳戶的實際名稱,僅儲存 UID/GID(如果您的強制 root 則不需要,因為 root 始終為 0)--mtime
:強制所有文件/目錄的修改時間,以掩蓋實際修改的時間請注意,具有絕對路徑的符號連結將按原樣儲存。然而,當它們指向你的包樹時,最好總是使用相對符號連結。