В каких файлах можно изменить маску umask для создания каталогов для конкретного пользователя

Обновлено: 21.11.2024

Установка режима доступа к файлам по умолчанию с помощью команды umask

Umask — это встроенная команда C-shell, которая позволяет определить или указать режим доступа (защиты) по умолчанию для новых файлов, которые вы создаете. (См. страницу справки для chmod для получения дополнительной информации о режимах доступа и о том, как изменить режимы для существующих файлов.) Вы можете ввести команду umask в интерактивном режиме в командной строке, чтобы повлиять на файлы, созданные во время текущего сеанса. Чаще всего команда umask помещается в файл .bashrc для автоматического выполнения при каждом запуске новой оболочки, гарантируя, что значение по умолчанию будет одинаковым для каждого сеанса.

Синтаксис команды umask
Синтаксис команды umask

где "значение" – восьмеричное число, содержащее до трех цифр. Если «значение» не указано, команда umask возвращает текущее значение umask. Если указано восьмеричное число короче трех цифр, предполагается, что оно дополнено начальными нулями; например, «77» эквивалентно «077». Схема определения того, какое восьмеричное число производит какой режим доступа (описанная ниже), несколько запутана; однако приведенный ниже список общих режимов доступа, возможно, поможет вам избежать изучения схемы.

Настройки Umask для общих режимов доступа
В следующих примерах показано влияние на файлы и каталоги, созданные с различными значениями umask. В каждом из двух списков значения перечислены в порядке убывания безопасности. Если у вас нет особой причины разрешать другим доступ к вашим файлам, рекомендуется использовать umask «077» для обеспечения разумной защиты ваших файлов. Размещение линии

в вашем .cshrc все новые файлы и каталоги будут создаваться без доступа для группы и других.

В следующих примерах «пользователь» относится к создателю или владельцу файла или каталога, «группа» — к группе, связанной с файлом (это можно определить с помощью «ls -lg»), а «другие " для всех, кто не является "пользователем" или "группой".

Как определить режим доступа, создаваемый заданным восьмеричным значением.
Если вы нашли свое любимое в приведенном выше списке общих значений, вы можете пропустить следующее объяснение и перейти непосредственно к разделу, посвященному ссылкам. Если нет, читайте дальше.

Трехзначное восьмеричное значение, возвращаемое или указанное для umask, является маской создания файла. Первая цифра связана с пользователем (создателем файла), вторая с группой, а третья с остальными. Эта маска подвергается операции XOR (исключительное ИЛИ) с режимом доступа 666 для файлов или 777 для каталогов, чтобы определить режим доступа для вновь созданных файлов и каталогов. Разрешение «выполнение» связано со значением «1», разрешение «запись» — с «2», а разрешение «чтение» — с «4». Эти значения разрешений складываются вместе для создания каждой восьмеричной цифры. Поскольку маска подвергается операции XOR с восьмеричным числом 666 или 777, которые представляют полные разрешения для пользователя, группы и других (каждая цифра в указанном порядке), результат противоположен тому, что представлено маской; то есть значение umask указывает те режимы доступа, которые должны быть ЗАПРЕЩЕНЫ. Например, операция XOR со значением umask 077 (7=1+2+4: ЗАПРЕТИТЬ отсутствие разрешений для пользователя, ЗАПРЕТИТЬ все разрешения для группы и других) с 666 или 777 приводит к созданию файлов и каталогов с режимом доступа: все разрешения для пользователя и ни одного для группы или других.

Ссылки
Для получения дополнительной информации см. файл справки chmod. Также см. онлайн-страницы руководств по umask , chmod и ls .

Вы можете использовать утилиту umask для отображения, установки или изменения текущего значения или значения по умолчанию umask .

26.1. Отображение текущего значения umask

Вы можете использовать утилиту umask для отображения текущего значения umask в символьном или восьмеричном формате.

Процедура

Чтобы отобразить текущее значение umask в символьном режиме, используйте:

Чтобы отобразить текущее значение umask в восьмеричном формате, используйте:

