umask(1)umask(1)NAMEumask - Displays or sets the file mode creation mask
SYNOPSISumask [-S] [mask]
Note
The C shell has a built-in version of the umask command. If you are
using the C shell, and want to guarantee that you are using the command
described here, you must specify the full path /usr/bin/umask. See the
csh(1) reference page for a description of the built-in command.
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
umask: XCU5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
OPTIONS
Produce symbolic output.
Output is produced in a format that is recognized on a subse‐
quent invocation of umask as a mask operand to restore the pre‐
vious file mode creation mask.
If the -S option is not used, output is displayed as an octal integer,
but is still usable as input on a subsequent invocation of the umask
command.
OPERANDS
A string specifying the new file mode creation mask. This string may
may be an octal value or a symbolic_mode value.
For a symbolic_mode value, the new value of the file mode cre‐
ation mask is the logical complement of the file permission bits
portion of the file mode specified by the symbolic_mode string.
In a symbolic_mode value, the characters + and - are interpreted
relative to the current file mode creation mask; + causes the
bits for the indicated permissions to be cleared in the mask; -
causes the bits for the indicated permissions to be set in the
mask.
The file mode creation mask is set to the resulting numeric
value.
In the obsolescent octal integer form of mode, the specified
bits are set in the file mode creation mask.
DESCRIPTION
The umask command sets the file mode creation mask of the current
shell execution environment to the value specified by the mask oper‐
and. This mask affects the initial value of the file permission bits of
subsequently created files.
If the mask operand is not specified, the umask command writes the
value of the invoking process's file mode creation mask to standard
output.
If the -S option is specified, the output is in the following format:
"u=%s,g=%s,o=%s\n", <owner permissions>, <group permissions>, <other
permissions>"
The three values are combinations of letters from the set {r, w, x};
the presence of a letter indicates that the corresponding bit is clear
in the file mode creation mask.
NOTES
Any mask operand such as -r, -w, -x, or anything beginning with a
hyphen, must be preceded by -- to keep it from being interpreted as a
option. Since umask affects the current shell execution environment,
it is provided as a shell regular built-in. In contrast to the nega‐
tive permission logic provided by the file mode creation mask and the
octal number form of the mask argument, the symbolic form of the mask
operand specifies those permissions that are left alone. Although the
references to octal modes are obsolescent in the ISO/IEC 9945-2:1993
standard, they are maintained for portable applications until further
notice.
RESTRICTIONS
If umask is called in a subshell or separate utility execution environ‐
ment, it does not affect the file mode creation mask of the caller's
environment. A separate execution environment could be one of the fol‐
lowing:
(umask 002) nohup umask ... find . -execumask ... \;
EXIT STATUS
The following exit values are returned: The file mode creation mask was
successfully changed, or no mask operand was supplied. An error
occurred.
EXAMPLES
To set the file mode creation mask so that subsequently created files
have their write by all others bit cleared, enter either of the follow‐
ing commands: umask a=rx,ug+w umask 002 If the file mode creation mask
was set with either of the above commands, the umask command can be
used to write out the current value of the mask. To write the value in
octal format, enter: umask
This provides the output: 0002
To write the value in symbolic format, enter: umask-S
This provides the output: u=rwx,g=rwx,o=rx The following
sequence of commands is an example of how to save the current
file mode creation mask and later restore the value using the
umask command and octal integer formats. Examine the current
value of the mask: umask
The current mask is reported as: 022 Save the current value, and
verify the saved value: SAVEMASK =`umask` echo $SAVEMASK
The saved value is reported as: 022 Change the current mask:
umask 444 Verify the change: umask The new mask is reported:
0444 Restore the previous mask: umask $SAVEMASK Verify the
restored value: umask
The value is now restored: 022
The following sequence of commands is an example of how to save
the current file mode creation mask and later restore the value
using the umask command and symbolic_mode formats. Examine the
current value of the mask: umask-S
The current mask is reported as: u=rwx,g=rx,o=rx Save the cur‐
rent value, and verify the saved value: SAVEMASK=`umask -S` echo
$SAVEMASK
The saved value is reported as: u=rwx,g=rx,o=rx Change the cur‐
rent mask: umask a= Verify the change: umask-S The new mask is
reported: u=,g=,o= Restore the previous mask: umask $SAVEMASK
Verify the restored value: umask-S
The value is now restored: u=rwx,g=rx,o=rx
To set the file mode creation mask so that subsequently created
files have all their write bits cleared, enter: umask-- -w
ENVIRONMENT VARIABLES
The following environment variables affect the execution of umask: Pro‐
vides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from
the default locale is used. If any of the internationalization vari‐
ables contain an invalid setting, the utility behaves as if none of the
variables had been defined. If set to a non-empty string value, over‐
rides the values of all the other internationalization variables.
Determines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi‐
byte characters in arguments). Determines the locale for the format
and contents of diagnostic messages written to standard error. Deter‐
mines the location of message catalogues for the processing of LC_MES‐
SAGES.
SEE ALSO
Commands: chmod(1)
Functions: chmod(2), umask(2)
Standards: standards(5)umask(1)