As an alternative to giving a symbolic mode, you can give an octal (base 8) number that represents the mode.
The permissions granted to the user, to other users in the file’s group, and to other users not in the file’s group each require three bits: one bit for read, one for write, and one for execute/search permission. These three bits are represented as one octal digit; for example, if all three are present, the resulting 111 (in binary) is represented as the digit 7 (in octal). The three special mode bits also require one bit each, and they are as a group represented as another octal digit. Here is how the bits are arranged, starting with the highest valued bit:
Value in Corresponding Mode Mode Bit Special mode bits: 4000 Set user ID 2000 Set group ID 1000 Restricted deletion flag or sticky bit The file's owner: 400 Read 200 Write 100 Execute/search Other users in the file's group: 40 Read 20 Write 10 Execute/search Other users not in the file's group: 4 Read 2 Write 1 Execute/search
For example, numeric mode ‘
4751’ corresponds to symbolic mode
u=srwx,g=rx,o=x’, and numeric mode ‘
664’ corresponds to symbolic mode
ug=rw,o=r’. Numeric mode ‘
0’ corresponds to symbolic mode
A numeric mode is usually shorter than the corresponding symbolic mode, but it is limited in that normally it cannot take into account the previous file mode bits; it can only set them absolutely. The set-user-ID and set-group-ID bits of directories are an exception to this general limitation. See Directory Setuid and Setgid. Also, operator numeric modes can take previous file mode bits into account. See Operator Numeric Modes.
Numeric modes are always interpreted in octal; you do not have to add a
0’, as you do in C. Mode ‘
0055’ is the same as
55’. However, modes of five digits or more, such as
00055’, are sometimes special (see Directory Setuid and Setgid).