Права доступа к файлам Linux. Изменение прав доступа
Как известно операционная система Linux возникла в начале 90-х. годов на основе ОС Unix, а именно ее ядра и одним из наследий Linux является разработанная в 70-х. годах система разграничения прав доступа к файлам и каталогам, которая и по сегодняшний день отлично справляется со своей задачей.
Это обусловлено гибкостью программы разграничения прав доступа chmod, которые задаются с помощью одноименной команды интерпретатора команд shell.
Понимание и реализация концепции разграничения прав доступа поможет обеспечить максимальную безопасность Ваших данных, будь то персональный компьютер или сайт, находящийся на хостинге под управлением ОС Linux.
Просмотреть текущие права доступа к файлам Linux или каталогу можно по команде
где object – имя файла или каталога. Результат выполнения команды выглядит следующим образом:
где:
Выделяют 3 группы, которые могут иметь права доступа к файлам Linux (в скобках приведены обозначения, для аргументов chmod):
и 3 вида прав доступа для каждой группы:
а также 3 вида операций:
С помощью команды chmod также происходит управление битами, которые позволяют производить тонкое изменение прав доступа и запускать файл на выполнение с правами владельца или группы (биты SGID и SUID).
Изменение прав доступа Linux задается аргументами команды chmod. Изменять права доступа к файлу может его владелец или суперпользователь (root). Например, команда, добавляющая право записи для группы владельца файла выглядит так:
Рассмотрим другие примеры:
Также, права доступа к файлам Linux можно изменять явным указанием нужных разрешений при каждом изменении. Для этого используется символьное или цифровое обозначение нужных прав, где каждому виду прав доступа сопоставлены цифры 4, 2, 1 для r, w, x соответственно, а итоговые права доступа к файлам определяются их суммой. Примеры таких записей:
Если файлу устанавливается разрешение на выполнение с правами владельца или группы, то записи chmod будут выглядеть следующим образом:
Права доступа к папке Linux задаются аналогично правам доступа к файлу, но следует учесть, что трактовка полученного доступа не так прозрачна, как в случае с файлами, а именно:
Если SGID установлен для каталога, то каждый создаваемый файл в нем, будет принадлежать к группе, к которой относится каталог, а не к группе пользователя, как это делает по умолчанию.
Изменение прав доступа к папке Linux с помощью SUID не имеет смысла.
Существует еще один бит применяемый только для изменения права доступа к папке Linux (бит T). Если t-бит не установлен, то удалить файл из папки может любой пользователь имеющий право записи в эту папку.
Установка t-бита разрешает удаление файла из каталога только владельцу файла. Для установки t-бита нужно ввести команду
где a — означает всех пользователей (от англ. – all).
Это обусловлено гибкостью программы разграничения прав доступа 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 комментариев