пятница, 3 февраля 2012 г.

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

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


Правильная настройка прав доступа позволяет повысить надёжность системы, защитив от изменения или удаления важные системные файлы. Наконец, поскольку внешние устройства с точки зрения Linux также являются объектами файловой системы, механизм прав доступа можно применять и для управления доступом к устройствам.
У любого файла в системе есть владелец — один из пользователей. Однако каждый файл одновременно принадлежит и некоторой группе пользователей системы. Каждый пользователь может входить в любое количество групп, и в каждую группу может входить любое количество пользователей из числа определённых в системе.
Когда в системе создаётся новый пользователь, он добавляется по крайней мере в одну группу. В системе Linux при создании новой учётной записи создаётся специальная группа, имя которой совпадает с именем нового пользователя, и пользователь включается в эту группу. В дальнейшем администратор может добавить пользователя к другим группам.
Механизм групп может применяться для организации совместного доступа нескольких пользователей к определённым ресурсам. Например, на сервере организации для каждого проекта может быть создана отдельная группа, в которую войдут учётные записи (имена пользователей) сотрудников, работающих над этим проектом. При этом файлы, относящиеся к проекту, могут принадлежать этой группе и быть доступными для её членов.
Права доступа определяются по отношению к трём типам действий: чтение, запись и исполнение. Эти права доступа могут быть предоставлены трём классам пользователей: владельцу файла (пользователю), группе, которой принадлежит файл, а также всем остальным пользователям, не входящим в эту группу. Право на чтение даёт пользователю возможность читать содержимое файла или, если такой доступ разрешён к папке, просматривать её содержимое. Право на запись даёт пользователю возможность записывать или изменять файл, а право на запись для папки — возможность создавать новые файлы или удалять файлы из этой папки. Наконец, право на исполнение позволяет пользователю запускать файл как программу или сценарий командной оболочки (разумеется, это действие имеет смысл лишь в том случае, если файл является программой или сценарием). Для папок право на исполнение имеет особый смысл — оно позволяет сделать данную папку текущей, т. е. “перейти” в неё, например, командой cd.
Чтобы получить информацию о правах доступа к файлам и папкам в консоли, используйте команду ls с ключом -l. При этом будет выведена подробная информация о файлах и папках, в которой будут, среди прочего, отражены права доступа. Рассмотрим следующий пример:
/home/user/docs# ls -l report0041
-rw-r--r-- 1 user users 505 Mar 13 19:05 report0041
Первое поле в этой строке (-rw-r--r--) отражает права доступа к файлу. Третье поле указывает на владельца файла (user), четвёртое поле указывает на группу, которая владеет этим файлом (users). Последнее поле — это имя файла (report1303). Другие поля описаны в документации к команде ls (ls --help).
Данный файл является собственностью пользователя user и группы users. Последовательность -rw-r--r-- показывает права доступа для пользователя — владельца файла, пользователей — членов группы-владельца, а также для всех остальных пользователей.
Первый символ из этого ряда (-) обозначает тип файла. Символ - означает, что это — обычный файл, который не является папкой (в этом случае первым символом было бы d) или псевдофайлом устройства (было бы c или b). Следующие три символа (rw-) представляют собой права доступа, предоставленные владельцу user. Символ r — сокращение от read (англ. читать), а w — сокращение от write (англ. писать). Таким образом, user имеет право на чтение и запись (изменение) файла report0041.
После символа w мог бы стоять символ x, означающий наличие прав на исполнение (англ. execute, исполнять) файла. Однако символ -, стоящий здесь вместо x, указывает, что user не имеет права на исполнение этого файла. Это разумно, так как файл report0041 не является программой. В то же время, пользователь, зарегистрировавшийся в системе как user, при желании может предоставить себе право на исполнение данного файла, поскольку является его владельцем. Для изменения прав доступа к файлу или папке используется команда chmod.
Следующие три символа (r--) отражают права доступа группы к файлу. Группой-собственником файла в нашем примере является группа users. Поскольку здесь присутствует только символ r, все пользователи из группы users могут читать этот файл, но не могут изменять или исполнять его.
Наконец, последние три символа (это опять r--) показывают права доступа к этому файлу всех других пользователей, помимо собственника файла и пользователей из группы users. Так как здесь указан только символ r, эти пользователи тоже могут читать файл.
Возможность доступа к файлу зависит также от прав доступа к папке, в котором находится файл. Например, даже если права доступа к файлу установлены как -rwxrwxrwx, другие пользователи не могут получить доступ к файлу, пока они не имеют прав на исполнение для папки, в которой находится файл. Другими словами, чтобы воспользоваться имеющимися у вас правами доступа к файлу, вы должны иметь право на исполнение для всех папок вдоль пути к файлу.
Ниже перечислены важнейшие команды для решения задач, связанных с правами доступа. Для получения более подробной информации об этих командах обращайтесь к руководствам по ним (например, chmod --help).
  • chmod - изменение прав доступа к файлу или папке
  • chown - изменение владельца файла
  • chgroup - изменение группы, которой принадлежит файл
  • umask - определение прав доступа по умолчанию для файлов, создаваемых пользователем

Комментариев нет:

Отправить комментарий