Обзор umask
Операционная система предоставляет базовые права при создании новых файлов или каталогов. Значение `umask` 'исключается' из этих базовых прав, что определяет окончательные права. `umask` важно с точки зрения безопасности, так как, например, предотвращает создание важных конфигурационных файлов с слишком открытыми правами. Значение `umask` может быть установлено по-разному для каждой пользовательской сессии, обычно это происходит в файлах инициализации оболочки, таких как `.bashrc` или `.profile`.
Принцип работы umask
`umask` - это **маска, указывающая 'исключаемые' права, а не разрешенные**. То есть, окончательные права получаются путем вычитания значения `umask` из максимальных базовых прав.
Максимальные базовые права
- Файл: `666` (права на чтение и запись, без прав на выполнение)
- Каталог: `777` (включает все права: чтение, запись и выполнение)
Способ вычисления umask
`umask` представляется в виде 3-значного восьмеричного числа (например: `022`, `002`). Это значение применяется в порядке: владелец (User), группа (Group), другие (Others). Каждая цифра представляет собой сумму битов прав (чтение=4, запись=2, выполнение=1). Окончательные права вычисляются следующим образом:
Тип | Максимальные базовые права | 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`.