Что такое umask?

umask (маска режима создания файлов пользователем) — это параметр Linux и Unix, который контролирует разрешения по умолчанию, назначаемые вновь созданным файлам и директориям. Вместо прямого установления разрешений umask определяет, какие биты разрешений должны быть удалены из системных значений по умолчанию при создании нового файла или директории.

Система начинает с базовых разрешений 666 (чтение и запись для всех) для файлов и 777 (чтение, запись и выполнение для всех) для директорий. Затем umask вычитается побитово из этих значений по умолчанию с использованием логической операции AND-NOT, что дает итоговые разрешения. Например, при umask 022 новые файлы получают разрешения 644, а новые директории — 755.

Каждая цифра umask соответствует классу разрешений: первая цифра влияет на владельца, вторая на группу, а третья на остальных. Цифра 0 означает, что разрешения не маскируются, а 7 удаляет все разрешения для этого класса.

Описание инструмента

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

Примеры

Umask Base Результирующее восьмеричное Символическое
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

Возможности

  • Вычисляет результирующие восьмеричные и символические разрешения для любого umask
  • Поддерживает как 3-значные, так и 4-значные (с ведущим битом sticky/setuid) значения umask
  • Предустановки часто используемых umask (022, 027, 077, 002, 007, 000)
  • Предустановки базовых разрешений для файлов (666) и директорий (777)
  • Генерирует готовую к использованию команду umask для shell

Варианты использования

  • Усиление безопасности сервера: Предварительно просмотрите более строгий umask, например 077, перед добавлением его в /etc/profile или конфигурацию shell пользователя, чтобы убедиться, что новые файлы приватные.
  • Общие среды разработки: Проверьте, что 002 или 007 создает файлы с правами записи для группы в директориях совместных проектов.
  • Скрипты развертывания: Подтвердите, что umask, используемый в конвейерах CI/CD или точках входа контейнеров, будет создавать ожидаемые разрешения для логов приложений и загруженных ресурсов.

Как это работает

Итоговое разрешение вычисляется для каждого класса (владелец, группа, остальные) по формуле:

final = base AND (NOT umask)

Каждая восьмеричная цифра обрабатывается независимо. Для цифры umask 2 (двоичное 010) и базовой цифры 6 (двоичное 110) результат равен 110 AND NOT 010 = 100, что равно 4 (только чтение). Ведущая цифра 4-значного umask контролирует специальные биты (setuid, setgid, sticky) и игнорируется при стандартном вычислении разрешений.

Советы

  • Используйте 666 как базовое значение, чтобы увидеть разрешения для новых файлов, и 777 для новых директорий.
  • Umask 000 означает, что разрешения не удаляются — полезен только в строго контролируемых изолированных окружениях.
  • Чтобы сделать umask постоянным, добавьте сгенерированную команду в ~/.bashrc, ~/.profile или /etc/profile в зависимости от требуемой области действия.