Назад к вопросам

Ответ от нейросети

sobes.tech AI

Umask (сокращение от user file-creation mode mask) — это команда в операционных системах типа Unix/Linux, которая устанавливает маску прав доступа по умолчанию для новых создаваемых файлов и каталогов. Она представляет собой набор битов, которые отключаются от полных прав (777 для каталогов, 666 для файлов) при создании объекта.

Представление umask:

  • Umask обычно представляется в виде octal-кода из трех цифр, например, 022. Каждая цифра соответствует правам для владельца, группы и всех остальных пользователей.
  • Биты маски инвертируются относительно желаемых прав. Например, для отключения права на запись (2) для группы, в umask будет установлена соответствующая бита.

Расчет результирующих прав:

Результирующие права доступа для нового файла/каталога рассчитываются как:

Результат = Исходные_права И (НЕ umask)

Где:

  • Исходные_права для файла = 666 (rw-rw-rw-)
  • Исходные_права для каталога = 777 (rwxrwxrwx)
  • НЕ umask - побитовое НЕ от значения umask. При использовании octal-кода, каждая цифра umask вычитается из 7.

Пример: umask = 022

  • Для файла: 666 И (НЕ 022) = 666 И 755 = 644 (rw-r--r--)
  • Для каталога: 777 И (НЕ 022) = 777 И 755 = 755 (rwxr-xr-x)

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

  • Просмотр текущего umask:

    # Отображает umask в octal
    umask
    
    # Отображает umask в символьном виде
    umask -S
    
  • Установка нового umask:

    # Установка umask в octal
    umask 027
    
    # Установка umask в символьном виде
    umask u=rwx,g=rx,o=r
    

Umask является важным инструментом для обеспечения базовой безопасности файловой системы, устанавливая разумные права доступа по умолчанию для новых объектов.