Что такое umask и как установить права на файл или директорию
Очередной пост из серии: всегда хотел это понять, но вечно что-то мешало.
Подглядел вот здесь, довольно легкое и доходчивое объяснение (эдакий ликбез, не путать с академическим толкованием) того, как посчитать umask, если знаешь какие права в итоге должен иметь твой файл или директория. Как правило, при администрировании Linux систем, нам больше всего приходится сталкиваться с фактическими правами, а вот с umask возникают некоторые трудности. Автор оригинальной статьи сам немного запутался, но я все исправил.
Что такое umask?
При создании файла или директории, среда операционной системы присваивает им определенные права доступа по умолчанию, и umask — это пользовательская маска (user mask), которая используется для определения конечных прав доступа.
Как установить umask по умолчанию?
Сперва, нам необходимо понять, как узнать текущее значение нашей umask. Сделать это очень просто:
Umask для всех пользователей по умолчанию устанавливается в файлах /etc/.bashrc или /etc/.profile.
После процедуры начальной инсталляции Linux, по умолчанию она равна 0022 (022) или 0002 (002).
Если в этих файлах, мы просто добавим или изменим строку с umask:
То при следующем входе мы получим новое значение umask. Если выполним эту команду в текущем сеансе, то, соответственно, изменим значение для маски на время работы сеанса.
Что такое umask равное 0022 и 0002?
В операционной системе Linux базовые права для директории равны 0777 (rwxrwxrwx), а для файла 0666 (rw-rw-rw).
По умолчанию umask 0002 используется для обычного пользователя. С этой маской права по умолчанию, для директории, равны 775, а для файла 664.
Для суперпользователя (root) umask по умолчанию равна 0022. С этой маской права по умолчанию, для директории, равны 755, а для файла 644.
Как посчитать (определить) права файла для маски 022 (пользователь root):
Права по умолчанию: 666
Вычитаемое значение umask: 022 (-)
Итоговые права: 644
Как посчитать (определить) права директории для маски 022 (пользователь root):
Права по умолчанию: 777
Вычитаемое значение umask: 022 (-)
Итоговые права: 755
Итоги
Таким образом: umask «отбирает» необходимые права в нужных разрядах: 7-ка полностью все, 2-ка права на запись, 0 оставляет по умолчанию. По-моему очень просто и понятно.
К примеру вот такие команды:
приведут к такому результату:
И напоследок, пример umask с различными (наиболее часто используемыми) значениями и результирующие (итоговые) права:
Значение umask | Файл | Директория | ||||||
---|---|---|---|---|---|---|---|---|
Итог | Владелец | Группа | Остальные | Итог | Владелец | Группа | Остальные | |
0000 | 666 | rw- | rw- | rw- | 777 | rwx | rwx | rwx |
0002 | 664 | rw- | rw- | r— | 775 | rwx | rwx | r-x |
0022 | 644 | rw- | r— | r— | 755 | rwx | r-x | r-x |
0007 | 660 | rw- | rw- | — | 770 | rwx | rwx | — |
0077 | 600 | rw- | — | — | 700 | rwx | — | — |
0027 | 640 | rw- | r— | — | 750 | rwx | r-x | — |
0277 | 400 | r— | — | — | 500 | r-x | — | — |
Калькулятор umask
Конечно-же, ограниченный упрощенный метод подсчета и приведенная таблица не способны покрыть множество вариантов значений umask, поэтому, для более полной и четкой картины, предлагаю вам воспользоваться следующим наглядным инструментом: «Онлайн umask калькулятор»
Information Security Squad
stay tune stay secure
👺 Linux команда umask с примерами, числовыми и символическими представлениями
Команда umask используется для установки прав доступа к файлам и папкам по умолчанию в операционной системе Linux.
Права доступа к файлам и папкам важны, потому что разрешение позволяет или запрещает доступ, чтение, запись и выполнение данного файла различным пользователям, группам и другим пользователям.
В этом уроке мы узнаем, как использовать команду umask для установки разрешений на чтение, запись и выполнение по умолчанию.
Синтаксис
Синтаксис команды umask очень прост, когда мы просто предоставляем разрешения.
Права доступа
Linux — это файловая операционная система, в которой есть 3 разрешения.
- r означает чтение, т.е. указано чтение данного файла или папки
- х означает выполнение, т.е. указано выполнение данного файла. Поскольку папки не могут быть выполнены, мы не можем использовать это разрешение для папок или каталогов.
- w означает запись, т.е. запись или добавление в указанный файл или папку.
Разрешения также имеют числовое представление, как показано ниже.
читать значение + | писать значение + | выполнять значение = | числовое значение: | символьный эквивалент: |
---|---|---|---|---|
1 | 1 | x | ||
2 | 2 | w | ||
2 | 1 | 3 | wx | |
4 | 4 | r | ||
4 | 1 | 5 | rx | |
4 | 2 | 6 | rw | |
4 | 2 | 1 | 7 | rwx |
Например, если мы хотим сделать данный файл читаемым и исполняемым, но не доступным для записи, мы можем использовать числовое значение 5 или символьное rx.
Операционные системы Linux используют 3 категории пользователей, такие как владелец, группа и другие.
- владелец — это пользователь, которому принадлежит файл полностью. Этот пользователь обычно имеет все права, такие как чтение, запись и выполнение. Но в некоторых случаях для предотвращения несчастных случаев некоторые разрешения могут быть изменены или удалены.
- группа — группа, которой принадлежит данный файл или каталог. Например, группа sudoer владеет некоторыми административными файлами, где они могут использовать их в соответствии со своими разрешениями.
- другие означает всех других пользователей, кроме владельца и группы. Это может быть полезно для сущностей, которые не имеют никакого отношения к данному файлу. Как правило, мы можем сделать так, чтобы файл не имел права на чтение, запись или выполнение файла для других пользователей. Но в некоторых случаях мы можем предоставить разрешение на чтение.
Мы изучили использование по умолчанию пользователя и разрешения для операционных систем Linux.
Команда umask использует этих пользователей и права немного отличаются.
На самом деле значения разрешений работают немного по-другому.
Мы делаем побитовую операцию над значениями разрешений для использования с umask.
Например, чтобы установить разрешение 775 для разрешения по умолчанию, нам нужно предоставить 002 команде umask.
Это может создать некоторые проблемы и ошибки во время использования команды umask, но мы можем проверить с помощью опции -S обычные значения разрешений для текущих файлов и папок.
Мы можем видеть, что 0022 равен разрешениям: пользователю rwx, группе rx и другим rx.
Мы можем использовать следующую таблицу для установки представления цифр разрешений umask.
Umask цифра | разрешения по умолчанию для файлов | разрешения по умолчанию для каталога |
---|---|---|
rw | rwx | |
1 | rw | rw |
2 | r | rx |
3 | r | r |
4 | w | wx |
5 | w | w |
6 | x | x |
7 | не разрешено | не разрешено |
Вывод текущих разрешений в числовом формате
Мы можем напечатать текущие разрешения umask, которые покажут разрешения по умолчанию для файлов и папок, как показано ниже.
Вывод текущих разрешений в символьном формате
Мы можем использовать опцию -S с командой umask, чтобы вывести список текущих прав доступа к файлам и папкам.
Установить разрешение
Теперь мы установим разрешения по умолчанию для файлов и папок с помощью команды umask.
Как выяснилось ранее, мы будем использовать права доступа типа umask.
В этом примере мы установим права пользователя на чтение + запись + выполнение, групповое чтение + выполнение и другие ничего.
Другой способ — использовать следующий синтаксис команды
Удалить разрешение
Мы также можем удалить существующие разрешения для владельца, группы или других лиц.
В этом примере мы удалим разрешение на выполнение группы. g используется для группы, а x используется для выполнения.
RTFM.WIKI
Ordnung muß sein. Ordnung über alles (18+)
User Tools
Site Tools
Sidebar
Навигация
Линкшэринг
ALARM!
Добавить новую страницу
Table of Contents
Что такое umask и как установить права на файл или директорию
Как установить umask по умолчанию?
Узнать текущее значение вашей umask можно просто:
Umask для всех пользователей по умолчанию устанавливается в файлах /etc/.bashrc или /etc/.profile. После процедуры начальной инсталляции Linux он равен 0022 (022) или 0002 (002).
Просто добавьте или измените строку с umask:
Изменения вступят в силу при следующем входе.
Что такое 0022 и 0002?
По умолчанию umask 0002 используется для обычного пользователя. С этой маской права по умолчанию, для директории, равны 775, а для файла 664.
Для суперпользователя (root) umask по умолчанию равен 0022. С этой маской права по умолчанию, для директории, равны 755, а для файла 644.
Базовые права для директорий, это 0777 (rwxrwxrwx) и для файлов 0666 (rw-rw-rw).
Как посчитать (определить) права файла для маски 022 (пользователь root):
Права по умолчанию: 666
Вычитаемое значение umask: 022 (-)
Итоговые права: 644
Как посчитать (определить) права директории для маски 022 (пользователь root):
Права по умолчанию: 777
Вычитаемое значение umask: 022 (-)
Итоговые права: 755
Вывод
Таким образом umask «отбирает» необходимые права в нужных разрядах: 7-ка полностью все, 2-ка права на запись, 0 оставляет по умолчанию. По-моему очень просто и понятно.
К примеру вот такие команды:
приведут к такому результату:
И напоследок, пример umask с различными (наиболее часто используемыми) значениями и результирующие (итоговые) права: