Дистанционная поддержка образовательного процесса

Лекция 29 Организация общего доступа к файлам (NFS, SMB)

Лекция 29
Тема: Организация общего доступа к файлам (NFS, SMB)
В среде ОС Linux основным средством организации общей работы с данными является сетевая файловая система NFS (Network File System). Она позволяет пользователям совместно работать с данными, расположенными на удаленных хостах. В настоящее время NFS используется только для совместного использования файлов в средах Unix/Linux. Если в организации присутствуют Windows- клиенты, то для обслуживания файлов, которые они будут использовать, в ОС Linux используется сервис Samba. 

Организация общего доступа на основе NFS
Взаимодействие хостов по протоколу NFS основано на архитектуре клиент- сервер.  Сервер NFS экспортирует указанные локальные файловые системы для клиента. Клиент, в свою очередь, монтирует данные файловые системы в точки монтирования. После того как файловая система будет смонтирована клиентом по NFS, все операции ввода-вывода к данной файловой системе адресуются серверу NFS, клиент же работает с данной файловой системой, как будто она является локальной для него. Контроль доступа к каталогам по протоколу NFS осуществляется по ІР-адресам клиентов. В связи с этим сервис NFS, ничего не знает о пользователях, которые подключаются к нему. Данные, находящиеся на сервере NFS получают соответствующие права, идентификаторы пользователя (UID) и группы (GID) в процессе монтирования. Если клиент использует различные идентификаторы пользователей и групп, то владелец и группа файлов, доступных по NFS, будут меняться. Например, если владельцем файла является пользователь с идентификатором ID 500 на сервере NFS, то данный файл экспортируется клиентам с тем же идентификатором ID 500. Если идентификатор ID 500 принадлежит пользователю userl на сервере NFS, а на клиенте этот же идентификатор принадлежит пользователю user2, то пользователь user2 также будет иметь доступ к данному файлу. Поэтому при использовании сервиса NFS крайне важно, чтобыкаждый пользователь имел в сети уникальный идентификатор. Этого можно достичь, используя для хранения учетных записей пользователей сервисы  NIS или LDAP.
В NFS  процесс монтирования файловой системы отличается от процесса последующего доступа к файлам. В данных операциях используются совершенно разные протоколы, и запросы обслуживаются разными демонами: в первом случае - это mountd, во втором - nfsd. На самом деле эти демоны называются соответственно rpc.mountd и rpc.nfsd - имена служат напоминанием о том, что их работа основана на механизме R P C (Remote Procedure Call). Для их выполнения требуется демон portmap. На сервере NFS оба демона - mountd и nfsd – должны не будет выключена. В ОС Linux существует единый init-скрипт /etc/init.d/nfs, который запускает необходимые демоны NFS автоматически, при условии, что экспортируемые файловые системы настроены должным образом.
Демоны mountd и nfsd используют общую базу данных, содержащую информацию о правах доступа, где указано, какие файловые системы следует экспортировать и какие клиенты могут их монтировать. Рабочая копия этой базы данных хранится в файле /usr/lib/nfs/xtab. Поскольку файл базы данных представлен в бинарном формате, для добавления и редактирования записей существует вспомогательная утилита exportfs.
В ОС Linux имеется файл /ete/exports, содержащий список экспортируемых каталогов в текстовом виде. По умолчанию все файловые системы, указанные в этом файле, экспортируются на этапе начальной загрузки. С помощью команды exportfs -а можно самостоятельно выполнить экспорт после внесения изменений в файл /ete/exports. В командной строке утилиты exportfs можно указать имя клиента, путь к нужному каталогу и различные опции.
NFS работает не на физическом, а на логическом уровне файловой системы.
Экспортировать можно любой каталог; не обязательно, чтобы он был точкой монтирования или корневым каталогом физической файловой системы. Тем не менее из соображений безопасности NFS определяет границы между файловыми системами, относящимися к различным устройствам, и требует, чтобы каждая такая файловая система экспортировалась отдельно.
Обычно клиентам разрешается монтировать подкаталоги экспортированного каталога. 
Каждая файловая система отделена от списка клиентов пробелом, а сразу после имени клиента в круглых скобках стоит список связанных с ним опций, разделенных запятыми. Длинные строки разрешается разбивать на части с помощью обратной косой черты.
Настраивать сервис NFS быстрее и проще всего путем редактирования конфигурационного файла /etc/exports. Однако в ОС Linux для такой задачи существует и графическая утилита, NFS Server Configuration tool, запустить которую можно при помощи команды system-config-nfs.
Процесс монтирования сетевых и локальных файловых систем во многом схож. Для монтирования сетевой файловой системы, доступной по NFS, используется следующая команда:
mount -о <опции_монтирования> имя_хоста:каталог <точка_монтирования>
Команда mount распознает запись вида имя_хоста:каталог как путь к каталогу, расположенному на указанном хосте. Этому каталогу будет поставлен в соответствие каталог локальной файловой системы, указанный в аргументе <точка_монтирования>. После завершения монтирования доступ к сетевой файловой системе осуществляется традиционными средствами.
Параметры, указанные после опции -о, говорят о том, что файловая система монтируется в режиме чтения/записи, файловые операции разрешается прерывать, а повторные попытки монтирования должны происходить в фоновом режиме.

