Найти в Дзене
Кадр за кадром

Права доступа

Права доступа Права доступа взаимодействуют со всеми файлами и процессами находящимися в системе. У каждого объекта в системе есть владелец и определенные права доступа к нему. Суперпользователь (root) способен изменить все параметр относящиеся к правам на системных объектах. Рассмотрим три основных варианта прав доступа к файлам: При доступе система определяет, в какой категории присутствует объект. В момент доступа осуществляется просчитывание прав в данной категории. Для описания доступа к файлу применимы числовые и символьные обозначения: Итоговые права для категории записываются либо слитно(с прочерком на месте отсутствующих прав) либо в виде суммы. Итоговая строка прав — три тройки символов или три суммы: rwxr-x-r-x / 755 r--r--r-- / 444 Права можно изменить при помощи утилиты chmod; Права для файла можно задать в текстовой, либо в символьной форме, в абсолютном или относительном виде. Присутствует поддержка маски для задания файлов. Ключи включают в себя варианты модификации п
Оглавление
  • Права доступа
  • Доступ к каталогам
  • Владелец файла
  • Биты доступа

Права доступа

Права доступа взаимодействуют со всеми файлами и процессами находящимися в системе. У каждого объекта в системе есть владелец и определенные права доступа к нему. Суперпользователь (root) способен изменить все параметр относящиеся к правам на системных объектах.

Рассмотрим три основных варианта прав доступа к файлам:

  • Все пользователи помимо группы и владельца файла;
  • Доступ для членов состоящих в группе, которой принадлежит этот конкретный файл. Группу и пользователей в этой группе можно определить по параметру GID.
  • Доступ для хозяина файла. Для этого необходимо совпадение параметра UID пользователя и владельца самого файла.

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

  • x/1 - запуск файла для исполнения;
  • w/2 - возможность записи в файл;
  • r/4 - чтение файла.

Итоговые права для категории записываются либо слитно(с прочерком на месте отсутствующих прав) либо в виде суммы. Итоговая строка прав — три тройки символов или три суммы:

rwxr-x-r-x / 755

r--r--r-- / 444

Права можно изменить при помощи утилиты chmod;

  • chmod <Ключи> <Права> <Файл>
  • chmod -c 0755 file.txt

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

  • -c/-v - протоколировать работу chmod;
  • - h - устанавливать права на файлы ссылок, а не на сами файлы;
  • -R - рекурсивно обходить каталоги.

Символьное описание прав выполняется в виде прописывания прав для каждой категории. Операции — дать право, убрать право, присвоить набор прав. u/g/o/a — Пользователь/Группа/Остальные/все.

<Секция>=<Права>,<Секция>=<Права>,<Секция>=<Права>

  • chmod u=rw,g=rw,a= file1.txt

Выполнение происходит «от большего к частному» - убрать все права от всех, установить права для хозяина в rw, права группы — rw, права для остальных оставить нулевыми. Допустимо добавлять\убирать отдельные права с помощью операций «+» и «-».

  • chmod u+x,a+r file.txt

Добавить право на чтение для всех, добавить право на запуск хозяину файла.

-2

Доступ к каталогам

Права доступа на каталог трактуются иначе в виду особенности применения директорий в работе ОС. Используют аналогичную символику и утилиту chmod. В определенном смысле имеют приоритет — чтобы достичь файла, нужно сначала пройти через каталог.

  • r / 4 — возможность просмотреть содержимое директории;
  • w / 2 — возможность создавать и удалять файлы — записывать в файл каталога;
  • x / 1 — проход через каталог — возможность захода в директорию и обращение к содержимому;

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

-3

Биты доступа

Существуют права, которые отличаются от классических DAC — существование обусловлено техническими причинами. Подобные права устанавливаются специальными битами, которые устанавливаются в первый символ строчки числового описания прав.

  • SUID — Set User ID — запуск программы не от имени вызвавшего пользователя, а от имени хозяина файла. Потенциально небезопасно и является крайней мерой. Код 4;
  • SGID — Set Group ID — все созданные файлы в каталоге с SGID получают группу- владелец родительской директории. Все подкаталоги наследуют SGID. Код 2;
  • Sticky Bit — удаление файлов в каталоге разрешено только хозяину файла, хозяину каталога и пользователю root. Код 1.

Присвоение специальных битов выполняется с помощью chmod:

  • chmod 1777 <Каталог>
  • chmod 2777 <Каталог>
  • chmod 4555 <Файл>

Владелец файла

Владелец файла — пользователь системы, с которым ассоциирован данный файл. Владелец способен изменять права на файл. Только root способен менять владельца файла.

Для работы с файлами используется команда chown:

  • chown <Владелец> <Файл>
-4

Ключи аналогичны chmod. Владелец задается с помощью четырех способов:

  • <Пользователь>:<Группа> - установить Пользователя в качестве хозяина файла, установить Группу в качестве хозяйской;
  • <Пользователь>: - установить Пользователя в качестве хозяина файла, главную группу Пользователя установить в качестве хозяйской;
  • <Пользователь> - установить Пользователя в качестве хозяина файла, группу не менять;
  • :<Группа> - установить Группу в качестве хозяйской, хозяина файла не менять;

При создании файла права на файл устанавливаются автоматически согласно маске. Маска может быть переопределена командой bash.

  • umask <Маска>

Концепция «маска» - набор цифр, вычитаемых из максимально возможных прав. Получившиеся права будут присвоены файлу. Максимальные права на файл, от которых выполняется вычитание — 0666. Для каталога 0777. Специальные биты на маске выставлять нельзя.

Маска 0022, 0666 — 0022 = 0644, для каталогов 0777 — 0022=0755.