umask в Linux — как задать права по умолчанию для новых файлов

Описание изображения: металлический картотечный шкаф с ящиками для документов, символизирующий хранение файлов и прав доступа.
Что такое umask?
Umask — это битовая маска (bit mask), которая определяет, какие права будут удалены у вновь создаваемых файлов и директорий. Проще: umask задаёт «запреты» по умолчанию. Он использует восьмеричную (октал) нотацию, аналогичную chmod.
Определение в одну строку: umask — маска, вычитающая права из стандартного режима новых объектов.
Важно: umask указывает права, которые нужно убрать, а не которые дать.
Как работает umask — быстрое объяснение
- Базовый (исходный) режим для файлов обычно 666 (rw-rw-rw-). Для директорий — 777 (rwxrwxrwx).
- Когда вы создаёте файл, система вычитает биты umask из базового режима. Результат — реальные права нового файла.
Примеры:
- umask 022 → файлы: 666−022 = 644 (rw-r–r–), директории: 777−022 = 755 (rwxr-xr-x).
- umask 077 → файлы: 666−077 = 600 (rw——-), директории: 777−077 = 700 (rwx——).
- umask 002 → файлы: 666−002 = 664 (rw-rw-r–), директории: 777−002 = 775 (rwxrwxr-x).
Эти примеры помогают быстро представить, какие права получат новые объекты.

Описание изображения: вывод в терминале с показом восьмеричной и символьной формы umask и прав доступа.
Команды для просмотра и тестирования
- Посмотреть текущую umask (символически):
umask -S- Посмотреть текущую umask (восьмерично):
umask- Установить umask в текущей сессии:
umask 022- Проверить результат: создайте временный файл и проверьте ls -l.
touch /tmp/testfile && ls -l /tmp/testfileГде задавать umask для одного пользователя
Чтобы umask применялся при каждой новой сессии пользователя, добавьте команду в файл инициализации оболочки:
- Bash: ~/.bashrc, ~/.profile или ~/.bash_profile (в зависимости от дистрибутива и типа сессии).
- Zsh: ~/.zshrc.
Пример добавления в ~/.bashrc:
# Установить безопасный umask для пользователя
umask 027После правки выполните source ~/.bashrc или перезапустите сессию.
Системная настройка umask для всех пользователей
На серверах имеет смысл задать умаск глобально:
- Добавьте строку
umask 027в /etc/profile — этот файл читают интерактивные логин-оболочки (bash/zsh). - Для csh/tcsh используйте /etc/csh.cshrc и /etc/csh.login.
- В системах на systemd можно задать Umask= в unit-файле сервиса (см. пример дальше).
Примечание: изменение глобального umask влияет на всех пользователей и процессы, поэтому тестируйте изменения в тестовой среде.
Umask в systemd (пример)
Чтобы сервис systemd запускал процессы с нужным umask, добавьте в unit-файл:
[Service]
Umask=027После изменения выполните systemctl daemon-reload и перезапустите сервис.
Альтернативы и дополнительные механизмы контроля прав
- ACL (Access Control Lists): с помощью setfacl/getfacl можно задать более гибкие права на файл/директорию.
- POSIX capabilities и SELinux/AppArmor для усиленного контроля безопасности на уровне политики.
- Шаблоны umask в PAM: модуль pam_umask позволяет задавать umask при аутентификации.
Когда umask не покрывает нужды — используйте ACL или политические механизмы безопасности.
Ментальные модели и эвристики
- Думайте об umask как о «фильтре удаления» прав: он убирает, а не добавляет.
- Для серверов безопасное стартовое значение — 027 или 077 (в зависимости от требований к совместному доступу).
- Для рабочих станций с совместным доступом к файлам часто используют 002 или 022.
Роль‑ориентированный чеклист (администратор / разработчик / пользователь)
Администратор:
- Задокументировать выбранный umask в политике безопасности.
- Применить umask глобально и протестировать создание файлов сервисами.
- Проверить совместимость с systemd и PAM.
Разработчик:
- Убедиться, что тестовые окружения применяют тот же umask, что и продакшен.
- Если нужно совместное редактирование, использовать umask 002 и группу проекта.
Обычный пользователь:
- Добавить umask в ~/.bashrc при необходимости конфиденциальности (например, 077).
- Проверить права созданных файлов командой ls -l.
Быстрый чеклист / Шпаргалка
- Просмотреть:
umaskилиumask -S - Установить временно:
umask 022 - Добавить навсегда: в ~/.bashrc или /etc/profile
- Systemd сервис:
Umask=027в unit-файле - Проверить результат:
touch /tmp/test && ls -l /tmp/test
Критерии приёмки
- Для пользователя: при создании файла права соответствуют ожидаемым (например, 600 для umask 077).
- Для сервиса: после перезапуска сервиса новые файлы и сокеты имеют права, соответствующие Umask= в unit-файле.
- Для системы: глобальный umask корректно применяется новым интерактивным сессиям.
Безопасность и приватность
Umask — это лишь один уровень контроля. Не полагайтесь на него для защиты конфиденциальных данных от привилегированных пользователей (root). Для дополнительной защиты используйте шифрование, контроль доступа на уровне приложений и политики SELinux/AppArmor.
Важно: умаск не изменяет права уже существующих файлов. Для массовой корректировки прав используйте chmod/chown или инструменты управления конфигурацией.
Когда umask не подходит: примеры
- Нужна тонкая настройка прав для отдельных пользователей/групп → используйте ACLs.
- Служба создаёт файлы с неверными правами, потому что systemd unit не имеет Umask → настройте unit-файл.
- Требуется шифрование содержимого, а не только права → используйте gpg/encfs/FS-level encryption.
Итог и рекомендации
Umask — простой и эффективный способ задать права по умолчанию для новых файлов и директорий. Для большинства серверов рекомендуется 027; для персональных рабочих станций — 022 или 002 в зависимости от требований к совместному доступу. Комбинируйте umask с ACL и политиками безопасности, если нужно более точное разграничение доступа.
Короткое резюме: установите umask там, где удобно (пользовательский .bashrc или глобально в /etc/profile), проверьте с umask -S и протестируйте создание файлов. Если нужно, дополните защиту ACL или политиками безопасности.
Похожие материалы
Основные сетевые команды Linux
Чтение вслух в Microsoft Word — как включить и настроить
Как использовать iMessage на Android через AirMessage
Блок‑схема в Pages на Mac — быстрое руководство
Восстановление пароля Gmail: настройка и советы