Защита и доступ
Механизм защиты доступа системы UNIX позволяет владельцу файла регламентировать доступ к файлу отдельно для самого владельца, членов группы файла и всех прочих пользователей. Для каждой из этих трех категорий пользователей механизм защиты позволяет владельцу определить, имеют ли пользователи этой категории права на чтение, запись или выполнение файла. Как показано на рис. 24.1, права доступа к файлу могут быть представлены в виде матрицы битов защиты. ремонт квартир в москве

На практике в системе UNIX матрица битов защиты, обозначающих права доступа к файлу, хранится в младших битах одного двоичного целого числа, а для обозначения целого числа, в котором закодированы биты защиты, используются термины режим файла, режим защиты или режим доступа к файлу. Как показано на рис. 24.2, в системе UNIX биты защиты файла закодированы в 9 младших битах целого числа с обозначением режима доступа к файлу. Кроме битов защиты, показанных на рис. 24.2, в системе UNIX применяются дополнительные биты целочисленного обозначения режима для определения других свойств файла (например, биты режима указывают, является ли этот файл обычным файлом или каталогом). Бит 1 показывает, что предоставлено определенное право доступа; бит О означает, что в этом праве отказано. В восьмеричном формате приведенные на этом рисунке права защиты принимают значение 0644.
После записи значения целого числа с обозначением режима файла в восьмеричном формате три младших разряда определяют права доступа владельца, членов группы файла и других пользователей. Поэтому значение прав доступа 0700 указывает, что владелец имеет право на чтение, запись и выполнение файла, а все другие пользователи не имеют к нему доступа. Обозначение режима защиты 0644 говорит о том, что все пользователи могут читать этот файл, но только владелец имеет право записывать в него данные.
Организация работы с файлом по принципу "открыть-читать-писать-закрыть"
В приложениях, работающих в таких системах, как Linux, доступ к файлам осуществляется по принципу "open-read-write-close" (открыть-читать-писать-закрыть). Для установления доступа к файлу в приложении необходимо вызвать функцию open, передав ей имя файла и параметры с описанием желаемого способа доступа. Функция open возвращает целочисленный дескриптор файла, используемый в приложении во всех остальных операциях с файлом. Например, чтобы открыть файл с именем filename, можно включить в программу следующий оператор:
fdesc=open("filenameи,0_CREAT10_RDWR,0644);
Значение 0_CREAT во втором параметре указывает, что файл должен быть создан, если он еще не существует, а значение 0_RDWR указывает, что файл должен быть создан и для чтения, и для записи. Восьмеричное значение 0644 определяет биты режима защиты, которые будут назначены файлу, если он будет создан. В качестве второго параметра могут использоваться другие значения для указания того, нужно ли усечь этот файл (установить для него размер, равный нулю) и должен ли он быть открыт для чтения, записи или для обеих операций.