В этой главе рассматриваются следующие темы:

   • права доступа к файлам к каталогам;

   • биты смены идентификаторов {SUID и SGID);

   • изменение владельца файла или каталога с помощью команд chown и chgrp;

   • команда umask;

   • символические ссылки.

Файл принадлежит создавшему его пользователю, а также группе, членом которой данный пользователь является. Владелец файла может самостоятельно определять, кому позволено производить запись в файл, читать его содержимое, а также запускать файл на выполнение, если он является исполняемым.

Примечание:

Пользователь root (системный администратор) может отменить практически все ограничения, заданные рядовым пользователем.

Доступ к созданному файлу может осуществляться тремя способами:

   • Путем чтения, при этом содержимое файла отображается на экране.

   • Путем записи, при этом содержимое файла редактируется или удаляется.

   • Путем выполнения, если файл содержит сценарий интерпретатора shell либо является программой.

Пользователи, имеющие доступ к файлу, делятся на три категории:

   • Владелец файла, создавший его.

   • Члены группы, к которой относится владелец файла.

   • Остальные пользователи.

1.1. Информация о файлах

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

   • раздел диска, где физически находится файл;

   • тип файла;

   • размер файла;

   • идентификатор владельца файла, а также тех, кому разрешен доступ к файлу;

   • индексный дескриптор;

   • дата и время последнего изменения файла

   • режим доступа к файлу.

Рассмотрим типичный список файлов, полученный в результате выполнения команды ls -l.

$ ls -l

total 4232

-rwxr‑xr‑x

1 root

root

3756 Oct

14

04:44

dmesg

-r‑xr‑xr‑x

1 root

root

12708 Oct

3

05:40

ps

-rwxr‑xr‑x

1 root

root

5388 Aug

5

1998

pwd

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

total 4232

Суммарный размер файлов в каталоге

-rwxr‑xr‑x

Режим доступа к файлу, отображаемый в виде строки из десяти

символов. Первый символ ('-') указывает на то, что текущая запись

относится к файлу (если на его месте стоит символ d, значит,

запись относится к каталогу). Остальные символы делятся на три

категории:

rwx — права владельца (первая триада);

r‑x — права группы (вторая триада);

r‑x — права остальных пользователей (последняя триада).

Символ r означает право чтения, символ w — право записи,

символ x — право выполнения, символ ' — ' -oтсутствие соответ-

ствующего права. Система разрешений подробно описана ниже

1

Количество жестких ссылок на файл

root

Идентификатор владельца файла

root

Идентификатор группы, в которую входит владелец файла

3756

Размер файла в байтах

Oct 14 04:44

Дата и время последнего изменения файла

dmesg

Имя файла

1.2. Типы файлов

В начале строки режима может стоять не только символ ' — " или d, ведь в каталоге насчитывается до семи различных типов записей (табл. 1.1):

Таблица 1.1. Типы файлов

d

Каталог

l

Символическая ссылка (указатель на другой файл)

s

Сокет

b

Специальный блочный файл

с

Специальный символьный файл

p

Файл именованного канала

Обычный файл или, если выразиться точнее, ни один из файлов, перечисленных выше

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

Давайте создадим файл, используя команду touch:

$ touch myfile

Теперь выполним команду ls -1:

$ ls -1 myfile

-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile

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

Права владельца

Права группы

Права остальных пользователей

rw-

r--

r--

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

Существует три вида разрешений:

r

Право чтения данного файла

w

Право записи/изменения данного файла

x

Право выполнения данного файла, если он является сценарием или программой

Следовательно, строку режима для файла myfile необходимо интерпгретировать следующим образом:

-

rw-

r--

r--

Обычный файл

Владелец может

Пользователи указанной группы могут осуществлять только чтение этого файла

Остальные пользователи также могут осуществлять только чтение этого файла

осуществлять чтение и запись этого файла

Возможно, вы обратили внимание на то, что при создании файла myfile владелец не получил право выполнять данный файл. Это связано с ограничениями, установленными по умолчанию в системе. Ситуация прояснится чуть позже, когда мы изучим команду umask.

Рассмотрим несколько дополнительных примеров (табл. 1.2).

Таблица 1.2. Примеры строк режима

Строка режима Результат

r-- --- ---

Доступ к файлу разрешен только владельцу, который может читать содержимое файла, но не имеет права осуществлять запись в файл и выполнять его

r--r-- ---

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

r--r--r--

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


Перейти на страницу:
Изменить размер шрифта: