Linux & Shell

калькулятор umask

Введите маску и запрошенные режимы создания. Сравните права файла и каталога с пошаговым разбором битов.

калькулятор umask

Маска и запросы создания

Рассчитанные права

Маска — удаляемые биты
0022 · ----w--w-
Разрешённые права (umask -S)
u=rwx,g=rx,o=rx

Файл

0644 · rw-r--r--

Фактически удалено: 0022 · ----w--w-

Показать побитовый расчёт
Запрошенные биты
0666 · 110 110 110
Маска — удаляемые биты
0022 · 000 010 010
Разрешённые биты (~mask & 0777)
0755 · 111 101 101
Итоговые биты
0644 · 110 100 100

Бит сохраняется, только если он запрошен и не закрыт маской.

0666 & (~0022 & 0777) = 0644

Каталог

0755 · rwxr-xr-x

Фактически удалено: 0022 · ----w--w-

Показать побитовый расчёт
Запрошенные биты
0777 · 111 111 111
Маска — удаляемые биты
0022 · 000 010 010
Разрешённые биты (~mask & 0777)
0755 · 111 101 101
Итоговые биты
0755 · 111 101 101

Бит сохраняется, только если он запрошен и не закрыт маской.

0777 & (~0022 & 0777) = 0755

Расчёт в браузере; введённые данные не отправляются и не сохраняются.

Примеры и формат ввода

Символы обозначают разрешённые биты: u=rwx,g=rx,o=rx равно 022. Нужны все три группы.

Расчёт только для указанных запросов. ACL по умолчанию и последующие изменения не моделируются.

Права рассчитаны.

Калькулятор umask помогает понять, почему файл и каталог, созданные одним процессом, получают разные права. Значение имеет не только маска, но и режим, который запросила программа при создании.

0666 и 0777 — распространённые запросы, а не обязательные пределы для всех программ. Их можно изменить. Маска убирает запрошенные биты и никогда не добавляет отсутствующие.

Зачем нужен калькулятор umask

Одна маска, разные исходные права

Калькулятор umask показывает разницу на примере 111: запрос файла 666 остаётся равным 666, а запрос каталога 777 превращается в 666. Отсутствующие биты выполнения нельзя убрать ещё раз, поэтому обычное вычитание даёт неверную модель.

Документ и папка проходят через один фильтр, сохраняя разные ячейки прав.

Разрешено не значит запрошено

Калькулятор umask разделяет разрешённые маской биты и запрос программы. Если для файла запросить 777, биты выполнения могут сохраниться. В запросе 666 их нет, и маска их не добавит.

Два слоя прав накладываются друг на друга, оставляя только общие заполненные ячейки.

Проверьте запрос и форму записи

01

Проверьте нечётную маску

Выберите пример 111 и откройте предпросмотр. До применения видны значения и число изменяемых полей. Файл останется с режимом 0666; отмена восстановит вместе исходные данные и предыдущий результат.

02

Различайте символьные формы

В поле маски вводится полная форма umask -S, например u=rwx,g=rx,o=rx. Для запроса подходят девять символов вроде rw-rw-rw-. Первая форма описывает разрешённые биты, вторая — запрошенные.

03

Сравните несколько изменений

Выключите автоматический расчёт, чтобы изменить сразу несколько полей. Экспорт блокируется при первом изменении. Кнопка расчёта или Ctrl/Cmd+Enter обновит отчёт; раскройте шаги и проверьте операнды перед копированием.

Какие биты останутся

Независимые запросы создания

Права доступа по умолчанию рассчитываются для запроса 0666 у файла и 0777 у каталога. Оба значения можно заменить: программа, создающая исполняемый файл, может запросить 0777, а закрытый файл — 0600.

Восьмеричная запись и символы

Числовая маска задаёт удаляемые биты, а полные присваивания u=,g=,o= — разрешённые. Символьное представление результата содержит девять позиций rwx для владельца, группы и остальных, рядом выводятся четыре восьмеричные цифры.

Фактически удалённые биты

Отдельно показаны запрос, маска, её дополнение в пределах девяти бит и итоговое пересечение. Удалённые права вынесены в отдельную строку: бит маски, которого не было в запросе, ничего дополнительно не меняет.

Границы расчёта

Только девять обычных битов
Числа состоят из трёх восьмеричных цифр или четырёх с начальным нулём. Запрос также принимает девять символов rwx. Специальные биты, префиксы типа и суффиксы ACL отклоняются. Крайние пробелы удаляются; предел поля — 128 символов.
Только полные присваивания
u, g и o должны встретиться ровно по одному разу. Порядок групп свободный, права идут в порядке rwx или оставляются пустыми. Относительные формы g+w, сокращение a= и копирование g=u не разбираются.
Без моделирования ACL
В Linux наследуемый ACL по умолчанию у родительского каталога может заменить обычный путь применения umask. Наследование специальных битов, последующий chmod, параметры монтирования и изменения программы не моделируются.
Без обратного расчёта и команд
026 и 027 дают один результат 0640 при запросе 0666, поэтому однозначно восстановить маску нельзя. Страница не меняет существующие файлы, не выполняет команды, не записывает настройки оболочки и не сохраняет ввод.

Калькулятор umask: вопросы

Почему некоторые значения umask не меняют права файла?

Бит маски влияет на результат, только если соответствующий бит был запрошен. При 0666 маски 026 и 027 обе дают 0640: они различаются битом выполнения, которого нет в запросе. Здесь нужен побитовый AND с инвертированной маской, а не вычитание.

Почему umask не добавляет новым файлам право на выполнение?

Обычные команды создания файлов запрашивают 0666 без битов выполнения. Маска не умеет добавлять права. Однако программа, создающая исполняемый файл, может запросить 0777; тогда разрешённые маской биты выполнения сохранятся.

Почему umask выводится четырьмя цифрами, например 0022?

Здесь 0022 и 022 равнозначны. Начальный ноль не обозначает дополнительную группу пользователей. В четырёхзначной записи первая цифра должна быть нулём; значение 1022 будет отклонено.

Как понимать вывод команды umask -S?

Вывод описывает права, пропускаемые маской. u=rwx,g=rx,o=rx соответствует разрешённому режиму 0755 и маске 0022. Файл с запросом 0666 при этом не получает права на выполнение.

Как umask взаимодействует с ACL по умолчанию?

Linux наследует ACL по умолчанию родительского каталога и дополнительно ограничивает его запрошенными правами. Этот путь заменяет обычное применение umask. Поля для ACL здесь нет, поэтому такой случай инструмент не рассчитывает.

Неожиданный результат?

Сравните другой режим создания

Калькулятор umask сопоставляет запрос программы с действием маски. Чтобы объяснить права реального файла, проверьте также создающий процесс и ACL родительского каталога.