Организация общего доступа на основе Samba
В ОС Linux имеются средства, предназначенные для организации общего доступа к файловым системам для Windows-клиентов. Сервис Samba запускается как пользовательский процесс. Он устанавливает соединения с сокетами, через которые посылаются CIFS-запросы, и ждет клиентских запросов на доступ к общим ресурсам. Как только запрос поступил и был аутентифицирован, демон smbd создает новый процесс smbd, который работает от имени пользователя, пославшего запрос. Таким образом, все права доступа к файлам (включая групповые права) остаются ненарушенными.
Сервис Samba можно рассматривать как серверную часть, в случае предоставления общего доступа к данным для Windows-клиентов, и как клиентскую часть, в случае доступа к данным, расположенным на серверах Windows.
Для того чтобы в ОС Linux организовать общий доступ на основе сервиса Samba необходимо установить следующие пакеты:
• samba, содержащий серверную часть Samba;
• samba-client, содержащий утилиты, при помощи которых можно подключаться к общим каталогам ОС Windows;
• system-config-samba, который содержит графическую утилиту управления
сервисом Samba, Red Hat Samba Server Configuration utility;
• samba-common, который содержит общие конфигурационные файлы Samba.
Конфигурирование сервиса Samba
Конфигурационные файлы сервиса Samba располагаются в каталоге / etc/samba. Основным конфигурационным файлом серверной части Samba является файл /etc/samba/smb.conf. В данном файле определяются следующие группы настроек:
• Глобальные (global). В данной группе настроек определяется рабочая  группа (workgroup), по смыслу аналогичная рабочим группам, используемым в ОС Windows; NetBios - имя данного сервера (netbios name), которое используется для того, чтобы клиенты Windows могли просматривать общие папки сетевого окружения; сетевые интерфейсы (interfaces), используемые для обработки клиентских соединений; список клиентских IР-сетей (hosts allow), которым разрешено подключаться к данному серверу.
Кроме того, в данной группе настроек присутствует директива security, которая определяет, будет ли данный сервер использоваться в качестве локального хранилища учетных записей пользователей. По умолчанию значением данной директивы является значение user. Если же в директиве указано значение ads, то сервер Samba будет использоваться как сервер, находящийся в домене Active Directory В директиве passdb backend содержится база данных, использующаяся для хранения паролей. По умолчанию в данной директиве указан параметр tdbsam, что соответствует базе данных trivial database. Для хранения паролей можно также использовать файл smbpasswd, либо каталог LDAP.
• Настройки общих ресурсов (homes, printers). Данные настройки используются для организации общего доступа пользователей к своим домашним каталогам, а также к общим сетевым принтерам. Каждый пользователь имеет доступ только к своему домашнему каталогу, поскольку по умолчанию используется директива browseable=no. Для того чтобы запустить сервис Samba в работу необходимо запустить два демона: smbd и nmbd, последний из которых используется для работы с именами NetBios. Демоны считывают свои настройки из файла smb.conf. Помимо данных демонов в состав сервиса Samba входят следующие утилиты:
• /usr/bin/smbclient, использующаяся для подключения к общим ресурсам SMB;
• /sbin/mount.cifs, которая используется для монтирования общих ресурсов SMB;
• /sbin/umount.cifs, использующаяся для размонтирования общих ресурсов SMB;
• /etc/init.d/smb - сценарий запуска сервисов Samba;
• /usr/bin/smbprint - сценарий, использующийся для печати данных на принтер, доступный через SMB хост;
• /usr/bin/smbstatus, которая отображает текущие соединения клиентов с демоном smbd.
Создание общих ресурсов SMB
Сервис Samba по умолчанию использует собственную базу данных пользователей.
Для добавления нового пользователя в эту базу необходимо выполнить команду:
В параметре <имя_пользователя> необходимо указать имя пользователя, который уже присутствует в системе в файле /etc/passwd. Данная команда записывает зашифрованный пароль пользователя в файл /etc/samba/smbpasswd. Использование шифрования паролей задается в директиве encrypted passwords = yes глобальных настроек файла smb.conf.
Если к данному серверу Samba планируется подключать пользователей Windows, в файле /etc/samab/smbusers необходимо задать соответствие между именами пользователей Samba и пользователей Windows в следующем формате:
username = Windows_userl Для соотнесения нескольких пользователей Windows одному пользователю Linux необходимо перечислить пользователей Windows через пробел в директиве username:
[data]
comment=Private share for userl and user2
path=/shares/data
read only = no
valid users = userl user2
browseable = no
В данном листинге определен общий ресурс data, который будет доступен для чтения и записи только двум пользователям - userl и user2.
После того, как конфигурационный файл /etc/samba/smb.conf будет отредактирован, его необходимо проверить на наличие ошибок при помощи команды testparm.
По умолчанию сервисы smbd, nmbd и mount.cifs записывают системные события в файл /var/log/messages. Помимо журналирования системных данных демонов существует возможность журналировать информацию о подключениях клиентов. Для этого в файле smb.conf должна присутствовать следующая директива:
log file = /var/log/samba/%m.log
Согласно данной директиве в файл /var/log/samba/<HMfl_mnieHTa>.log будет журналироваться информация по каждому клиенту, который подключается к демону smbd.

Среда, 01.05.2024, 21:53
Приветствую Вас Гость

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта

  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0