При отображении umask в восьмеричном режиме вы можете заметить, что он отображается в виде четырехзначного числа (0002 или 0022). Первая цифра umask представляет собой специальный бит (бит закрепления, бит SGID или бит SUID). Если первая цифра установлена ​​на 0, специальный бит не установлен.

26.2. Отображение umask bash по умолчанию

Вы можете использовать несколько оболочек, например bash , ksh , zsh и tcsh . Эти оболочки могут вести себя как входные и не входные оболочки. Оболочка входа обычно вызывается при открытии собственного терминала или терминала с графическим интерфейсом.

Чтобы определить, выполняете ли вы команду в оболочке входа или без входа, используйте команду echo $0.

Пример 26.1. Определение того, работаете ли вы в оболочке bash с входом или без входа

Если выходные данные команды echo $0 возвращают bash , вы выполняете команду в оболочке без входа в систему.

По умолчанию umask для оболочки без входа в систему задается в файле конфигурации /etc/bashrc.

Если вывод команды echo $0 возвращает -bash , вы выполняете команду в оболочке входа в систему.

По умолчанию umask для оболочки входа устанавливается в файле конфигурации /etc/profile.

Процедура

Чтобы отобразить umask bash по умолчанию для оболочки без входа в систему, используйте:

Вывод возвращает:

Чтобы отобразить umask bash по умолчанию для оболочки входа в систему, используйте:

Вывод возвращает:

26.3. Установка umask с использованием символьных значений

Вы можете использовать утилиту umask с символическими значениями (сочетание букв и знаков), чтобы установить umask для текущего сеанса оболочки

Вы можете назначить следующие разрешения:

Разрешения могут быть назначены следующим уровням владения:

Чтобы добавить или удалить разрешения, вы можете использовать следующие знаки :

  • +, чтобы добавить разрешения поверх существующих разрешений
  • - удалить разрешения из существующего разрешения

= для удаления существующих разрешений и явного определения новых

Любое разрешение, не указанное после знака равенства (=), автоматически запрещается.

Процедура

Чтобы установить umask для текущего сеанса оболочки, используйте:

Замените на уровень владения, для которого вы хотите установить umask. Замените одним из знаков. Заменить

с разрешениями, которые вы хотите назначить. Например, чтобы задать для umask значение u=rwx,g=rwx,o=rwx , используйте umask -S a=rwx .

umask действителен только для текущего сеанса оболочки.

26.4. Установка umask с использованием восьмеричных значений

Вы можете использовать утилиту umask с восьмеричными значениями (цифрами), чтобы установить umask для текущего сеанса оболочки.

Процедура

Чтобы установить umask для текущего сеанса оболочки, используйте:

Замените восьмеричное_значение восьмеричным значением. Дополнительные сведения см. в разделе Маска пользовательского режима создания файлов.

umask действителен только для текущего сеанса оболочки.

26.5. Изменение umask по умолчанию для оболочки без входа в систему

Вы можете изменить umask bash по умолчанию для обычных пользователей, изменив файл /etc/bashrc.

Предпосылки

Процедура

    От имени пользователя root откройте файл /etc/bashrc в любом редакторе по вашему выбору.

Измените следующие разделы, чтобы установить новый umask bash по умолчанию:

Замените восьмеричное значение по умолчанию umask ( 002 ) другим восьмеричным значением. Дополнительные сведения см. в разделе Маска пользовательского режима создания файлов.

26.6. Изменение umask по умолчанию для оболочки входа

Вы можете изменить umask bash по умолчанию для пользователя root, изменив файл /etc/profile.

Предпосылки

Процедура

    От имени пользователя root откройте файл /etc/profile в любом редакторе по вашему выбору.

Измените следующие разделы, чтобы установить новый umask bash по умолчанию:

Замените восьмеричное значение по умолчанию umask ( 022 ) другим восьмеричным значением. Дополнительные сведения см. в разделе Маска пользовательского режима создания файлов.

26.7. Изменение umask по умолчанию для конкретного пользователя

Вы можете изменить umask по умолчанию для определенного пользователя, изменив файл .bashrc для этого пользователя.

