img

Как установить права доступа в Linux

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

При решении целого ряда задач администратору требуется изменить уровень доступа, который управляется командой chmod (change mode – изменить режим). Разберём подробнее как именно происходит изменение прав и какие ещё команды могут пригодиться Вам в этом процессе.


Введение

Структура разрешений для файлов и директорий в Linux являет собой матрицу 3 на 3 – есть три различных уровней доступа (read, write и execute – чтение, запись и выполнение), которые доступны для трёх типов пользователей – владельца файла, группы и others – «остальных».

Для наглядности, посмотрите на вывод команды ls -l

-rw-r--r--   1 root root       0 Mar 10 11:05 freepbx_menu.conf

В примере выше, пользователь - root, обладает правами чтения и записи, группа имеет права чтения, также, как и others.

  • r (read) - разрешение на чтение содержимого файла, в случае директории – право на просмотр файлов и поддиректорий
  • w (write) - разрешение на запись в файл, для директории – возможность создания файлов в директории и создание поддиректорий
  • x (execute) - разрешение на запуск файла в виде программыскрипта, для директории – допуск в директорию

Изменение уровня доступа

Для начала необходимо указать на важный момент – каждый уровень доступа имеет свое численное обозначение:

  • r (read) - 4
  • w (write) - 2
  • x (execute) - 1

Для получения комбинаций прав – числа нужно сложить. Для уровня доступа rwx число будет равным 7 (4+2+1). Использовать можно также и буквенные обозначения, как удобнее конкретно для вас, но с численным представлением команды получаются короче :) При изменении уровня доступа у файла нужно знать следующее:

  • Первое число - права для юзера
  • Второе число - права для группы
  • Третье число - права для others

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

chmod 440 file.txt

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

 chmod 777 file2.txt 

И соответственно, так далее, в зависимости от ваших нужд.


Использование umask – настройка уровня доступа по умолчанию

По умолчанию значение umask - 0022, которое определяет права доступа по дефолту для нового файла или директории. Для файла разрешение по умолчанию равно 0666, для директории - 0777. Значение маски вычитается из этих дефолтных значений и получается финальное значение.

У файла по умолчанию – 0666, то есть права rw-rw-rw-, но с учетом дефолтной маски 0022, файл будет создан со значением 0644 – rw-r—r--.

В случае директории результирующим значением будет 0755, то есть rwx-r-x-r-x.

С помощью команды umask xxxx всегда можно изменить значение маски по умолчанию. К примеру:

umask 0077
 Как установить права доступа в Linux

Как видно, права изменились с rw-r--r--для нового файла на –rw-------.


Несколько полезных примеров использования chmod

Ниже приведён список нескольких вариантов использования команды chmod - во многих случаях они очень сильно облегчают процесс настройки вашего сервера.

На всякий случай помните, что пользователь имеет обозначение u, группа g и остальные - o. Если же необходимо изменение прав сразу у всех вышеупомянутых сущностей – используйте обозначение a.
  • chmod u+x %имяфайла% - добавление права выполнения только для пользовательского уровня, то есть добавление права execute для user;
  • chmod u+r,g+x %имяфайла% - добавление прав чтения для юзера и исполнения для группы;
  • chmod u-rx %имяфайла% - модификатор - используется для того, чтобы убрать какое-то разрешение, в данном случае – для пользователя остается только право записи в файл;
  • chmod a+rx %имяфайла или директории% -добавление права выполнение и чтения для юзера, группы и остальных – то есть вообще все могут исполнять этот файл;
  • $ chmod --reference=%имяфайла1% %имяфайла2% - установка прав доступа для файла1 равными правам доступа у файла2;
  • chmod -R 755 %имядиректории%/ - рекурсивное изменение прав доступа для всех файлов и подкаталогов в директории;
  • chmod u+X * -изменение прав доступа только для подкаталогов, у файлов в главной директории уровень прав доступа останется неизменным;
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker