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

We use cookies. Read the Privacy and Cookie Policy

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

Для каждого каталога и файла вы можете задать права доступа. Точнее права доступа автоматически задаются при создании каталога (файла), а вы, при необходимости, можете их изменить. Какая может быть необходимость?

Например, вам нужно, чтобы к вашему файлу-отчету смогли получить доступ пользователи — члены вашей группы. Или вы создали обычный текстовый файл, содержащий инструкции командного интерпретатора. Чтобы этот файл стал сценарием, вам нужно установить право на выполнение для этого файла.

Существует три права доступа: чтение (r), запись (w), выполнение (x). Для каталога право на выполнение означает право на просмотр содержимого каталога.

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

Чтобы просмотреть текущие права доступа, введите команду:

ls — l <имя файла/каталога>

Например:

ls — l video.txt

В ответ компьютер покажет вам следующую строку:

— r-r--- 1 ppt group 300 Apr 11 11:11 video.txt

В этой записи последовательность символов — r-r--- обозначает права доступа. Первый дефис означает, что перед нами обычный файл. В случае каталога на его месте стояла бы буква d. Следующие три символа (r-) определяют права доступа владельца. Первый символ — это чтение, второй — запись, третий — выполнение. Как видно, владельцу разрешено только чтение этого файла, запись и выполнение запрещены, поскольку в правах доступа режимы w и x не определены.

Следующие три символа (r-) задают права доступа для членов группы владельца. Права такие же, как и у владельца — можно читать файл, но его нельзя изменять или запускать.

Последние три символа (--) задают права доступа для прочих пользователей. Прочие пользователи не имеют права ни читать, ни изменять, ни выполнять файл. При попытке получить доступ к файлу, они увидят сообщение Access denied.

Права доступа задаются командой chmod. Существуют два способа указания прав доступа: символьный (когда указываются символы, задающие права доступа — r, w, x) и абсолютный.

Так уже заведено, что в мире UNIX чаще пользуются абсолютным методом. Разберемся, в чем он заключается. Рассмотрим следующий набор прав доступа:

rw-r---

Он предоставляет владельцу право чтения и модификации файла (rw-), запускать файл владелец не может. Члены группы владельца могут только просматривать файл (r-), а все остальные пользователи не имеют вообще никакого доступа к файлу.

Возьмем отдельный набор прав, например, для владельца:

rw-

Чтение разрешено, значит, мысленно записываем 1, запись разрешена, значит, запоминаем еще 1, а вот выполнение запрещено, поэтому запоминаем 0. Получается число 110. Если из двоичной системы число 110 перевести в восьмеричную, получится число 6. Для перевода можно воспользоваться табл. 5.3.

Аналогично произведем разбор прав для членов группы владельца. Получится 100, т. е. 4 в восьмеричной системе. С третьим набором (--) все вообще просто — это 000, т. е. 0.

Записываем полученные числа в восьмеричной системе в порядке владелец — группа — остальные. Получится число 640, — это и есть права доступа. Для того чтобы установить эти права, выполните команду:

chmod 640 <имя_файла>

Наиболее популярные права доступа:

? 644 — владельцу можно читать и изменять файл, остальным пользователям — только читать;

? 666 — читать и изменять файл можно всем пользователям;

? 777 — всем можно читать, изменять и выполнять файл. Напомню, что для каталога право выполнения — это право просмотра его оглавления.

Иногда символьный метод проще. Например, у нас есть файл script, который нужно сделать исполнимым, для этого имеется команда:

chmod +x script

Для того чтобы снять право выполнения, указывается параметр — x:

chmod — x script

Подробнее о символьном методе вы сможете прочитать в руководстве по команде chmod (выполнив команду man chmod).

Данный текст является ознакомительным фрагментом.