- •Тема 4. Сетевые операционные системы unix
- •Тема 4. Сетевые операционные системы unix 1
- •4.1. Классификация операционных систем
- •4.1.1. Сетевые операционные системы Windows
- •4.1.2. История семейства операционных систем unix
- •4.1.3. Архитектура и дистрибутивы Linux
- •4.2. Программные средства человеко-машинного интерфейса в unix
- •4.2.1. Пользователи и группы
- •Поля файла /etc/passwd и их назначение
- •Поля файла /etc/group и их назначение
- •Поля файла /etc/shadow и их назначение
- •4.2.2. Виртуальные консоли и графические среды
- •4.3. Многозадачность в системах unix
- •4.3.1. Процессы в unix
- •4.3.2. Жизненный цикл процесса в unix и основные системные вызовы
- •4.3.3. Сигналы
- •4.4. Файловая система в unix
- •4.4.1. Файлы и каталоги
- •4.4.2. Права доступа к файлам
- •Права доступа к файлам в ос unix
- •4.4.3. Структура логической файловой системы unix
- •Назначение основных каталогов логической файловой системы unix
- •4.4.4. Физические файловые системы unix
- •4.4.5. Монтирование и демонтирование физических файловых систем
- •Некоторые опции монтирования файловых систем
- •4.5. Сетевые средства unix
- •4.5.1. Сетевой интерфейс
- •4.5.4. Терминальный доступ
- •4.5.5. Почтовая служба
- •4.5.6. Взаимодействие с сетью Windows – пакет Samba
- •Вопросы для самопроверки
4.4.2. Права доступа к файлам
Каждый пользователь UNIX (не говоря уже о системном администраторе) должен управлять дисковым пространством. Пользователь несет ответственность за содержимое своего начального каталога и обеспечение целостности любых имеющихся у него данных. Целостность данных обеспечивается проверкой и изменением прав доступа. Защищая файлы и каталоги, пользователь предотвращает неавторизированный доступ.
Каждый файл в ОС UNIX содержит набор прав доступа, по которому определяется, как пользователь взаимодействует с данным файлом. Этот набор хранится в индексном дескрипторе данного файла в виде целого значения, из которого обычно используется 12 битов. Причем каждый бит используется как переключатель, разрешая (значение 1) или запрещая (значение 0) тот или иной доступ.
Три первых бита устанавливают различные виды поведения при выполнении. Оставшиеся девять делятся на три группы по три, определяя права доступа соответственно для владельца, группы и остальных пользователей. Каждая группа задает права на чтение (r, read), запись (w, write) и выполнение (x, execute). Владелец может разрешить или запретить доступ к файлам для членов группы. Администратор (root) всегда имеет полные права на все объекты.
Базовые биты прав доступа представлены в табл. 4. В первом столбце таблицы находится восьмеричное значение, задающее соответствующий бит, во втором столбце представлен вид этого бита в первом поле длинного листинга и в третьем – право, задаваемое этим битом.
Таблица 4
Права доступа к файлам в ос unix
Восьмеричное значение |
Вид в столбце прав доступа |
Право или назначение бита |
0400 |
-r-------- |
Право владельца на чтение |
0200 |
--w------- |
Право владельца на запись |
0100 |
---x------ |
Право владельца на выполнение |
0040 |
----r----- |
Право группы на чтение |
0020 |
-----w---- |
Право группы на запись |
0010 |
------x--- |
Право группы на выполнение |
0004 |
-------r-- |
Право всех прочих на чтение |
0002 |
--------w- |
Право всех прочих на запись |
0001 |
---------x |
Право всех прочих на выполнение |
4000 |
---s------ |
Установленный эффективный идентификатор владельца (бит SUID) |
2000 |
------s--- |
Установленный эффективный идентификатор группы (бит SGID) |
1000 |
---------t ---------T |
Клейкий (sticky) бит. Вид для каталогов и выполняемых файлов, соответственно. |
Бит чтения для всех типов файлов имеет одно и то же значение: он позволяет читать содержимое файла (получать листинг каталога командой ls).
Бит записи также имеет одно и то же значение: он позволяет писать в этот файл, включая и перезапись содержимого. Если у пользователя отсутствует право доступа на запись в каталоге, где находится данный файл, то пользователь не сможет этот файл удалить, а также пользователь не сможет создавать и удалять в нем файлы.
Если для некоторого файла установлен бит выполнения, то файл может выполняться как команда. В случае установки этого бита для каталога, этот каталог можно сделать текущим (перейти в него, например, командой cd), но не означает, что возможно выполнение находящихся в нем файлов
Установленный бит SUID означает, что доступный пользователю на выполнение файл будет выполняться с правами (с эффективным идентификатором) владельца, а не пользователя, вызвавшего файл (как это обычно происходит).
Установленный бит SGID означает, что доступный пользователю на выполнение файл будет выполняться с правами (с эффективным идентификатором) группы-владельца, а не пользователя, вызвавшего файл (как это обычно происходит).
Следует еще раз отметить, что с каждым процессом UNIX связаны два идентификатора: пользователя, от имени которого был создан этот процесс, и группы, к которой принадлежит данный пользователь. Эти идентификаторы носят название реальных идентификаторов пользователя: Real User ID, RUID и реальных идентификаторов группы: Real Group ID, RGID. Однако при проверке прав доступа к файлу используются не эти идентификаторы, а так называемые эффективные идентификаторы пользователя: Effective User ID, EUID и эффективные идентификаторы группы: Effective Group ID, EGID.
Введение эффективных идентификаторов позволяет процессу выступать в некоторых случаях от имени пользователя или группы, отличных от тех, которые ему достались при рождении. В исходном состоянии эффективные идентификаторы совпадают с реальными. Чтобы реализовать смену прав кроме перечисленных ранее прав доступа, файл имеет два признака разрешения смены идентификатора – Set User ID on execution (SUID) и Set Group ID on execution (SGID), которые разрешают смену идентификаторов пользователя и группы при выполнении данного файла. Их существование обусловлено тем, что некоторые программы требуют для своей работы привилегий пользователя root. Например команда passwd (находится /usr/bin/passwd), с помощью которой пользователь меняет свой пароль, обращается к файлу, принадлежащему суперпользователю /etc/passwd, поэтому у нее установлен бит SUID. Она модифицирует файл строго определенным пользователем образом и завершается.
Если бит SGID установлен для каталога, то создаваемые в нем файлы будут принимать идентификатор группы каталога, а не группы, в которую входит владелец файла. Это упрощает пользователям, принадлежащих к одной группе, совместный доступ к каталогу.
Применение прав доступа SUID и SGID чревато опасными последствиями – при некорректном завершении программы, запущенной обычным пользователем и получившей права пользователя root, возможна ситуация, когда права root останутся у этого пользователя. Если нужны привилегированные права, то лучше пользоваться программой sudo (su) – смены текущего пользователя.
Для расчета прав доступа необходимо сложить восьмеричные значения всех необходимых установленных битов. В результате получится четырехзначное восьмеричное число. Если старший разряд имеет значение 0, его можно не указывать.
Например, если необходимо задать права доступа на чтение, запись и выполнение для владельца, на чтение и выполнение для группы и на выполнение для всех остальных пользователей, получаем следующее восьмеричное значение:
Чтение для владельца: |
0400 |
Запись для владельца: |
0200 |
Выполнение для владельца: |
0100 |
Чтение для группы: |
0040 |
Выполнение для группы: |
0010 |
Выполнение для прочих: |
0001 |
Сумма: |
0751 |
Итак, соответствующие права доступа – 751. В длинном листинге эти права будут представлены в виде "-rwxr-x--x" (при "сложении" буквы с дефисом в символьном представлении остается буква). Полное право доступа всех задается числом 777 (111 111 111). Наиболее часто используется маска 644 (110 100 100), разрешающая чтение и модификацию файла для владельца, и только чтение для других пользователей.
Для установки (изменения) прав доступа к файлу используется команда chmod. Права доступа к файлу может изменять или устанавливать только его владелец или пользователь root. Права доступа могут задаваться как абсолютным значением (восьмеричным числом, расчет которого выполняется в соответствии с табл. 4), так и относительным изменением прав при помощи специальных символов.
