Маска создания файлов процесса, или umask, не позволяет устанавливать выбранные биты прав при создании объектом файловой системы этим процессом. Это маска, а не полный режим по умолчанию: сначала приложение запрашивает режим, а затем ядро удаляет биты, запрещённые umask.
Разрешения · Урок 4
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 от процесса и среды.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт