Права доступа к каталогам

В Linux, как и в остальных UNIX, каталоги также считаются файлами. Например, выполним следующую команду ls, чтобы увидеть разрешения на доступ:

$ mkdir foo

$ ls –ld foo

drwxrwxr-x 2 bball bball 4096 jul 23 12:37 foo

В данном примере команда mkdir создает каталог. Команда ls с параметром –ld отображает разрешения на доступ и иную информацию, касающуюся этого каталога в целом, но не его содержание. Здесь можно видеть, что права доступа к каталогу имеют значения 775 (владелец имеет все права 4+2+1, группа также все права, а весь остальной мир не может ничего изменять в нем 4+1).

Отсюда видно, что владелец и члены группы могут выводить содержание каталога и записывать в него. Все остальные пользователи могут только выводить содержание каталога. (Чтобы увидеть содержание каталога, необходимо иметь разрешение на выполнение).

Вы заметили, что в выходных данных команды ls в правах доступа стоит первой буква d. Это значит, что данный файл является каталогом; у обычного файла на этом месте стоит пробел. Другие буквы указывают на специальный тип файла. Например, если с помощью команды ls вывести информацию о файле устройства для последовательного порта, то можно увидеть следующее:

$ ls –l /dev/ttyS0

crw-rw---- 1 root uucp 4,64 Mar 23 23:38 /dev/ttyS0

Файл /dev/ttyS0 представляет символьное устройство (последовательный порт); владеет данным файлом пользователь root и этот файл доступен также любому члену группы uucp. Права доступа к файлу имеют значения 660 (чтение+запись, чтение+запись, нет прав).

Изменить права доступа к файлу можно с помощью команды chmod. Чтобы задать желаемое изменение в этой команде используют разные формы записи, включая восьмеричную и мнемоническую. В мнемонической форме параметры команды chmod обозначают следующее (со знаком плюс (+) они используются для добавления права на доступ, со знаком минус – для их удаления):

u Добавить (или удалить) право на какую-либо операцию с файлом (каталогом) для юзера.

g Добавить (или удалить) право для группы.

o Добавить (или удалить) право для всех остальных.

a Добавить (или удалить) право всем пользователям (all).

r Добавить (или удалить) право на чтение.

w Добавить (или удалить) право на запись.

x Добавить (или удалить) право на выполнение.

Из комбинации этих слов и складывается указание о том, как следует изменить права

доступа. Например, если создать файл, скажем, readme.txt, то для этого файла будут установлены разрешения, используемые по умолчанию (они определяются маской unmask в файле /etc/bsdhrc);

-rw-rw-r-- 1 bball bball 12 Oct 2 16:48 readme.txt

Допустим, мы хотим запретить всем без исключения пользователям модифицировать этот файл. Сделать это можно с помощью команды Chmod:

$ chmod –aw readme.txt

$ ls –l readme.txt

-r--r--r-- 1 bball bball 12 Oct 2 16:48 readme.txt

Теперь никто не сможет записывать в файл. Впрочем, владелец, если файл находится в его домашнем каталоге или каталоге /tmp, сможет изменять этот файл – поскольку имеет право на доступ к этим каталогам. Чтобы восстановить право на чтение и запись для владельца, можно выполнить такую команду:

$ chmod u+rw readme.txt

$ ls –l readme.txt

-rw------- 1 bball bball 12 Oct 2 16:48 readme.txt

Чтобы только владелец мог читать файл и записывать в него, можно также использовать восьмеричную форму записи командой chmod. Для этого необходимо выполнить команду chmod со значениями прав доступа, равными 600:

$ chmod 600 readme.txt

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: