Права доступа к файлам Linux. Изменение прав доступа

Как известно операционная система Linux возникла в начале 90-х. годов на основе ОС Unix, а именно ее ядра и одним из наследий Linux является разработанная в 70-х. годах система разграничения прав доступа к файлам и каталогам, которая и по сегодняшний день отлично справляется со своей задачей.

Это обусловлено гибкостью программы разграничения прав доступа chmod, которые задаются с помощью одноименной команды интерпретатора команд shell.

Понимание и реализация концепции разграничения прав доступа поможет обеспечить максимальную безопасность Ваших данных, будь то персональный компьютер или сайт, находящийся на хостинге под управлением ОС Linux.

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


Просмотреть текущие права доступа к файлам Linux или каталогу можно по команде

ls -l /home/object

где object – имя файла или каталога. Результат выполнения команды выглядит следующим образом:

-rwxr-xr-- 1 user users 33 Oct 17 10:56 object

где:

  • -rwxr-xr-- — символьное обозначение прав доступа к файлам Linux для разных групп пользователей, о чем подробнее будет сказано ниже (первый символ обозначает тип объекта, в данном случае «-» означает обычный файл, в случае с папкой впереди будет стоять «d»);
  • user – имя владельца файла;
  • users – имя группы владельца файла.

Выделяют 3 группы, которые могут иметь права доступа к файлам Linux (в скобках приведены обозначения, для аргументов chmod):

  • owner (u) – владелец файла;
  • group (g) – группа владельца файла;
  • others (o) – все остальные;

и 3 вида прав доступа для каждой группы:

  • право на чтение ®;
  • право на запись (w);
  • право на исполнение (x);

а также 3 вида операций:

  • добавить (+);
  • убрать (-);
  • присвоить (=)

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

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


Изменение прав доступа Linux задается аргументами команды chmod. Изменять права доступа к файлу может его владелец или суперпользователь (root). Например, команда, добавляющая право записи для группы владельца файла выглядит так:

chmodg+wfail.pl

Рассмотрим другие примеры:

  • chmodug+wfail.pl – добавляет права доступа к файлам Linux для совершения записи для владельца и группы владельца;
  • chmodgo=rfail.pl – дает право чтения файла всем пользователям, кроме владельца;
  • chmodo-xfail.pl – лишает пользователей не находящихся в группе владельца права исполнения файла fail.pl

Также, права доступа к файлам Linux можно изменять явным указанием нужных разрешений при каждом изменении. Для этого используется символьное или цифровое обозначение нужных прав, где каждому виду прав доступа сопоставлены цифры 4, 2, 1 для r, w, x соответственно, а итоговые права доступа к файлам определяются их суммой. Примеры таких записей:

  • chmodrw-r--r-- или chmod 644 – команда разрешает владельцу чтение и запись файла, а пользователям из группы владельца и всем остальным, только чтение.
  • chmodrwxr-xr-x или chmod 755 – команда дает владельцу выполнять любые операции с файлом, а пользователям из группы владельца и всем остальным разрешено чтение и исполнение.
  • chmodrwxrxxrxx или chmod 777 – у всех пользователей есть все права.

Если файлу устанавливается разрешение на выполнение с правами владельца или группы, то записи chmod будут выглядеть следующим образом:

  • chmodr-sr-xr-xfail.plили chmod 4555 для запуска с правами владельца, где «4» — обозначение бита SUID;
  • chmodr-xr-sr-xfail.plили chmod 2755 для запуска с правами группы, где «2» — обозначение бита SGID

Права доступа к папке Linux

Права доступа к папке Linux задаются аналогично правам доступа к файлу, но следует учесть, что трактовка полученного доступа не так прозрачна, как в случае с файлами, а именно:

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

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

Изменение прав доступа к папке Linux с помощью SUID не имеет смысла.

Существует еще один бит применяемый только для изменения права доступа к папке Linux (бит T). Если t-бит не установлен, то удалить файл из папки может любой пользователь имеющий право записи в эту папку.

Установка t-бита разрешает удаление файла из каталога только владельцу файла. Для установки t-бита нужно ввести команду

chmod a+tw

где a — означает всех пользователей (от англ. – all).

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.