3 回答

TA貢獻1155條經驗 獲得超0個贊
在他的答案中的說法并不是真的正確,而且它談論的是十進制數字,然后使用八進制數字,正如@SashaCrofter在其評論中正確指出的那樣。
實際上,您的權限值采用什么形式都沒有關系,只要它表示明智的Unix權限即可。
由于對POSIX文件系統權限位進來位的三元組-所有者,組和其他人訪問三位,加上調節劑(如粘滯位)的三位, -這是習慣使用八進制數來表示權限,因為每個數字在八進制數表示一個三位值。
因此,當您在Go代碼中使用0700時,前導0會被剝奪,只是在告訴解析器它看到一個八進制數字文字,而以下三個字母依次代表所有者,組和其他權限。例如,如果您還想設置組粘性位以及使文件系統對象組可讀和可執行,則應指定02750,依此類推。
請注意,文件系統對象獲取的實際許可權會通過umask
創建對象的進程的活動進行進一步調制。
為了更好地掌握這些主題,最好閱讀chmod
類Unix操作系統的手冊頁和一般文獻。

TA貢獻1856條經驗 獲得超17個贊
您可以將umask重置為0。我將其稱為主文件中的第一件事
syscall.Umask(0)
例子
_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)
結果
/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2
- 3 回答
- 0 關注
- 343 瀏覽
添加回答
舉報