Синтаксис Опции Принцип работы umask на примере 027 Значение маски режима Настройка через конфигурационные файлы Настройка через файл /etc/profile Настройка через файл /etc/bashrc Настройка через файл /etc/profile.d/custom-umask.sh Настройка через файл /etc/login.defs Настройка через файл /etc/pam.d/common-session Просмотр текущего значения umask
Окружение
Umask (от англ. user file creation mode mask — «маска режима создания файлов») — это стандартный механизм в POSIX-системах, который определяет базовые права доступа для новых файлов и директорий. Umask не задаёт права напрямую, а указывает, какие биты нужно заблокировать. Чем выше цифра в umask, тем строже ограничения.
Синтаксис команды в восьмеричном виде:
umask [опции] <маска_в_восьмеричном_виде>
Синтаксис команды в символьном виде:
umask [опции] u=права,g=права,o=права
-p
umask -p umask 0022
-S
umask -S u=rwx,g=rx,o=rx
umask состоит из трёх цифр в восьмеричной системе, каждая из которых отвечает за запрет определённых прав:
0 — права владельца файла,
2 — права группы,
7 — права остальных пользователей.
Каждая цифра указывает, какие биты запрещены.
Алгоритм расчета итоговых прав:
1. Инвертируйте umask (вычтите каждую цифру из 7):
~027 = (7-0)(7-2)(7-7) = 750
2. Примените побитовое И (&) с исходными правами (666 — для файлов, 777 — для директорий):
666 & 750 = 640
для директорий:
777 & 750 = 750
Результаты можно представить в виде таблицы:
Значение маски режима можно представить в виде таблицы:
---
--x
-w-
-wx
r--
r-x
rw-
rwx
umask в /etc/profile влияет на всех пользователей, но только при логине, независимо от оболочки (Bash, Zsh, Ksh и др.). Если пользователь входит в систему (через SSH, консоль, графический логин), этот файл выполнится. Но если пользователь запускает не-логин-shell (например, открывает новый терминал в GUI), /etc/profile не сработает.
sudo nano /etc/profile
Добавьте в конец файла:
umask 027
Или вариант с проверкой:
if [ "$(id -u)" -ge 1000 ]; then umask 027 else umask 022 fi
где:
umask 027 — для обычных пользователей (UID ≥ 1000);
umask 022 — для системных пользователей (включая root).
umask 022
sudo nano /etc/bashrc
Добавьте проверку, как в /etc/profile:
Внесение строки umask 027 в файл /etc/bashrc позволит установить для всех пользователей в системе umask равный 027. Данное значение будет устанавливаться для каждого пользователя, запустившего оболочку bash. Но если пользователь не использует bash, а использует zsh, то данный параметр для него работать не будет.
sudo nano /etc/profile.d/umask.sh
Добавьте:
# Устанавливаем umask 027 для обычных пользователей [ "$(id -u)" -ge 1000 ] && umask 027
Сделайте файл исполняемым:
sudo chmod +x /etc/profile.d/umask.sh
Преимущество:
не требует правки системных файлов,
легко управлять и отключать.
Umask в /etc/login.defs влияет не только на root, но и на всех пользователей (существующие и создаваемые). UMASK из login.defs применяется только:
при создании новых пользователей (useradd),
при входе в систему через login, sshd и подобные PAM-контролируемые механизмы,
если используется pam_umask.so.
login.defs
sudo nano /etc/login.defs
Найдите строку:
UMASK 022
Замените на:
UMASK 027
umask в /etc/pam.d/common-session и pam_umask.so управляется через модуль pam_umask.so. Он подключается в:
/etc/pam.d/login (для консольных сессий),
/etc/pam.d/sshd (для SSH),
/etc/pam.d/system-auth (общая аутентификация).
sudo nano /etc/pam.d/common-session
Добавьте строку:
session optional pam_umask.so umask=0027
Проверьте, загружен ли модуль pam_umask.so:
grep pam_umask /etc/pam.d/*
Если модуль не используется, добавьте его вручную.
1. Для текущей сессии пользователя:
umask
2. Для нового пользователя (например, testuser):
su - testuser umask
3. Для файлов и каталогов:
touch testfile # создаёт пустой файл mkdir testdir # создаёт новый каталог
ls -ld testfile testdir drwxr-xr-x. 2 root root 4096 июл 18 09:44 testdir -rw-r--r--. 1 root root 0 июл 09:44 testfile
Дата последнего изменения: 16.09.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.