Режимы работы с файлами в системе NFS

Опубликовано в Технологии > Серверные технологии Продолжение

В системе NFS, как и в операционной системе UNIX, предполагается, что каждый файл или каталог имеет обозначение режима, в котором указан его тип и содержится информация о правах доступа. Обозначение режима файла хранится в виде целого числа. В табл. 24.1 показаны отдельные биты целочисленного обозначения режима файла NFS и описано их назначение. В этой таблице для представления битов используются шестнадцатеричные числа; эти определения непосредственно соответствуют данным, возвращаемым функцией stat системы UNIX. Новость - хирургия ! ищите тут.

Таблица 24.1. Описание битов в целочисленном обозначении режима файла NFS. Эти определения взяты непосредственно из системы UNIX

Бит режима    Описание
0x0800    Установить идентификатор пользователя после вызова на выполнение (setuid)
0x0400    Установить идентификатор группы после вызова на выполнение (setgid)
0x0200    Сохранить текст, выведенный на внешнее устройство (не определено в стандар¬те POSIX)

0x0100    Право на чтение для владельца
0x0080    Право на запись для владельца
0x0040    Право на выполнение для владельца файла или право на поиск в каталоге для владельца каталога

0x0020    Право на чтение для группы
0x0010    Право на запись для группы
0x0008    Право на выполнение для группы файла или право на поиск в каталоге для группы каталога

0x0004    Право на чтение для прочих пользователей
0x0002    Право на запись для прочих пользователей
0x0001    Право на выполнение для прочих пользователей или право на поиск в каталоге для прочих пользователей

Хотя в системе NFS определены типы файлов для устройств, в ней не допускается Дистанционный доступ к устройствам (например, клиент не может выполнять чтение или запись на удаленном устройстве). Таким образом, хотя клиенту разрешено получение информации об именах файлов, ему запрещено выполнять операции с устройствами, даже если биты защиты доступа это допускают.

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

Атрибуты файла NFS

В системе NFS, как и в операционной системе UNIX, предусмотрен способ получения информации о файле. В системе NFS информация о файле представлена в виде атрибутов файла. Атрибуты файла, рассматриваемые в системе NFS, представлены в структуре fattr3:

struct fattr3 {     /* Атрибуты файла NFS */
ftype3 type;     /* Тип: файл, каталог и т.д. */
mode3 mode;       /* Биты защиты файла */
uint32 nlink;    /* Общее число жестких ссылок на файл */
uid3 uid;	/* Идентификатор пользователя-владельца файла */
gid3 gid;	/* Идентификатор группы, присвоенный файлу */
size3 size;       /* Общий размер файла в байтах */
size3 used;       /* Фактически используемое дисковое пространство */
specdata3 rdev; /* Описание, если файл является устройством*/
uint64 fsid;     /* Идентификатор файловой системы */
fileid3 fileid; /* Уникальный идентификатор файла (индексный узел) */
nfstime3 atime; /* Время последнего доступа к файлу */
nfstime3 mtime; /* Время последнего изменения */
nfstime3 ctime; /* Время последнего изменения индексного узла */
};

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