Процедура

Добавить строку, указывающую восьмеричное значение umask, в файл .bashrc для конкретного пользователя.

Замените восьмеричное_значение восьмеричным значением и замените username именем пользователя. Дополнительные сведения см. в разделе Маска пользовательского режима создания файлов.

26.8. Установка UMASK по умолчанию для вновь созданных домашних каталогов

Вы можете изменить разрешения, определяющие UMASK для домашних каталогов вновь созданных пользователей, изменив файл /etc/login.defs.

Процедура

    От имени пользователя root откройте файл /etc/login.defs в любом редакторе по вашему выбору.

Измените следующий раздел, чтобы установить новый UMASK по умолчанию:

Замените восьмеричное значение по умолчанию ( 077 ) другим восьмеричным значением. Дополнительные сведения см. в разделе Маска пользовательского режима создания файлов.

Umask, или пользовательский режим создания файлов, – это команда Linux, которая используется для назначения наборов разрешений по умолчанию для вновь создаваемых папок и файлов. Термин маска относится к группе битов разрешений, каждый из которых определяет, как устанавливается соответствующее разрешение для вновь создаваемых файлов. Биты в маске можно изменить, вызвав команду umask.

Используя термин Umask, мы имеем в виду одно из следующих двух значений:

  • Маска пользовательского режима создания файлов, используемая для настройки разрешений по умолчанию для вновь создаваемых файлов и каталогов.
  • Команда «umask», которая используется для установки значения umask

Как вы, наверное, уже знаете, все операционные системы на основе Unix имеют набор свойств, которые используются для определения того, кому разрешено читать, записывать или выполнять определенные файлы или каталоги. Существует три категории, называемые «классами разрешений», к которым применяются эти разрешения, и они отмечены следующим образом.

  • Пользователь. Пользователь по умолчанию является владельцем или создателем файла или папки. Владельцем нового файла по умолчанию является этот пользователь.
  • Группа. Группа – это набор пользователей с одинаковым уровнем доступа или разрешениями для файла или папки.
  • Другие. Группа «Другие» определяется как любой пользователь, не входящий в две предыдущие категории. Эти пользователи не создали файл или папку и не принадлежат к определенной группе пользователей. В эту группу входят все, кто не идентифицирован как пользователь или часть группы пользователей. Когда мы устанавливаем уровень разрешений для файла или папки на «Другое», это дает доступ к уровню разрешений всем, кто обращается к файлу или папке.

Итак, что происходит, когда пользователь создает новые файлы и каталоги? Система автоматически присваивает файлу следующие разрешения при использовании сенсорной команды.

Если мы создаем каталог, он назначает ему следующий набор разрешений,

Синтаксис команды Umask

Полная запись справочной страницы для umask выглядит следующим образом.

Чтобы просмотреть текущее значение umask, мы используем команду umask. Запуск команды umask сам по себе обеспечивает разрешения по умолчанию, которые назначаются при создании файла или папки.

Чтобы изменить эти значения, мы будем использовать следующую команду.

Ниже мы можем увидеть переведенные восьмеричные значения и их взаимосвязь.

< th style="text-align:center;height:24px">Разрешение
Число
4читать
2написать
1выполнить
Читать Написать ВыполнитьОбщее значениеСимволический эквивалент:
000< /td>0
0011x
0202w
0213wx
400 4r
4 015rx
4206rw
4< /td>2 17rwx

Поэтому, когда мы запускаем команду ls, восьмеричные или символьные значения разрешений отображаются в начале вывода.

Для тестового каталога установлены разрешения 755 или 'rwx' 'rx' 'r-x'.
Разрешения, установленные для файла test.txt, равны 644 или 'rw -' 'r - -' 'р - -'.
Дефис означает значение 0.

Символические заголовки

Числовые заголовки

Как работает Umask

Команда umask маскирует уровни разрешений, присваивая им определенное значение. Чтобы объяснить, как применяется значение umask, мы проиллюстрируем пример. Допустим, мы хотим установить разрешения по умолчанию для всех новых файлов или папок на 644 и 755. Затем мы будем использовать следующую команду.

