Права доступа к файлам и папкам в 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 - определение прав доступа по умолчанию для файлов, создаваемых пользователем

/ Подготовлено с использованием материалов http://heap.altlinux.ru /

Комментарии

Спасибо

Статья полезная, просвещающая, но пока так и не понял как открыть для себя доступ к папке "usr/share/qutim"
на подсказанный запрос вида: "ls -la usr/share/qutim"
выводится "drwx-xr-x 3 root root 4096 2011-01-09 00:15 ." и еще две строки подобного содержимого танцы с chmod ни к чему не привели, либо "читайте help" либо "операция не позволяется"

Код drwx-xr-x означает, что Вы не имеете права как-либо изменять папку /usr/share/qutim от имени обычного пользователя. В том числе, чтобы изменить права доступа к этой папке необходимо действовать от имени администратора (режимы su, или sudo).

Например:

sudo chmod 777 /usr/share/qutim

Значение 777 соответствует drwxrwxrwx (для папки) и получено при помощи суммирования значений цифровых кодов прав доступа:

  • 4 — право на чтение (r);
  • 2 — право на запись (w);
  • 1 — право на выполнение (x);

Каждый порядок числа 777 - группа прав, т.е.: значения для владельца файла (папки), для - группы, которой принадлежит файл (папка), и - всех остальных.

Вы так же можете просто изменить владельца папки на Вашего персонального:

sudo chown username /usr/share/qutim

Однако, хочу Вас предупредить, что обычно операции в системных папках, коими являются в Linux все, кроме /home пожалуй, выполняются от имени суперпользователя (в режимах su/sudo) без изменения прав доступа к ним непосредственно. Плюс ко всему, почти все программы сохраняют свои настройки в домашней папке пользователя, от имени которого они были запущены, а папка /urs/share служит для хранения общих/стандартных настроек, иконок и т.п.

здравствуйте, не могли бы вы мне ответить на вопрос.
пытаюсь настроить права доступа в openSUSE 12,1 для папки /windows/C
пробовал через chmod, chown, chgrp ничего не выходит, права только для рута, для остальных их нет, как это изменить?
ls -l /windows
выдает такую вещь : drwxr-xr-x 1 root users

ls -l /
выдает : drwxrwxrwx 3 root users

Похожая проблема

А вот у меня такая проблема, есть web хостинг, на котором множество виртуальных хостов, с сайтами, естественно, каждый админ сайта имеет ftp доступ к своей директории сайта, но файлы, которые он закидывает по ftp не дают доступ к себе с web панели. пользователь, под которым запускается апач www-data и группа такая же, а ftp-сервер под каким пользователем запускается не могу найти. Основная проблема-дать доступ на изменение пользователю www-data файла, который создан пользователем ftp, которого создали через панель управления хостингом ISPconfig

А вот у меня такая проблема, есть web хостинг, на котором множество виртуальных хостов, с сайтами, естественно, каждый админ сайта имеет ftp доступ к своей директории сайта, но файлы, которые он закидывает по ftp не дают доступ к себе с web панели. пользователь, под которым запускается апач www-data и группа такая же, а ftp-сервер под каким пользователем запускается не могу найти. Основная проблема-дать доступ на изменение пользователю www-data файла, который создан пользователем ftp, которого создали через панель управления хостингом ISPconfig

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

  • Доступны HTML теги: <em> <b> <code> <ul> <ol> <li>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA на основе изображений
Enter the characters shown in the image.