Скачиваний:
56
Добавлен:
08.01.2014
Размер:
2.6 Mб
Скачать

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

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

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

Тем не менее, хотя эти права доступа представлены так же, как и у обычных файлов, интерпретируются они по-другому:

  • право доступа к каталогу на чтение показывает, что соответствующий класс пользователей может выводить список содержащихся в каталоге файлов и подкаталогов. Однако это не означает, что пользователи могут читать содержащуюся в файлах информацию – это определяется правами доступа к отдельным файлам;

  • право доступа к каталогу на запись позволяет пользователю создавать в каталоге новые файлы и удалять существующие. И снова это не дает пользователю права изменять содержимое существующих файлов, если это не разрешено правами доступа к отдельным файлам. Вместе с тем при этом можно удалить существующий файл и создать новый с тем же самым именем, и это, по сути, означает то же самое, что и изменение содержимого исходного файла;

  • право доступа к каталогу на выполнение, называемое также правом выполнения, или правом прохождения, поиска (search permission), позволяет пользователю перейти в каталог при помощи команды cd или системного вызова chdir в программе (который будет рассмотрен позже). Кроме этого, чтобы иметь возможность открыть файл или выполнить программу, пользователь должен иметь право доступа на выполнение для всех ведущих к файлу каталогов, входящих в абсолютный путь файла;

  • бит фиксации, STAT_ISVTX, позволяет установить дополнительную защиту файлов, находящихся в каталоге. Из такого каталога пользователь может удалить только те файлы, которыми он владеет или на которые он имеет явное право доступа на запись, даже при наличии права на запись в каталог. Примером является каталог /tmp.

Каталог ben

123

.

\0

247

.

.

\0

260

b

o

o

k

\0

401

m

e

m

o

s

\0

Каталог book

260

.

\0

123

.

.

\0

566

c

h

a

p

1

\0

567

c

h

a

p

2

\0

590

c

h

a

p

3

\0

Каталог memos

401

.

\0

123

.

.

\0

800

k

h

\0

810

k

d

\0

077

m

w

\0

Рис. 4.5. Каталоги ben, book и memos

На уровне командного интерпретатора связанные с каталогами права доступа можно вывести при помощи команды ls с параметром -l. Подкаталоги будут обозначаться буквой d в первой позиции, например:

$ ls -l

total 168

-rw-r----- 1 ben other 39846 Oct 12 21:21 dir_t

drwxr-x--- 2 ben other 32 Oct 12 22:02 expenses

-rw-r----- 1 ben other 46245 Oct 13 10:34 new

-rw-r----- 1 ben other 3789 Sep 2 18:40 pwd_text

-rw-r----- 1 ben other 1310 Sep 13 10:38 test.с

Здесь строка, описывающая подкаталог expenses, помечена буквой d в начале строки. Видно, что владелец этого каталога (пользователь ben) имеет права на чтение, запись и выполнение (поиск), пользователи группы файла (называющейся other) имеют права на чтение и выполнение (переход в каталог), а для всех остальных пользователей доступ полностью запрещен.

Если требуется получить информацию о текущем каталоге, можно задать в команде ls кроме параметра -l еще и параметр -d, например:

$ ls -ld

drwxr-x--- 3 ben other 128 Oct 12 22:02 .

Помните, что имя . (точка) в конце листинга обозначает текущий каталог.

Соседние файлы в папке Полищук, Семериков. Системное программирование в UNIX средствами Free Pascal