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

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

Рубрики:

Новости

Метки:

Утилита umask (от англ. user file creation mode mask) — инструмент командной строки Linux, который используется для установки прав доступа по умолчанию для создаваемых файлов и каталогов.

В этой статье мы расскажем, как применять команду umask в операционной системе Linux.

Содержание:

  1. Права доступа файлов в Linux
    1. Символьная нотация
    2. Восьмеричная нотация
    3. Двоичная нотация
  2. Синтаксис команды umask
  3. Объяснение работы утилиты umask
  4. Создание тестовых файла и каталога в Linux
  5. Установка нового значения для umask
  6. Выводы

Права доступа файлов в Linux

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

  • чтение;
  • запись;
  • выполнение.

Важно: указанные права доступа также записываются только в таком порядке.

Разрешения файлов и каталогов можно представить в виде символьной, восьмеричной и двоичной нотаций.

Символьная нотация

Права доступа записываются с помощью букв: r — чтение, w — запись, x — выполнение, - — нет прав доступа. Набор разрешений для каждого пользователя устанавливается комбинацией из трех символов, которые содержат указанные буквы или -. В начале набора прав доступа указывается специальное значение, которое определяет тип файла: d — каталог, - — обычный файл, l — символическая ссылка. Например:

  • drwxr-xr-x означает каталог (d) с разрешениями на чтение, запись и выполнение для владельца (rwx), и разрешения на чтение и выполнение для группы (r-x) и других пользователей (r-x);
  • -rw-r--r-- представляет обычный файл (-) с разрешениями на чтение и запись для владельца (rw-) и только на чтение для группы (r--) и других пользователей (r--).

 

Восьмеричная нотация

Права доступа записываются с помощью цифр от 0 до 7, где каждая цифра соответствует сумме разрешений: 4 — чтение, 2 — запись, 1 — выполнение, 0 — нет прав доступа. Набор разрешений для файла имеет вид трехзначного числа, каждая цифра которого означает права доступа для соответствующего пользователя. Например:

  • 777 представляет полные права доступа на файл (чтение, запись и выполнение) для владельца (4 + 2 + 1 = 7), группы (4 + 2 + 1 = 7) и других пользователей (4 + 2 + 1 = 7);
  • 644 представляет разрешения на чтение (4) и запись (2) для владельца (4 + 2 = 6), и только на чтение для группы (4) и других пользователей (4).

Двоичная нотация

Права доступа записываются с помощью последовательности трех битов для каждого разрешения. Каждый бит соответствует определенному праву доступа: первый бит — чтение, второй бит — запись, третий бит — выполнение. Набор разрешений для каждого пользователя устанавливается соответствующей последовательностью из девяти символов (по три знака для каждого права доступа). Например:

  • 111 — полные разрешения (чтение, запись и выполнение);
  • 101 — разрешения на чтение и выполнение, но не на запись.

Вот таблица, в которой показано, как соответствуют друг другу права доступа в каждой нотации:

Разрешение Символьная Восьмеричная Двоичная
Чтение r 4 100
Запись w 2 010
Выполнение x 1 001
Нет разрешения - 0 000

По умолчанию в Linux установлены следующие стандартные наборы прав доступа для:

  • каталога777 (чтение, запись, выполнение для всех пользователей);
  • файла666 (только чтение, запись для всех пользователей).

Важно: из-за требований безопасности операционной системы Linux, предоставление файлам права на выполнение по умолчанию не допускается. Поэтому для файлов установлен набор разрешений 666.

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

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

 

Где:

  • [option] — необязательные опции;
  • [new mask] — новое значение прав доступа по умолчанию.

 

Чтобы узнать, с какими разрешениями создаются файлы и директории в Linux, выполните следующую команду без опций или с параметром -S:

 

umask

На скриншоте выше видно, что umask без опций вывела на экран значение 0002, а с опцией -Su=rwx,g=rwx,o=rwx.

Объяснение работы утилиты umask

Каждая цифра umask имеет свое определение:

  1. Первая — «липкий» бит (дополнительный атрибут, отвечающий за безопасность файла). Мы его рассматривать в данной статье не будем.
  2. Вторая — права доступа файла для владельца.
  3. Третья — разрешение файла для группы.
  4. Четвертая — права доступа файла для других пользователей.

Значение записывает в восьмеричной нотации. Причем каждая цифра указывает, какие права доступа файла для определенного пользователя удалены:

  • 0 — нет удаленных разрешений;
  • 1 — разрешение на выполнение удалено;
  • 2 — право доступа на запись удалено;
  • 3 — разрешения на запись и выполнение удалены;
  • 4 — право доступа на чтение удалено;
  • 5 — разрешения на чтение и выполнение удалены;
  • 6 — права доступа на чтение и запись удалены;
  • 7 — разрешения на чтение, запись и выполнение удалены.

Читайте также: Как копировать права доступа с одного файла в другой на Linux.

Давайте разберем на практике, как это работает. Для примера возьмем значение 0002. Уберем первый ноль из него, так как это «липкий» бит. У нас остается 002. Это разрешение указывает, что создаваемые файлы будут иметь права доступа 664 (rw-rw-r--), а каталоги775 (rwxrwxr-x). Как мы пришли к такому выводу:

  1. Для файлов — вычтем 002 из 666 (стандартный набор прав доступа файла по умолчанию). Получим 666002 = 664.
  2. Для каталогов — вычтем 002 из 777 (стандартный набор прав доступа каталога по умолчанию). Получим 777002 = 775.

Важно: если в процессе вычислений выясняется, что файл может получить право на исполнение (что изначально запрещено правилами Linux, как мы сказали ранее), то ОС автоматически лишает его этого разрешения, сохраняя все остальные.

Создание тестовых файла и каталога в Linux

Давайте убедимся в том, что в нашей ОС новые файлы имеют права доступа 664 (-rw-rw-r--), а каталоги775 (drwxrwxr-x). Для этого создадим тестовый файл и директорию с помощью утилит touch и mkdir, соответственно:

 

Затем выполним команду ls -l, чтобы узнать разрешения файлов:

 

create new dir and file

Читайте также: Как создать файл в Linux.

На скриншоте выше видно, что права доступа к файлу и директории соответствуют предположениям, которые мы выдвигали ранее.

Установка нового значения для umask

Для примера давайте зададим для umask значение 0123. Сделаем это с помощью следующей команды:

 

new umask

Набор цифр 0123 означает, что создаваемый файл будет иметь такие разрешения:

  1. 61 = 5 — владелец (rw-, чтение и запись).
  2. 62 = 4 — группа (r--, только чтение).
  3. 63 = 3 — другие пользователи (r-x, чтение и исполнение) . Но так как по требованиям Linux файл не может по умолчанию иметь разрешение на исполнение, тогда другие пользователи будут иметь только право на чтение 4 (r--).

То есть, общий набор прав доступа для нового файла — 544 (-rw-r--r--). А создаваемые каталоги будут иметь следующие разрешения:

  1. 71 = 6 — владелец (rw-, чтение и запись).
  2. 72 = 5 — группа (r-x, чтение и исполнение).
  3. 73 = 4 — другие пользователи (r--, только чтение) .

То есть, общий набор прав доступа для нового каталога — 654 (drw-r-xr--). Убедимся, что наши расчеты верны, создав новые файл и папку:

 

create new dir and file 1

На скриншоте видно, что мы посчитали все правильно.

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

Выводы

Теперь Вы знаете, что такое утилита umask и про ее функционал в Linux. Мы также показали Вам пару примеров, как устанавливать права доступа для файлов по умолчанию. Надеемся, что эта статья была полезной для Вас!

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Новости

Метки:

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Результатов не найдено.
Популярное
Рубрики