Разрешение номер "2" (разрешение на запись) будет "отфильтровано" от системных разрешений по умолчанию 666 и 777 (отсюда и название "маска"). С этого момента система будет назначать разрешения по умолчанию 644. и 755 для новых файлов и каталогов. Проще говоря, чтобы вычислить биты разрешений для нового файла или каталога, мы просто вычитаем значение umask из значения по умолчанию, например.

Восьмеричное значение: разрешение

Мы можем использовать приведенную выше информацию для расчета прав доступа к файлам. Например, если для нашего umask установлено значение 077, разрешение можно рассчитать следующим образом:

Бит Нацелено наРазрешение на доступ к файлу
0Владелец чтение, запись и выполнение
7ГруппаНет разрешений
7МирНет разрешений

0 : чтение, запись и выполнение
7 : нет разрешений
7 : нет разрешений

Маска 000 сделает вновь созданные каталоги доступными для чтения, записи и выполнения всеми (права доступа будут 777).

Расположение конфигурации Umask

В большинстве дистрибутивов Linux значение umask можно найти и настроить в следующих местах:

  • /etc/profile — здесь хранятся общесистемные переменные по умолчанию
  • /etc/bash.bashrc — здесь хранятся файлы конфигурации оболочки по умолчанию

Символы немаскирования

Как отмечено выше на справочной странице umask, мы можем использовать определенные символы для указания значений разрешений, которые мы хотим установить. Для предварительного просмотра текущего установленного значения umask в символах мы используем следующую команду:

Чтобы изменить его, мы можем использовать команду, в которой буквы «u», «g» и «o» представляют пользователя, группу и другие или мир, как показано ниже.

При такой настройке разрешений мы добавляем к каждому заполнителю «$» нужный символ(ы) разрешения. Знак равенства «=» — не единственный оператор в нашем распоряжении при установке umask с символическими значениями. Мы также можем использовать операторы плюс «+» и минус «-».

  • Символ = позволяет включить разрешения, запрещая неуказанные разрешения.
  • Символ + позволяет включить разрешения, игнорируя неуказанные разрешения.
  • Символ - запрещает включение разрешений, игнорируя неуказанные разрешения

Использование пробелов после запятых не работает, и bash отобразит сообщение об ошибке "недопустимый оператор символьного режима".

Есть дополнительный символ, который можно использовать, когда мы хотим установить одно и то же разрешение для всех классов разрешений одновременно (пользователя, группы и других), а именно:

Заключение

Теперь, когда мы лучше понимаем функцию маски создания режима пользовательского файла, мы можем использовать ее с пользой.Это не только экономит наше драгоценное время и повышает безопасность, но также предоставляет нам лучшие возможности управления разрешениями.

Начните сегодня!

Остались вопросы по использованию umask? Позвоните нам по телефону 800.580.4985 или откройте чат или билет, чтобы поговорить с одним из наших опытных специалистов по решениям или с опытным консультантом по хостингу уже сегодня!

При создании нового файла или каталога Linux применяет набор разрешений по умолчанию. Команда umask позволяет изменить эти разрешения по умолчанию.

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

  • Система на базе Linux (например, Ubuntu, CentOS, Debian)
  • Учетная запись пользователя с правами sudo
  • Доступ к командному терминалу

Обзор маски

Термин umask относится к двум вещам:

<р>1. Команда Linux umask. umask (пользовательский режим создания файлов) — это команда Linux, которая позволяет установить разрешения по умолчанию для вновь создаваемых файлов и папок.

<р>2. Пользовательская «маска» разрешений. Пользователь может выбрать способ ограничения разрешений с помощью маски разрешений. Маска разрешений взаимодействует с системными разрешениями по умолчанию и изменяет их. Для применения этой маски используется команда umask.

Как работает Umask?

Команда umask влияет на права доступа к файлам и папкам Linux по умолчанию.

