EN
RU
Поскольку ОС GNU-Linux (просто Linux далее) с самого начала разрабатывалась как многопользовательская, в ней предусмотрен такой механизм, как права доступа к файлам и папкам. Он позволяет разграничить полномочия пользователей, работающих в системе. В частности, права доступа позволяют отдельным пользователям иметь “личные” файлы и папки. Например, если пользователь "user" создал в своей домашней папке файлы, то он является владельцем этих файлов и может определить права доступа к ним для себя и остальных пользователей. Он может, например, полностью закрыть доступ к своим файлам для остальных пользователей, или разрешить им читать свои файлы, запретив изменять и исполнять их.
Самым простым способом настройки прав доступа к файлам и папкам является работа с меню "Свойства файла" в Вашем файловом менеджере (см. иллюстрацию). Подробности, включая тонкую настройку прав доступа в консоли Linux - далее.
Правильная настройка прав доступа позволяет повысить надёжность операционной системы, защитив от изменения или удаления важные системные файлы. Наконец, поскольку внешние устройства с точки зрения операционной системы Linux также являются объектами файловой системы, механизм прав доступа можно применять и для управления доступом к устройствам. У любого файла в системе есть владелец - один из пользователей, однако, каждый файл одновременно принадлежит и некоторой группе пользователей системы. Каждый пользователь может входить в любое количество групп, и в каждую группу может входить любое количество пользователей из числа определённых в операционной системе. Механизм групп может применяться для организации совместного доступа нескольких пользователей к определённым ресурсам. Например, на сервере организации для каждого проекта может быть создана отдельная группа, в которую войдут учётные записи (имена пользователей) сотрудников, работающих над этим проектом. При этом файлы, относящиеся к проекту, могут принадлежать этой группе и быть доступными для её членов. Права доступа определяются по отношению к трём типам действий: чтение, запись и исполнение. Эти права доступа могут быть предоставлены трём классам пользователей: владельцу файла (пользователю), группе, которой принадлежит файл, а также всем остальным пользователям, не входящим в эту группу.
cd
".Возможность доступа к файлу зависит так же от прав доступа к папке, в которой он находится: чтобы воспользоваться имеющимися у Вас правами доступа к файлам, Вы должны иметь права на исполнение всех папок в их пути.
Права доступа к файлам и папкам в ОС Linux могут распределять не только сами пользователи вручную, но и некоторые системные процессы: например - механизм монтирования файловых систем. Таким образом права доступа ко вновь подключенным частям файловой системы будут изначально определяются системными правилами.
Имея в своей основе ядро Linux, Android-Linux (просто Android далее) использует те же самые модель и механизмы распределения прав к фалам и папкам в системе, что и традиционные дистрибутивы Linux. ОС Android, будь то официальная стандартная прошивка устройства или модифицированная версия Android CyanogenMod, например, включают в себя простейшие консольные программные утилиты GNU для управления правами доступа к файлам и папкам: chmod, chown и т.п.
Чтобы получить информацию о правах доступа к файлам и папкам в консоли Linux, используйте команду ls
с ключом -l
. При этом будет выведена подробная информация о файлах и папках, в которой будут, среди прочего, отражены права доступа.
ls -l (имя_файла)
Другие поля описаны в документации к команде ls
(ls --help
). Последовательность "-rw-r--r--" условно разбивается на четыре секции (-/rw-/r--/r--): один первый символ и каждые три последующих, отражающих права доступа для владельца файла, членов группы пользователей владельцев файла, а также для всех остальных пользователей, соответственно. Символ "r" - сокращение от "read" (англ. "читать"), а "w" - сокращение от "write" (англ. "писать"). Таким образом, пользователь "user" из примера (см. выше) имеет право на чтение и запись (изменение) файла, пользователи, состоящие в группе "users", так же как и все прочие, среди прав доступа имеют только право чтения (просмотра) файла.
Ниже перечислены важнейшие команды для решения задач, связанных с изменением прав доступа к файлам и папкам операционной системы Linux.
chmod 664 имя_файла
664
- одна из последних трёх секций последовательности "-rw-rw-r--" (см. выше), но в цифровом виде.Цифры кода получаются методом сложения чисел, условно обозначающих одно из прав доступа:
chown user1 имя_файла
chown user1:others имя_файла
chgroup others имя_файла
При работе с символьной ссылкой chmod изменяет права доступа файла, связанного с ней. При этом chmod проигнорирует символьные ссылки, встретившиеся программе во время рекурсивной обработки папок.
Многие современные дистрибутивы Linux используют механизм ACL ("Access Control Lists", англ. "списки контроля доступа"), позволяющий расширить используемые права доступа к файлам и папкам, дополняя их специализированными настройками доступа для определённых пользователей и групп. Таким образом, например, могут быть защищены монтируемые пользователями диски (оптические носители, "флэш"-карты и т.п.): принадлежа администратору компьютера - пользователю root, папки с адресами вида "/media/user/disk" могут быть доступны для чтения и записи смонтировавшему диск пользователю. Если такие расширенные настройки прав доступа используются для управления каким-либо файлом или папкой, при выводе списка файов командой ls -al
, в поле прав доступа такого файла Вы обнаружите знак "+" в последовательности типа "drwxr-x---+".
getfacl имя_файла
setfacl -b имя_файла
setfacl -m u:user:x / g:group:r имя_файла
Для того, чтобы узнать, используется ли в вашей ОС Linux механизм расширения прав доступа к файлам и папкам, чаще всего достаточно уточнить наличие соответствующего программного пакета ("acl" - в случае с Debian Linux, например).