英文:
Reading default FileMode when using os.O_CREATE
问题
我是你的中文翻译助手,以下是翻译好的内容:
我刚开始学习Go语言,在读取默认文件权限/系统掩码方面遇到了一些问题。当然,我可以指定固定的权限:
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0600)
但是我希望程序能够以用户设置的umask
打开文件。我该如何做到这一点?
英文:
I'm new to Go, have a bit of a problem with reading default file permissions / system mask. Of course I can specify fixed permissions:
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0600)
But I would like the program to behave nicely and open a file with user's account set umask
. How can I do that?
答案1
得分: 10
它已经按照你想要的方式工作。
只需使用"0666",umask将被应用。
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0666)
对于我来说,使用umask 0022
,我得到的结果是:
$ go run x.go ; ls -l filename
-rw-r--r-- 1 ask wheel 0 May 24 00:18 filename
如果你希望文件始终无法被"other"读取,无论umask如何,可以使用0660(例如)。
英文:
It already works like you want it.
Just use "0666" and the umask will be applied.
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0666)
For me with umask 0022
I get:
$ go run x.go ; ls -l filename
-rw-r--r-- 1 ask wheel 0 May 24 00:18 filename
Use 0660 (for example) if you always want the file to be unreadable by "other", no matter the umask.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论