Umask
100%

Разрешения · Урок 4

Umask

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

Маска создания файлов процесса, или umask, не позволяет устанавливать выбранные биты прав при создании объектом файловой системы этим процессом. Это маска, а не полный режим по умолчанию: сначала приложение запрашивает режим, а затем ядро удаляет биты, запрещённые umask.

Упрощённо:

resulting mode = requested mode AND NOT umask

Списки управления доступом и поведение приложения могут вносить дополнительные особенности, поэтому проверяйте результат, когда важны точные права.

Просмотр и установка umask

Запустите umask без операнда, чтобы вывести маску текущей оболочки, обычно в восьмеричной форме:

$ umask
0022

Задайте её для текущей оболочки и процессов, которые она запустит впоследствии:

$ umask 027

Каждая восьмеричная позиция соответствует владельцу, группе и остальным. Бит маски удаляет соответствующее запрошенное право: 2 маскирует запись, 4 — чтение, а 1 — выполнение.

Что изменяет umask 027 в текущей оболочке?

Расчёт режимов новых файлов и каталогов

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

При umask 0022:

regular file: 0666 masked by 0022 -> 0644 (rw-r--r--)
directory:    0777 masked by 0022 -> 0755 (rwxr-xr-x)

Umask только удаляет запрошенные биты. Она не может добавить право выполнения, если приложение его не запросило. Приложение также может запросить более ограничительный исходный режим и получить более ограничительный результат.

Какой режим получится, если программа запрашивает 0666 для обычного файла, а umask равна 0022?

Какой режим получится, если программа запрашивает 0777 для каталога, а umask равна 0027?

Область действия и постоянство

Изменение umask в одной оболочке не влияет на её родительский процесс или другие сеансы. Значение применяется к будущим объектам, создаваемым этой оболочкой и её потомками; существующие файлы сохраняют свои режимы.

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

Что происходит с существующим файлом после установки новой umask?

Для практики создавайте файлы и каталоги с разными масками в изолированной среде, затем сравнивайте их режимы через ls -ld. Лаборатория Пользователи, группы и права файлов Linux предоставляет подходящую рабочую среду.

Урок завершён

Вы завершили Umask

Теперь вы можете предсказывать, как umask ограничивает вновь запрошенные права.

  • Просматривайте или задавайте маску текущей оболочки командой umask.

  • Удаляйте замаскированные биты из режима, запрошенного приложением.

  • Отличайте распространённый запрос 0666 для файлов от 0777 для каталогов.

  • Учитывайте зависимость области действия и постоянства umask от процесса и среды.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Разрешения