Права на файлы и каталоги по умолчанию (umask)

Если создать файл и каталог, то права файла будут 644, а у каталога 755.

user@debian-server:~/test$ touch file.txt
user@debian-server:~/test$ mkdir dir
user@debian-server:~/test$ ls -l
total 4
drwxr-xr-x 2 user user 4096 ноя 29 14:22 dir
-rw-r--r-- 1 user user    0 ноя 29 14:22 file.txt
1
2
3
4
5
6

Такие права получается из совмещения прав по умолчанию и маски режима. Права по умолчанию для каталогов 777, а для файлов без возможности выполнения — 666. Маску режима можно посмотреть командой umask.

user@debian-server:~/test$ umask
0022
1
2

Маска режима определяет те параметры которые будут исключены из значения п умолчанию при создании файла. Первая цифра маски игнорируется, а остальные три — маска для пользователя, группы и остальных. Расшифровываются они так же как в обычных правах для файлов. Итоговые права вычисляются следующим образом: маска инвертируется (not) и вычисляется логическое И для инвертированной маски и прав по умолчанию.

  • Для файлов: not 000 010 010 and 110 110 110 = 110 100 100 = 644
  • Для каталогов: not 000 010 010 and 111 111 111 = 111 101 101 = 755

Значение umask можно изменить. Изменение будет работать в рамках текущей сессии.

user@debian-server:~/test$ umask 077
user@debian-server:~/test$ touch file2.txt
user@debian-server:~/test$ ls -l file2.txt 
-rw------- 1 user user 0 ноя 29 14:33 file2.txt
1
2
3
4
Последниее изменение: 29.11.2023, 19:36:50