Centos
提取 tgz 文件後權限更改
在提取
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
實現可能有類似的選項(例如-o
在FreeBSDtar
上)。