В Linux существует три категории разрешений для каждого файла и папки:

  • Пользователь: определяет разрешения для каждого отдельного пользователя. По умолчанию пользователь, создавший файл или папку, назначается владельцем.
  • Группа: определяет разрешения для группы пользователей с одинаковым уровнем доступа.
  • Другое: определяет разрешения для всех, кто не входит в две предыдущие категории.

Используйте следующую команду, чтобы просмотреть разрешения для домашней папки:

Каждая строка вывода начинается с 10-символьной строки с подробным описанием разрешений. Разбивая выделенную запись, эта строка состоит из следующих элементов:

  • d : указывает тип файла (каталог).
  • rwx : указывает права пользователя (чтение, запись и выполнение).
  • r-x : указывает права группы (чтение и выполнение).
  • r-x : указывает другие разрешения (чтение и выполнение).

Синтаксис команды umask

Использование команды umask без дополнительных параметров команды возвращает текущую маску в качестве выходных данных:

Команда umask использует следующий синтаксис:

  • [маска]: новая маска разрешений, которую вы применяете. По умолчанию маска представлена ​​в виде числового (восьмеричного) значения.
  • [-S]: отображает текущую маску как символьное значение.
  • [-p]: отображает текущую маску вместе с командой umask, позволяя копировать и вставлять ее в качестве будущего ввода.

Символические и числовые значения umask

Как мы упоминали в приведенном выше примере, umask может отображаться как числовое (восьмеричное) или символьное значение.

Маска может иметь следующие числовые и соответствующие символьные значения:

0 --- Нет разрешения
1 --x Выполнить
2 -w- Запись
3 -wx Запись и выполнение
4 r-- Чтение
5 rx Чтение и выполнить
6 rw- Чтение и запись
7 rwx Чтение, запись и выполнение

Как рассчитать значения Umask

Linux использует следующие значения маски и разрешений по умолчанию:

  • Системные значения разрешений по умолчанию: 777 ( rwxrwxrwx ) для папок и 666 ( rw-rw-rw- ) для файлов.
  • Маска по умолчанию для пользователя без полномочий root — 002, права доступа к папке изменены на 775 ( rwxrwxr-x ), а права доступа к файлам — на 664 ( rw-rw-r-- ).
  • Маска по умолчанию для пользователя root — 022, права доступа к папке изменены на 755 ( rwxr-xr-x ), а права доступа к файлам — на 644 ( rw-r--r-- ).

Это показывает нам, что окончательное значение разрешения является результатом вычитания значения umask из значения разрешения по умолчанию (777 или 666).

Например, если вы хотите изменить значение разрешения папки с 777 (чтение, запись и выполнение для всех) на 444 (чтение для всех), вам необходимо применить значение umask, равное 333, поскольку:

Как установить и обновить значение Umask по умолчанию

Используйте следующий синтаксис, чтобы применить новое значение umask:

  • [mask] : Маска, которую вы хотите применить, в виде символьного или числового значения.

Настройка символического значения Umask

Установите новое значение umask, используя символические значения со следующим синтаксисом:

Примечание. Никогда не используйте пробел после запятой при настройке значения символической маски.

Есть и другие операторы, которые вы можете использовать:

  • = : создает указанные права доступа к файлам и запрещает неуказанные разрешения.
  • + : создает указанные разрешения, но не изменяет неуказанные разрешения.
  • -: запрещает указанные разрешения, но не изменяет неуказанные разрешения.

Настройка числового значения Umask

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

  • [маска] : числовое значение маски, которую вы хотите применить.

Разница между umask и chmod

Команда chmod в Linux работает аналогично команде umask. Он также используется для определения разрешений для файлов и папок.

Разница между umask и chmod заключается в том, что umask изменяет разрешения по умолчанию и, следовательно, разрешения для всех вновь создаваемых файлов и папок, а chmod устанавливает разрешения для уже существующих файлов и папок.

После выполнения этого руководства вы сможете просматривать и изменять umask, используя символьные или числовые значения.

Не забудьте также ознакомиться с нашей памяткой по командам Linux, чтобы узнать о наиболее часто используемых командах Linux.

Читайте также: