Ssh
遠端命令有不同的umask
ssh user@host "umask"
給 0174
ssh user@host
伺服器外殼的 umask 給出 0002你能解釋一下它是怎麼發生的嗎?
UPD:實際上,是 /etc/passwd 覆蓋了 umask。
從 bash 手冊頁:
當一個不是登錄 shell 的互動式 shell 啟動時,bash 讀取並執行來自 的命令
~/.bashrc
(如果該文件存在)。(…) 當作為互動式登錄 shell 或帶有選項的非互動式 shell 呼叫時--login
,它首先嘗試按順序從/etc/profile
and 讀取和執行命令~/.profile
。在您的第一個命令 (
ssh user@host "umask"
) 中,它不是登錄 shell,在第二種情況下,它是。因此,請檢查您的~/.bashrc
文件以獲取umask 0002
命令。