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

5.6. Права пользователей по доступу к файлам

5.6.1. Определение прав доступа

Права доступа к файлам - это основа основ работы с ними. Данное выражение может быть не очень понятно, если пользователи работали только под Windows.

Права доступа бывают:

  • На чтение файлов: любой процесс имеет право прочитать из файла информацию.

  • На запись в файлы: любой процесс имеет право записать что-то в файл.

  • На исполнение файлов: любой процесс может запустить исполняемый файл.

  • На изменение каталога: любой процесс может стереть, записать файл в каталоге.

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

Возникает вопрос - а что бывает по-другому, что есть платформа, в которой вирусы не живут? Конечно, бывает... Это системы, которые базируются на платформе Unix. Большинство серверов в мире работают именно под этой системой. Наиболее уязвимые Web-серверы под управлением Windows (IIS) используются гораздо реже. Примерное распределение выглядит так: Unix – подобные сервера – 70%, из них Apache – 66%, IIS – 23%, другие – 7%).

Чем же отличается ОС Unix от Windows в плане обеспечения безопасности доступа? Тем, что права доступа в системах Unix раздаёт главный администратор компьютера, который владеет основным паролем. Он, и только он, может предоставить, например, право что-то записывать в данный файл. В ином случае, все остальные файлы и папки можно только читать. В результате становится понятно, что там, где в основном размещены файлы и папки с пометкой 'только для чтения', вирусам делать нечего, они не смогут туда себя записать и исполниться.

5.6.2. Описание прав доступа в системе unix и их реализация

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

Первая часть файла - его так называемые метаданные49, которые содержат:

  • файловый дескриптор (это просто некое уникальное число);

  • сведения об его атрибутах (принадлежности, правах доступа, времени модификации и т.д.);

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

Метаданные каждого файла записаны в специальной области диска, называемой суперблоком, где образуют, так называемые, информационные узлы (inodes - от information nodes - информационные узлы).

Каждому существующему файлу соответствует свой inode, и именно он однозначно идентифицируется файловым дескриптором.

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

В системе UNIX при определении прав доступа ввели категорию пользователей и категорию прав доступа к файлам и каталогам. Различают три группы категорий (типов) работающих на ЭВМ:

  • пользователь-владелец файла(owner)50;

  • группа пользователей-владельцев (group), которым устанавливаются права, отличные от прочих пользователей;

  • прочие пользователи (other).

Можно говорить и о суперпользователе, который «может всё» - это администратор системы или администратор хостинга.

Различным пользователям администратором системы (сервера) могут назначаться следующие права:

  • на чтение (rread), соответствующий пользователь (процесс), имеет право на чтение содержимого данного файла и копирование этого файла;

  • на запись (w-write);

  • на выполнение (x- execute).

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

Права для трех перечисленных групп пользователей записываются слитно, в той последовательности, в которой они указаны выше - rwx.

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

Например, обладающий правами только на чтение и запись обозначается так: rw- . Если владелец (owner) файла и группа (group), к которой он принадлежит, обладают всеми правами, а остальные (other) обладают правами на чтение и выполнение, шифр доступа для всех категорий пользователей сразу обозначается так: rwxrwxr-x.

Так как файлы могут быть разных типов, то термин «выполнение» для них имеет разное практическое наполнение:

  1. Для обычных файлов (файлов, содержащих информацию) «выполнение» означает открытие файлов.

  2. Для исполняемых файлов - их запуск.

  3. Для каталогов - просмотр содержимого.

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

Так как в командах (функциях), определяющих права доступа к файлу, необходимо указывать эти числа в восьмеричном виде, то надо три вида доступа для трёх категорий пользователей (матрица 3x3) отобразить в виде совокупности трёх восьмеричных чисел. Для этого, в символьном формате буквы заменим единицей, а черточки — нулями. Затем полученное двоичное число необходимо представить в восьмеричном формате — это и будет код прав доступа в числовом формате.

Допустим, код доступа в символьном виде задан так: rwxrwxr-x. Запишем его как 111111101, полученное двоичное выражение заменим восьмеричным и получим числовой формат записи – 775.

В таблицах Таблица 5 -18 (а,b) приведен развёрнутый пример такой записи.

Таблица 5‑18