Главная > Управление файлами и каталогами > umask

Руководство по команде umask: Установка базовых прав доступа для вновь создаваемых файлов/каталогов

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

Обзор umask

Операционная система предоставляет базовые права при создании новых файлов или каталогов. Значение `umask` 'исключается' из этих базовых прав, что определяет окончательные права. `umask` важно с точки зрения безопасности, так как, например, предотвращает создание важных конфигурационных файлов с слишком открытыми правами. Значение `umask` может быть установлено по-разному для каждой пользовательской сессии, обычно это происходит в файлах инициализации оболочки, таких как `.bashrc` или `.profile`.

Принцип работы umask

`umask` - это **маска, указывающая 'исключаемые' права, а не разрешенные**. То есть, окончательные права получаются путем вычитания значения `umask` из максимальных базовых прав.

Максимальные базовые права

  • Файл: `666` (права на чтение и запись, без прав на выполнение)
  • Каталог: `777` (включает все права: чтение, запись и выполнение)

Способ вычисления umask

`umask` представляется в виде 3-значного восьмеричного числа (например: `022`, `002`). Это значение применяется в порядке: владелец (User), группа (Group), другие (Others). Каждая цифра представляет собой сумму битов прав (чтение=4, запись=2, выполнение=1). Окончательные права вычисляются следующим образом:

Пример вычисления umask (umask 022) Рассмотрим случай с часто используемым `umask 022` и узнаем, как определяются окончательные права.
Тип Максимальные базовые права umask Окончательные права
Файл 666 (rw-rw-rw-) 022 (--w--w-) 644 (rw-r--r--)
Каталог 777 (rwxrwxrwx) 022 (--w--w-) 755 (rwxr-xr-x)

Общие значения umask

В большинстве систем базовое значение `umask` составляет `0022` или `0002`. Первая цифра `0` соответствует специальным правам (sticky bit, SGID, SUID) и обычно устанавливается в `0`.

Значение общих значений umask

  • `umask 022`: Файлы создаются с правами `644`(rw-r--r--), каталоги - с правами `755`(rwxr-xr-x). Это наиболее распространенная настройка, предоставляющая владельцу все права, а группе и другим пользователям - права на чтение и выполнение.
  • `umask 002`: Файлы создаются с правами `664`(rw-rw-r--), каталоги - с правами `775`(rwxrwxr-x). Это позволяет пользователям группы также иметь права на запись, что удобно для совместной работы внутри группы.
  • `umask 077`: Файлы создаются с правами `600`(rw-------), каталоги - с правами `700`(rwx------). Это очень строгая настройка прав, при которой никто, кроме владельца, не имеет доступа. Подходит для очень важных личных файлов или каталогов.

Основные опции команды umask

`umask` используется для проверки текущего значения или установки нового значения. Если используется без опций, отображается текущее значение `umask`.

1. Проверка и установка значения umask

Сгенерированная команда:

Комбинируйте команды.

Описание:

`umask` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

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

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

Проверка текущего значения umask

umask

Проверяет текущее значение `umask` в восьмеричном формате (например: `0022`) для текущей сессии оболочки.

Проверка значения umask в символическом режиме

umask -S

Проверяет значение `umask` в форме разрешенных прав, таких как 'u=rwx,g=rx,o=rx', вместо восьмеричного.

Установка значения umask на 002

umask 002

Изменяет `umask`, чтобы вновь создаваемые файлы имели права `664`(rw-rw-r--), а каталоги - права `775`(rwxrwxr-x). (разрешает права на запись для пользователей одной группы)

Установка строгого значения umask на 077

umask 077

Изменяет `umask`, чтобы вновь создаваемые файлы имели права `600`(rw-------), а каталоги - права `700`(rwx------). Доступ не разрешен никому, кроме владельца.

Проверка прав на создание файлов/каталогов после изменения umask

umask 002
touch test_file_002.txt
mkdir test_dir_002
ls -l test_file_002.txt test_dir_002

После установки umask на `002`, создайте новые файлы и каталоги и проверьте, применены ли измененные права с помощью `ls -l`.


Те же команды в категории