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

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

Technical_capability


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

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


  • u (user) владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • g (group) группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • o (other) остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.

____________________________________________________________________________

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

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

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

____________________________________________________________________________

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

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

  • 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

Как видно, права изменились с 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 * -изменение прав доступа только для подкаталогов, у файлов в главной директории уровень прав доступа останется неизменным.


Report Page