Обзор
Рассматриваются базовые принципы работы umask, определяющей начальные права доступа к создаваемым в Linux файлам и каталогам. Здесь собраны ключевые методы администрирования для практического применения: от вычислений в восьмеричной системе и управления доступом к общим каталогам до постоянной настройки через профили оболочки.
1. Проверка текущей umask и тестирование прав при создании файлов и каталогов по умолчанию
Для создания и перехода в специальный рабочий каталог для настройки umask и тестирования прав выполните команду mkdir -p /tmp/umask-lab && cd /tmp/umask-lab.

Команда umask позволяет просматривать и задавать маску, ограничивающую начальные права доступа для вновь создаваемых файлов и каталогов.
Результат выполнения показывает, что для текущей сессии установлена маска по умолчанию 0022.
⚙️ [Основные параметры]
-S : выводит разрешенные права в удобном символьном виде (u=rwx,g=rx,o=rx), а не числовом значении.-p : выводит текущую настройку маски в виде восьмеричного числа в формате команды umask, готовой к повторному использованию.

При выполнении команды umask -S можно наглядно увидеть фактически предоставляемые права для владельца (u), группы (g) и остальных пользователей (o) в символьном режиме.
Значение u=rwx,g=rx,o=rx означает, что владельцу по умолчанию разрешены чтение, запись и выполнение, а для группы и остальных пользователей — чтение и выполнение.

Чтобы проверить права создания по умолчанию при текущем значении umask (0022), создадим новый файл и каталог с помощью команды touch default_file.txt && mkdir default_dir.

Для проверки фактических прав созданных файла и каталога выполните команду ls -ld default_file.txt default_dir.
Каталог создается с правами 755 (drwxr-xr-x) путем вычитания маски 022 из максимальных прав по умолчанию 777, а обычный файл — с правами 644 (-rw-r--r--) путем вычитания маски 022 из базовых прав 666 (в которых изначально исключено выполнение).

2. Практика управления правами новых файлов путем временного изменения значения umask
Для подтверждения наличия рабочего пространства и перехода в него выполните команду mkdir -p /tmp/umask-lab && cd /tmp/umask-lab.

Выполните команду umask 027, чтобы временно изменить значение маски текущей сессии на 027.
Эта настройка запрещает право записи для группы и полностью блокирует чтение, запись и выполнение для остальных (прочих) пользователей.

Чтобы убедиться, что измененное значение umask (027) корректно применяется к новым объектам, создайте тестовый файл и каталог командой touch secure_file.txt && mkdir secure_dir.

Для проверки фактических прав созданных файла и каталога выполните команду ls -ld secure_file.txt secure_dir.
В выводе команды можно проверить подробное состояние прав доступа и информацию о владельце.

После завершения тестирования верните маску сессии к стандартному состоянию по умолчанию с помощью команды umask 022.

3. Настройка umask для общих каталогов при командной работе и на веб-серверах
Чтобы создать общий каталог для совместной работы команды и перейти в рабочую директорию, выполните команду mkdir -p /tmp/umask-lab/shared && cd /tmp/umask-lab.

Для обеспечения удобной совместной работы участников группы сохраните права на запись для группы, изменив маску текущей сессии командой umask 002.
Эта конфигурация ограничивает лишь права записи для остальных пользователей, разрешая как чтение, так и запись владельцу и членам группы.

Примененная маска umask (002) позволяет создать файлы и каталоги для совместной работы; выполните для этого touch shared/team_doc.txt && mkdir shared/team_project.

Для проверки фактических прав созданных файлов и каталогов выполните ls -ld shared/team_doc.txt shared/team_project.
В выводе отобразятся точные права и данные владельцев каждого созданного элемента в общей директории.

После завершения проверки совместного доступа верните настройки маски сессии к стандартному безопасному состоянию с помощью umask 022.

4. Способы постоянного применения umask на уровне системы и для отдельных пользователей
Чтобы узнать общесистемное значение umask по умолчанию, выполните команду grep -n 'UMASK' /etc/login.defs.
В выводе на 151-й строке видно, что системным значением по умолчанию задано UMASK 022.

Добавьте комментарий, указывающий на пользовательскую настройку, командой echo '# Custom user umask' >> ~/.bashrc.

Чтобы пользовательские права применялись автоматически при каждом запуске новой сессии оболочки, добавьте настройку с помощью echo 'umask 027' >> ~/.bashrc.

Чтобы убедиться, что директива umask успешно добавлена в конец файла ~/.bashrc, выполните команду tail -n 2 ~/.bashrc.
Вывод подтверждает, что комментарий и строка umask 027 правильно записаны в последних двух строках файла.

Для применения изменений из обновленного файла ~/.bashrc и проверки итоговой маски выполните команду bash -c 'source ~/.bashrc && umask'.
Результат отражает текущее состояние маски, действующее в данной среде оболочки.

В этом материале мы кратко разобрали базовую концепцию и практическую настройку umask, которая автоматически контролирует права при создании файлов и каталогов в среде Linux.
Применяйте значения umask, соответствующие вашей рабочей среде и политике безопасности, для надежного и структурированного администрирования системы.