
我在 Windows 中使用 7zip 打包一個包含很多子資料夾和檔案的資料夾,上傳到 VPS,然後執行命令:
tar -xvzf file.tar.gz
那麼所有解壓縮後的檔案和資料夾的權限都是777。
答案1
如果您以普通用戶身份運行tar(1)
,它將umask
預設應用您的。如果您tar(1)
以身份運行root
,那麼您可以提供--no-same-permissions
命令列選項來要求tar(1)
尊重umask
.
所以:要嘛以普通用戶身分運行:
umask 022
tar zxvf file.tar.gz
或將其運行為root
:
umask 022
tar zxvf file.tar.gz --no-same-permissions
您可能想堅持umask 022
使用~/.bashrc
, ~/.bash_profile
, 或~/.profile
。 (bash(1)
有關啟動文件的完整詳細信息,請參閱線上說明頁面。這很複雜。)
有關詳細信息,umask
請參閱 shell 的線上說明頁、umask(2)
系統呼叫線上說明頁或umask(1posix)
POSIX 提供的實用程式線上說明頁(如果已manpages-posix
安裝)。
答案2
在目錄的根目錄中執行以下命令來設定目錄和檔案所需的權限:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
注意右花括號和反斜線之間的空格
答案3
如果您使用大寫的 X,則chmod
可以使用它來僅設定目錄的執行權限。 IE
chmod -R ugo+X .
答案4
尋找 。 -type f -exec chmod 644 {} \;