Permissions A la mode
If you omit the MASK argument to "sysopen", Perl uses the
octal value 0666. The normal MASK to use for executables
and directories should be 0777, and for anything else,
0666.
Why so permissive? Well, it isn't really. The MASK will
be modified by your process's current "umask". A umask is
a number representing disabled permissions bits; that is,
bits that will not be turned on in the created files' per
missions field.
For example, if your "umask" were 027, then the 020 part
would disable the group from writing, and the 007 part
would disable others from reading, writing, or executing.
Under these conditions, passing "sysopen" 0666 would cre
ate a file with mode 0640, since "0666 & ~027" is 0640.
You should seldom use the MASK argument to "sysopen()".
That takes away the user's freedom to choose what permis
sion new files will have. Denying choice is almost always
a bad thing. One exception would be for cases where sen
sitive or private data is being stored, such as with mail
folders, cookie files, and internal temporary files.
Abigail |