Монтирование файловых систем
Файловая система– поддерево директорий на некоторой машине, расположенных в одном разделе. Каждая файловая система должна быть смонтирована, прежде чем к ней будет обеспечен доступ. Файловая система монтируется в некоторую точку монтирования (mount point).Монтирование (с абстрактной точки зрения) – это подсоединение отдельного дерева (еще не смонтированной файловой системы) к какой-либо вершине (точке монтирования) общего дерева смонтированных и доступных файловых систем.
В системе UNIX имеются команды: mount ; automount и autodirect, управляющие монтированием.
Команда mount позволяет явно задать точку монтирования и файловую систему, монтируемую в эту точку. Списоквсех смонтированных файловых систем хранится в системном текстовом файле /etc/mnttab (в разных диалектах пути к этому файлу и даже его имя могут различаться). Команда automount запускается при загрузке операционной системы и создает системный процесс-демон automountd, который по содержимому указанного системного файла автоматически монтирует указанные в нем файловые системы при загрузке ОС и следит за их постоянной смонтированностью. Команда autodirect позволяет смоделировать пути к "виртуальным" директориям, которых физически на данной машине не существует, и указать в системном файле/etc/vfstab их "заменители" (в виде путей к реальным директориям, размещенным на локальной машине), что весьма полезно в случае получения большого проекта от заказчика с абсолютными путями, не существующими на Вашей машине.
На рис.9 изображены дерево смонтированных систем с директориями пользователей (a) и еще не смонтированная файловая система (b) с директориями новых пользователей.
Рис. 9.Дерево смонтированных систем и еще не смонтированная файловая система.
Если по команде mount или automount в качестве точки монтирования файловой системы (b) указывается поддиректория users, то возникает картина, изображенная на рис. 10.
Рис. 10.Точка монтирования файловой системы.
Общий доступ к файлам
В многопользовательских системах общий доступ к файлам (sharing)необходим. Общий доступ может быть обеспечен через некоторую систему защиты (protection). В распределенных системах файлы могут использоваться совместно через сеть. Управление общим доступом к файлам в разных ОС различно: например, в Windows утилита Explorerобеспечивает возможность установки общего доступа к заданному файлу или папке с помощью GUI, сделав отметку в соответствующем checkbox, указать сетевое имя данного общего ресурса и указать, возможен ли доступ по чтению и по записи, или только по чтению. В системе UNIX передача файла из заданной файловой системы в общий доступ выполняется командой share.
Network File System (NFS)– распространенная система общего доступа к файлам через локальную сеть, которая подробно рассмотрена в лекции 20.
Интересная возможность общего доступа к файлам имеется в системе Solaris: файловая система, отданная в общий доступ командой share, может адресоваться с помощью пути вида /net/hostname/filesystem, гдеhostname– имя машины; filesystem– имя файловой системы на ней. Это очень удобно, но может создать проблемы при переносе проекта в другую локальную сеть (как любой абсолютный путь – в данном случаепуть содержит имя машины).
Защита файлов
Создатель файла должен иметь возможность управлять cписком допустимых операций над файлом и списком пользователей, которым они разрешены. Это и обеспечивают механизмы защиты файлов. Различаются следующие основные типы доступа к файлу:
· Read (для чтения)
· Write (для записи)
· Execute (для исполнения)
· Append (для записи в конец файла, или присоединения)
· Delete (для удаления)
· List (для вывода списка файлов в директории).
Для управления защитой файлов в UNIX введены удобные и наглядные обозначения, которые мы и рассмотрим.
Различаются следующие режимы доступа: read, write, execute (RWX).
Различаются также три класса пользователей: владелецфайла (owner), группа, к которой он принадлежит (group) и весь остальной "мир" пользователей (public). Группы пользователей создаются системным администратором.
Для каждого класса пользователей признаки защиты RWX кодируются тремя битами (или одним восьмеричным числом). Таким образом, набор полномочий для работы с файлом для всех трех категорий пользователей кодируется 9 битами, или тремя восьмеричными цифрами. Например, команда:
chmod 740 my_file
задает для файла my_fileследующие полномочия: для владельца – 7 (111): чтение, запись и выполнение; для группы – 4 (100): только чтение; для остальных пользователей – 0 (000): никаких действий над файлом не разрешено.
Для директории полномочия "X" (execute) означает возможность входа в нее командой cd.