The umask built-in sets or prints the file mode creation mask.
Syntax
-
umask mask
-
umask [-S]
Description
If executed without the mask operand, the built-in prints the current file mode creation mask of the shell to the standard output in a form that can later be used as mask to restore the current mask.
Otherwise, the built-in sets the file mode creation mask to mask.
Options
-
-S
-
--symbolic
-
Print in the symbolic form instead of the octal integer form.
Operands
- mask
-
The new file mode creation mask either in the symbolic or octal integer form.
Octal integer form
In the octal integer form, the mask is specified as a non-negative octal integer that is the sum of the following permissions:
- 0400
-
read by owner
- 0200
-
write by owner
- 0100
-
execute/search by owner
- 0040
-
read by group
- 0020
-
write by group
- 0010
-
execute/search by group
- 0004
-
read by others
- 0002
-
write by others
- 0001
-
execute/search by others
Symbolic form
In the symbolic form, the mask is specified as a symbolic expression that denotes permissions that are not included in the mask.
The entire expression is one or more clauses separated by comma. A clause is a sequence of whos followed by one or more actions.
A who is one of:
-
u
-
owner
-
g
-
group
-
o
-
others
-
a
-
all of owner, group, and others
An empty sequence of whos is equivalent to who a
.
An action is an operator followed by permission. An operator is one of:
-
=
-
set who's permission to permission
-
+
-
add permission to who's permission
-
-
-
remove permission from who's permission
and permission is one of:
-
r
-
read
-
w
-
write
-
x
-
execute/search
-
X
-
execute/search (only if some user already has execute/search permission)
-
s
-
set-user-ID and set-group-ID
-
u
-
user’s current permissions
-
g
-
group’s current permissions
-
o
-
others' current permissions
but more than one of r
, w
, x
, X
, and s
can be specified after a
single operand.
For example, the command umask u=rwx,go+r-w
-
unmasks the user’s read, write, and execute/search permissions;
-
unmasks the group’s and others' read permission; and
-
masks the group’s and others' write permission.
Exit status
The exit status of the umask built-in is zero unless there is any error.
Notes
The umask built-in is a mandatory built-in.
The POSIX standard does not require the default output format (used when the
-S
option is not specified) to be the octal integer form.