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