Centos

提取 tgz 文件後權限更改

  • July 19, 2018

在提取tgz文件時,我注意到權限更改為奇怪的東西!tgz 文件屬於 root:root 但是,該文件夾屬於 502:games

[root@rocks7 common]# ls -l
-rw-r--r-- 1 root root 4779534 May  2  2012 scalapack-2.0.2.tgz
[root@rocks7 common]# tar xf scalapack-2.0.2.tgz
[root@rocks7 common]# 
[root@rocks7 common]# ls -l
total 98576
drwxr-xr-x 10  502 games     4096 May  2  2012 scalapack-2.0.2
-rw-r--r--  1 root root   4779534 May  2  2012 scalapack-2.0.2.tgz

這裡有什麼問題?

tarball 包含一個scalapack-2.0.2由使用者 id 502 擁有的目錄,以及對應於遊戲組(或者,也許是遊戲組的名稱)的任何組 id。您可以通過執行看到這一點

tar tvf scalapack-2.0.2.tgz

除了文件內容之外,Tar 存檔還儲存所有權和權限;由於您是以 root 身份提取的,因此該元數據將應用於提取的文件。tarball 本身的所有權對提取數據的所有權沒有影響。

由於您正在執行 CentOS,因此您可能正在執行 GNU tar,您可以使用--no-same-owner--no-same-permissions選項來提取 tarball,而無需應用儲存的所有權和權限。其他tar實現可能有類似的選項(例如 -oFreeBSDtar上)。

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