Search code examples
goumask

Reading default FileMode when using os.O_CREATE


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?


Solution

  • 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.