ioutil.WriteFile
takes a perm
argument - if the file to write doesn't already exist, it is created with permissions perm
:
func WriteFile(filename string, data []byte, perm os.FileMode) error
In the general case, is there a recommended value to pass for the perm
argument?
More specifically, I am writing a file which is a transformation of an existing file. Is it recommended to read the permissions of the input file (using os.Stat
) and use the same permissions for the output file?
In the general case, is there a recommended value to pass for the
perm
argument?
0666
. This is the value used by Go's os.Create
, and is also the value of MODE_RW_UGO
, used when a file is created by tools such as touch
.
More specifically, I am writing a file which is a transformation of an existing file. Is it recommended to read the permissions of the input file (using
os.Stat
) and use the same permissions for the output file?
Other than pure cp
, tools don't seem to do this. As above, tools that create new files generally just use 0666
.
There is no standard permission that's "generally recommended". This is more of an OS question than a Go question.
If you're taking an existing file and transforming it to the output file, and it's logically OK for your application to have both files with the same permissions, then copying permissions sounds like a reasonable idea (unless you foresee security issues).