русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 778; Нарушение авторских прав


 

Всего в операционной системе предусмотрено семь типов файлов, которые будут рассматриваться в отдельной главе. Пока достаточно считать, что существуют только обычные файлы и каталоги. Пользователи получают во владение созданные ими объекты файловой системы и имеют определенные системой или администратором права доступа к существующим объектам. Всего существует три первичных и относительно независимых вида доступа (mode) к файлам:

· чтение (rread);

· запись (wwrite);

· исполнение (x– execute).

Запись и чтение файла предполагают его поиск и открытие. На первом этапе система должна найти имя файла в явно указанном каталоге либо, если путь к файлу не указан, но содержится в переменной окружения оболочки, попытаться найти его. Если путь к файлу пролегает через несколько каталогов, каждый из них последовательно открывается и в нем производится поиск имени следующего подкаталога или целевого файла [6].

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

Если права доступа совпадают с затребованными, открываемому файлу присваивается учетный номер – файловый дескриптор (не путать с индексным дескриптором!), а найденные блоки данных файла копируются с дискового пространства в оперативную память. Информацию об открытых файлах и их связи с пользователями и процессами можно получить с помощью утилиты lsof (list opened file).



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

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

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

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

Право исполнения имеет смысл только по отношению к программе. Операционная система не распознает типы обычных файлов, но для программ она делает исключение. Бинарные исполняемые файлы формата ELF распознаются по характерной сигнатуре 0x7F454C46 в начале файла.

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

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

Текстовую программу (сценарий) можно запустить, имея только право чтения. Для этого в командной строке требуется указать вначале имя командного интерпретатора, а затем имя сценария, например



<== предыдущая лекция | следующая лекция ==>
Savedefault | Bash abcd


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.04 сек.