The Posix version of std.file.write() creates files with the permission 0660. I think most users will expect it to be the conventional 0666, which is the default for the C fopen() function.
std.file.copy() also uses 0660, whereas the Posix cp command preserves the permissions of the source file (as well as ownership and timestamps).
The security aspect should be taken care of by the process' umask, which in the vast majority of cases will be 0022. (The resulting file will then have permissions 0644.)
Comment #1 by andrei — 2009-10-29T06:04:42Z
Good catch, thanks.
Comment #2 by bugzilla — 2009-10-29T06:21:23Z
I just grepped through all of Phobos for "0660", and I see that the std.mmfile module also uses these permissions. I'm not sure whether this should be changed, though, because I haven't really used memory-mapped files and don't know how they are used. Just thought I should mention it.