umask - Displays or sets the file mode creation mask
umask [-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.
Interfaces documented on this reference page conform to
industry standards as follows:
umask: XCU5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Produce symbolic output.
Output is produced in a format that is recognized
on a subsequent invocation of umask as a mask
operand to restore the previous 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.
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 creation 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.
The umask command sets the file mode creation mask of
the current shell execution environment to the value specified
by the mask operand. 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.
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 negative 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.
If umask is called in a subshell or separate utility execution
environment, it does not affect the file mode creation
mask of the caller's environment. A separate execution
environment could be one of the following:
(umask 002) nohup umask ... find . -exec umask ... \;
The following exit values are returned: The file mode creation
mask was successfully changed, or no mask operand
was supplied. An error occurred.
To set the file mode creation mask so that subsequently
created files have their write by all others bit cleared,
enter either of the following 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 current 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 current 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 [Toc] [Back] The following environment variables affect the execution
of umask: Provides 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 variables
contain an invalid setting, the utility behaves as if none
of the variables had been defined. If set to a non-empty
string value, overrides 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 multibyte
characters in arguments). Determines the locale for the
format and contents of diagnostic messages written to
standard error. Determines the location of message catalogues
for the processing of LC_MESSAGES.
Commands: chmod(1)
Functions: chmod(2), umask(2)
Standards: standards(5)
umask(1)
[ Back ] |