Системное программирование в UNIX средствами Free Pascal




Описание


uses linux;

Function Octal(l:longint):longint;

Таблица 3.1. Восьмеричные значения для прав доступа к файлам

Восьмеричное значение

Символьное обозначение

Значение

0400

STAT_IRUSR

Владелец имеет доступ для чтения

0200

STAT_IWUSR

Владелец имеет доступ для записи

0100

STAT_IXUSR

Владелец может выполнять файл

0040

STAT_IRGRP

Группа имеет доступ для чтения

0020

STAT_IWGRP

Группа имеет доступ для записи

0010

STAT_IXGRP

Группа может выполнять файл

0004

STAT_IROTH

Другие пользователи имеют доступ для чтения

0002

STAT_IWOTH

Другие пользователи имеют доступ для записи

0001

STAT_IXOTH

Другие пользователи могут выполнять файл

Из таблицы легко увидеть, что можно сделать файл доступным для чтения всем типам пользователей, сложив 0400 (доступ на чтение для владельца), 040 (доступ на чтение для членов группы файла) и 04

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

STAT_IRUSR or STAT_IRGRP or STAT_IROTH

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

Чтобы устранить это неудобство, можно использовать более одного восьмеричного значения, относящегося к одной категории пользователей. Например, сложив 0400, 0200 и 0100, получим в сумме значение 0700, которое показывает, что владелец файла может читать его, производить в него запись и запускать файл на выполнение.

Поэтому чаще встречается значение кода доступа:

0700 + 050 + 05 = 0755

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




Содержание  Назад  Вперед