Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

3.2. Рассмотрим права доступа к файлам

Несмотря на то, что основы операционных систем закладывались во времена, когда «хакерства» не было, но авторы UNIX думали о безопасности с первых дней. Первым ее элементом является защита во время регистрации сеанса пользователя, который открывается по паролю. Но файловая система имеет свои собственные средства защиты. Одно из них строится на правах доступа ко всем файлам. Для каждого из них обязательно определены права совершать три операции: чтения, записи и исполнения. С точки зрения этих прав, пользователи системы поделены на три категории:

  • сам владелец файла,

  • группа пользователей, к которой принадлежит владелец,

  • все остальные.

Все девять значений, определяющие для этих групп пользователей возможность реализовать эти три операции, выводятся командой ls с опцией -l. В результате ее выполнения для каждого файла выводится отдельная строка. В ней девять символов, которые занимают позиции со второй по десятую, показывают установленные права доступа к файлу. К примеру, если для какого то файла его владельцу разрешены все три действия, то символы со второго по четвертый будут такими rwx. Первый из символов показывает допустимость операции читать (read), второй – писать (write) и третий – исполнять (execute). Если какое-то из действий не разрешено, то на соответствующем месте будет символ «–». Например, такой набор девяти символов rwxr-xr--, определяет, что владельцу файла разрешены все три операции, членам его группы ‑ чтение и исполнение, а всем остальным пользователям – только чтение.

Для смены прав доступа к файлу в командном режиме используется утилита chmod. Ей указывается:

1. Для каких пользователей меняются права (u – user, для владельца; g – groupe, для членов его группы; o – other, для всех остальным пользователям, кроме его самого и членов группы; a – all, всем пользователям вообще).

2. Операцию, которую надо выполнить (+ добавить; - запретить или = установить).

3. Набор символов, определяющих какие действия разрешены (любой из символов r, w, x или их комбинация) или запрещены (символ дефис «-»).

Первые три элемента записываются без пробелов. Далее после как минимум одного пробела задается аргумент команды.

4. Имя, список или шаблон файла.

К примеру, такая команда

chmod a+x file

добавляет для всех пользователей права на выполнения файла. Следующая

chmod g=w z*

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

Права доступа к файлу могут быть записаны и в цифровом эквиваленте. Например, такой набор rwxr-xr-- преобразуется в такие тройки цифр 111 (rwx), 101 (r-x) и 100 (r--). Получаем, что rwxr-xr—эквивалентно числу 754 в восьмеричной записи.

Задание 26.

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

3.3. Рассмотрим типы файлов

Каждая система предполагает наличие составляющих ее элементов. В случае ФС – это файлы. Перечислим их типы.

1. Обыкновенные (регулярные) файлы. Это, конечно, прежде всего, программы. Даже ядро системы Linux относится к этому типу. Но есть и много других, например, файлы настроек, сохраняющие рабочие свойства программ, документы, создаваемые пользователями.

2. Каталоги. Для удобства работы с тысячами и даже сотнями тысяч элементов файловой системы вводится иерархическая система, в основе которой каталоги. Как мы уже отмечали, для семейства UNIX/Linux корнем иерархии файловой системы является только одна вершина. Ее имя «/». В Windows количество корневых вершин определяется составом внешних устройств.

3. Файлы устройств. Они существуют в системе для единообразия основных операций с устройствами. Притом, что ФС UNIX позволяет подключать широкий спектр оборудования, устройства бывают двух видов – символьные (например, консоль) или блочные (их примером служат диски). Первые используются для передачи данных без буфера, а вторые производят обмен данными пакетами фиксированной длины – блоками.

4. Связи. Их наличие позволяет иметь доступ к файлу из разных точек иерархической системы. Они бывают двух видов – жесткие и символические. Для первых характерно равноправие всех ссылок. Во втором случае значение ссылки представляет полный путь к файлу (его размер равен количеству символов в полном имени).

5. Именованные каналы (named pipe) или файлы типа fifo. Этот тип файлов используется на системном уровне для передачи данных между процессами.

6. Сокеты. Они применяются в сетевых технологиях. Интерфейс сокетов часто используют для реализации доступа к сетям с поддержкой TCP/IP. Такой же механизм применяют для межпроцессорного взаимодействия при реализации системных сервисов.

Узнать о типе файла, можно задавая команду file. Она на основании специального файла (его имя magic) и некоторых эвристических правил выдает описание типа изучаемого файла, его принадлежность к одной из многочисленных групп (исполнимый файл, документ, архивный файл определенного типа и т.д.).

Первый символ команды ls с опцией -l для каждого файла указывает принадлежность одному из пернечисленных выше типов. Существует следующее закрепления символов (в правом столбце приведено соответствие символов и типов файлов, принятое в популярном для UNIX файловом менеджере Midnight Commander).

Тип файла

Символ типа в

ls

Символ типа в mc

простые

(обыкновенные файлы)

нет символа

* для исполнимых файлов или нет символа

каталоги

d

/

символьные файлы устройств

b

-

блочные файлы устройств

c

+

жесткие ссылки

нет символа

нет символа

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

l

@ ~

файлы типа fifo

p

|

сокеты

s

=

Соседние файлы в папке Операционные системы