Что такое umask
Umask — параметр операционной системы, регулирующий дискреционные права доступа, которые присваиваются новым (создаваемым) файловым объектам (файлам и каталогам) по умолчанию.
Пример масок:
- режим полного доступа для каталогов — 777;
- режим разрешения чтения и записи для файлов — 666.
Umask указывает, какие биты следует сбросить в маске доступа создаваемого файлового объекта. Каждый установленный бит umask запрещает выставление соответствующего бита в маске. Исключением из этого запрета является бит исполняемости для файлов, который зависит от создающей программы (трансляторы ставят бит исполняемости на создаваемые файлы, другие программы — нет), а для каталогов следует общему правилу.
umask 0 означает, что следует (можно) выставить все биты прав (rwxrwxrwx), umask 777 запрещает выставление любых прав.
Модуль pam_umask
В операционной системе специального назначения Astra Linux Special Edition выбор значения umask осуществляет модуль pam_umask. Модуль пытается получить значение маски из следующих мест:
Секция |
---|
|
- значение umask= переданное как аргумент самому pam_umask.so
- umask= из поля GECOS пользователя
- значение UMASK= в /etc/default/login
- значение UMASK в /etc/login.defs
|
Активация модуля pam_umask
Для активации модуля необходимо внести в конец файла /etc/pam.d/common-session строку:
Блок кода |
---|
title | /etc/pam.d/common-session |
---|
|
|
Для установки глобальной маски прав доступа, можно передать параметр pam_umask.so:
Блок кода |
---|
title | /etc/pam.d/common-session |
---|
|
|
Или указать значение в файле /etc/default/login (создать файл, если его нет):
Также можно изменить данный параметр в файле /etc/login.defs.
Для отдельного пользователя в поле GECOS этого пользователя можно указать значение маски командой:
Command |
---|
sudo chfn --other='umask=002' username |
Чтобы изменения вступили в силу необходимо перезапустить пользовательскую сессию.
Команда umask
Получить текущее значение umask в текущей сессии можно командой:
Изменить значение umask в текущей сессии можно командой:
Command |
---|
umask <новое_значение> |