百度使我饒彎路

MasterPoser發表於2021-04-08

起因

用Go的時候我想建立一個日誌檔案用了os.OpenFile,然後我給的 777許可權但是給我得到的實際許可權是411我當時就矇蔽了

百度開始

首先先百度一下os.OpenFile為什麼給的許可權和實際生成的不符合?
百度告訴我是umask的原因。 問題來了umask又是個啥東西?
繼續百度,得到結果umask是linux 作業系統對於許可權處理的有這麼一個機制

由許可權掩碼umask所確定的。它的功能可以說與chmod剛好相反的,代表預設拿走的也就是說不要的許可權

懂了這個東西以後 開始解決問題 首先要讓umask變成0,在重新賦予許可權(這是百度說的不是我說的)。
最後在實現效果了以後 我又回想umask只和設定預設許可權的時候有用,和我賦予許可權有什麼關係? 我開始瘋狂驗證猜想,最後得出結論
我給許可權的時候沒有寫0777導致出現了問題。但是我為了解決這個問題,饒了好遠的路!

最後

一定要理性百度,切行切珍稀!

參考文章 :
Linux下的許可權掩碼umask
go新建檔案許可權與設定不符

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章