Обеспечение взаимодействия UNIX c Windows XP и Mac OS X
Матчасть от IBM
Взято: http://www.ibm.com/developerworks/ru/library/au-unixothers/index.html
UNIX®-системы традиционно применяются в качестве центральных серверов для хранения общих файлов и их обмена ими между клиентскими компьютерами. Мощная сетевая функциональность UNIX-систем и эффективная система защиты UNIX отличной ОС выбором для серверов, однако из-за обилия утилит, серверных приложений и клиентских опций настроить систему, взаимодействующую с различными клиентскими компьютерами даже в небольшой локальной сети может быть непросто.
Рабочие станции и ноутбуки, работающие под управлением Microsoft® Windows® и Apple Mac OS X, могут легко обмениваться данными с Windows-серверами без применения дополнительного ПО или специальных настроек, поскольку они поддерживают протоколы SMB (Server Message Block) и CIFS (Common Internet File System). К счастью, существует Samba -реализация поддержки протоколов SMB и CIFS для UNIX на основе открытого кода.
В Samba реализованы многие полезные функции общего доступа к файлам и принтерам, например, общедоступные каталоги и личные каталоги общего доступа для каждого пользователя, а кроме того, в небольших сетях Samba может даже заменить главный контроллер домена под управлением Windows. Добавив к этому веб-сервер Apache, можно получить еще один способ общего доступа к файлам.
Чтобы следовать инструкциям в этой статье, необходимо установить несколько программ. Все они распространяются свободно и их исходный код открыт.
Samba - это открытая реализация сетевой аутентификации и совместного доступа к файлам и принтерам по протоколам SMB и CIFS, которые применяются в ОС Microsoft Windows и других (в т. ч. OS/2® и Mac OS X). Обычно Samba поставляется вместе с ОС Linux®, но в других UNIX-подобных системах может отсутствовать. В таком случае можно зайти на веб-сайт Samba (см. раздел Ресурсы), загрузить и установить это ПО.
Apache - это наиболее популярный в мире Web-сервер, и при использовании одного из популярных дистрибутивов Linux, он, вероятно, уже установлен. Если же Apache отсутствует, то можно посетить сайт Apache Software Foundation (см. раздел Ресурсы), загрузить Apache, установить и запустить его. Мы применим Apache для обеспечения анонимного доступа к общедоступным хранилищам файлов.
Сервер - UNIX, клиент - рабочая станция
Простейшая сеть состоит из одного сервера и одного клиентского компьютера, подключенного через маршрутизатор или коммутатор (большинство маршрутизаторов для домашнего применения имеет по меньшей мере четыре коммутируемых порта). Со временем сеть растет: обычно добавляются новые рабочие станции, а на сервере увеличивается объем жестких дисков. Подобная сеть показана на рисунке 1.
Рисунок 1. Простая малая сеть.
При такой конфигурации сервер выступает в роли централизованного инструмента резервного копирования и общего доступа к файлам, и, возможно, принтерам. Клиентские компьютеры по мере необходимости обмениваются данными с сервером и между собой.
Для нормальной работы такой системы необходим единый метод аутентификации на сервере и механизм организации общего и личного доступа авторизованных клиентов к нужным файлам, а возможно и механизм анонимного доступа неавторизованных клиентов к общим файлам. Последняя функция может быть полезна, если посетители хотят со своих ноутбуков получить доступ к сети без отдельной учетной записи на сервере.
Далее описывается один из способов реализации этих функций на UNIX-системе при помощи Samba и Apache.
Чтобы клиентские компьютеры имели возможность авторизации на UNIX-сервере, необходимо настроить Samba в качестве главного контроллера домена. Таким образом мы получим единый центр аутентификации, причем он будет работать без какой-либо дополнительной настройки и в Windows XP Professional и Mac OS X. Windows XP Home не поддерживает работу в доменах, поэтому в таком случае потребуется применить другой метод аутентификации. Подробности можно найти в документации по Samba в разделе Ресурсы.
Настройка Samba в качестве контроллера домена
Необходимо войти в систему как суперпользователь (root), найти файл smb.conf (обычно он находится в каталоге /etc/samba) и открыть его в любом текстовом редакторе. При необходимости открыть файл от имени суперпользователя при желании можно и с помощью команды sudo
. Далее в статье предполагается, что мы вошли в систему под именем root, в противном случае перед приведенными командами необходимо набирать sudo
чтобы команда запускалась от имени суперпользователя, а не от имени текущей учетной записи.
Необходимо найти в файле smb.conf раздел [global] и добавить следующие параметры; если они присутствуют, то изменить их значения на значения из листинга 1.
Листинг 1. Изменения в разделе [global] файла настроек Samba
[global] |
Эти параметры устанавливают имя домена WORKS (его можно изменить) и настраивают Samba на вход в домен с безопасностью на уровне пользователя, т.е. с использованием стандартной процедуры аутентификации. Она так называется (user), потому что помимо обычного имени для входа в домен, компьютеры в домене также имеют пользовательские учетные записи. Компьютеры должны авторизоваться в контроллере домена, и только после этого они считаются доверенными системами и могут взаимодействовать с остальными компьютерами в домене.
Необходимо также настроить имена для входа в домен и автоматическое подключение диска S: (на компьютерах с ОС Windows, разумеется) к каталогу \\ИМЯСЕРВЕРА\%u
(ИМЯСЕРВЕРА нужно заменить на имя сервера с Samba). Переменная %u
заменяется на имя пользователя, то есть для каждого пользователя автоматически создается уникальное имя каталога. Параметр logon path (путь входа в систему) используется для перемещаемых профилей рабочих станций (например, для ноутбуков).
Далее необходимо создать раздел [netlogon] для службы сетевого входа в систему (см. листинг 2).
[netlogon] |
Если путь, указанный в параметре path не существует, необходимо создать этот каталог, причем он должен быть пустым. Он требуется для процесса аутентификации.
После того как эти параметры были внесены в файл настроек, нужно добавить учетные записи компьютеров (чтобы рабочие станции были известны домену и считались доверенными) и учетные записи пользователей.
Добавление учетных записей компьютеров
Контроллер домена рассматривает каждый компьютер просто как разновидность пользователя, и поэтому для каждого компьютера должна иметься учетная запись (но с символом "
$ |
" на конце). Кроме того, можно создать отдельную группу для пользователей Samba на случай, если в дальнейшем будет необходимо отделить их от других. В листинге 3 приведена команда, позволяющая сделать это в Linux-дистрибутиве Fedora Core 4 с помощью утилиты groupadd
; в других UNIX-системах есть похожие утилиты либо подробные инструкции по добавлению групп и пользователей.
Листинг 3. Добавление группы и учетных записей компьютеров для Samba
/usr/sbin/groupadd smbusers |
Этой командой создается группа smbusers
и учетные записи компьютеров machine1 и machine2. После создания каждого пользователя сведения о его учетной записи добавляются в файл паролей Samba.
Теперь можно создать учетные записи пользователей.
Замечание об учетных записях компьютеров под Windows XP
При первом входе в Samba с только что добавленного компьютера под Windows XP необходимо зайти как пользователь root с паролем суперпользователя на сервере Samba. При этом учетная запись компьютера проходит аутентификацию на сервере (администраторы серверов под управлением Windows при добавлении компьютера в домен производят аналогичную операцию, заходя под именем Administrator). Это потребуется сделать только один раз; после аутентификации компьютера его пользователи могут входить в Samba с помощью любой действительной учетной записи.
Добавление учетных записей пользователей
Добавление учетных записей пользователей аналогично добавлению учетных записей компьютеров; если пользователь на сервере Samba еще не существует, необходимо создать его и добавить в файл паролей Samba при помощи утилиты smbpasswd
. Ниже приведена команда, позволяющая сделать это в Linux-дистрибутиве Fedora Core 4 при помощи команды useradd
; в других UNIX-системах существуют аналогичные утилиты либо подробные инструкции по созданию пользователей.
/usr/sbin/useradd -g smbusers username |
Эта команда добавляет пользователя в систему и в файл паролей Samba. Также потребуется ввести пароль этого пользователя. Не забудьте сообщить его самим пользователям!
После изменения настроек Samba требуется перезагрузить два демона Samba - smbd
и nmbd
- чтобы они вновь считали файлы настроек. В Fedora Core 4 для этого нужно выполнить следующую команду:
/etc/rc.d/init.d/smb restart |
Этой командой серверы перезагружаются при помощи сценария smb (который также запускает Samba при загрузке системы). Процесс перезагрузки показан на рисунке 2.
Рисунок 2. Перезагрузка Samba.
При использовании другой UNIX-системы можно дать команду перезагрузить файлы настроек при помощи утилиты smbcontrol
:
smbcontrol nmbd reload-config |
Теперь, когда мы настроили Samba для работы в качестве контроллера домена и указали компьютеры и пользователей в сети, нужно задать общие каталоги.
Рекомендуется завести на сервере персональные каталоги для каждого пользователя и общий каталог, куда авторизованные пользователи могут сохранять файлы, которые будут доступны всем. Мы также настроим полностью открытый каталог с доступом на запись и чтение абсолютно для всех.
Добавим в файл smb.conf раздел [homes], приведенный в листинге 4, и при входе пользователя в систему для него создастся домашний каталог, невидимый (в него невозможно зайти) для других пользователей, даже вошедших на сервер под своей учетной записью. С компьютера-клиента этот каталог доступен по адресу \\СЕРВЕР\пользователь
, где СЕРВЕР - имя сервера Samba, а пользователь - имя пользователя, для которого создан этот каталог. Макрос %S
в качестве списка пользователей, которым разрешен доступ, обозначает текущее имя сеанса, то есть имя вошедшего в систему пользователя.
Листинг 4. Открытие доступа пользователей к домашним каталогам
[homes] |
Затем нужно добавить разделы [public] и [shared], тем самым создав общие каталоги \\СЕРВЕР\public
и \\СЕРВЕР\shared
соответственно (СЕРВЕР -имя нашего сервера Samba). У этих каталогов все параметры, кроме одного, одинаковые. Запись в каталог из раздела [public] разрешена только членам группы пользователей Samba (представлена макросом %G
). В каталог, указанный в разделе [shared], запись разрешена всем (см. листинг 5).
[public] |
Полностью открытый каталог следует создавать только в том случае, если вы доверяете лицам, имеющим доступ к серверу Samba; открытые FTP-серверы, например, нередко становились местом хранения пиратского ПО.
Добавив эти разделы в файл настроек smb.conf, необходимо перезагрузить Samba или занового загрузить файлы настроек (см. раздел Перезагрузка Samba).
Теперь компьютеры и пользователи имеют доступ к серверу Samba, однако, еще нужно добавить возможность доступа к общедоступным файлам через Web-браузер. Это можно сделать, добавив общие каталоги в настройках Apache, который запущен на компьютере с сервером Samba.
Необходимо найти файл httpd.conf (в моем случае он находился в каталоге /etc/httpd/conf) и добавить в него текст листинга 6. При помощи инструкций
и
мы открываем доступ к каталогам по адресам http://server/public/ и http://server/shared/, включаем отображение списка файлов в каталоге и разрешаем доступ из любого веб-браузера.
Листинг 6. HTTP-доступ к открытым каталогам
Alias /public/ "/data/public/" |
Сохранив файл, необходимо дать команду перечитать файл настроек Apache при помощи утилиты apachectl
.
/usr/sbin/apachectl restart |
Теперь помимо удобного доступа к каталогам через Samba, любой пользователь может получить доступ к этим каталогам через браузер.
Применяя мощное и хорошо поддерживаемое бесплатное программное обеспечение, в том числе Samba и Apache, можно обеспечить взаимодействие UNIX-сервера с рабочими станциями под Windows и Mac OS X. Выступая в роли главного контроллера домена, Samba предоставляет службу аутентификации. Благодаря серверу Samba пользователи могут получить доступ к общим каталогам, подключив их обычными способами. Добавив в эту связку веб-сервер Apache, можно предоставить простой доступ без авторизации на чтение общих каталогов. Совместный доступ к ресурсам является одной из целей создания локальных сетей, и возможность общего доступа упрощает установку и настройку сети.
Научиться
- Make UNIX work with Windows XP and Mac OS X (EN): оригинал статьи.
- How to (EN): подробные учебные руководства по Samba.
- Interview: Taking Samba beyond POSIX (EN): (developerWorks, апрель 2003 г.) статья о последней версии Samba.
- Using Samba as primary domain controller (EN): (developerWorks, апрель 2002 г.) пошаговое руководство о настройке Samba в качестве главного контроллера домена.
- LDAP-based authentication for Samba (EN) (developerWorks, январь 2006 г.) пошаговое руководство об установке и настройке Samba в качестве главного контроллера домена с механизмом аутентификации на основе LDAP.
- IBM Rational® ClearCase MultiSite® and SAMBA 3.0 (EN): (developerWorks, август 2005 г.) статья о настройке и применении новой команды net в Samba 3.0.
- Samba-3 by Example (EN): онлайновое руководство, в котором описаны примеры развертывания Samba.
- Common threads: Introduction to Samba, Part 1 (EN): (developerWorks, июнь 2000 г.) cерия статей Дэниэла Роббинса о Samba.
- Common threads: Inside Samba 2.2 (EN): (developerWorks, апрель 2001 г.). еще одна статья Дэниэла Роббинса о некоторых новых функциях в этой версии.
- Для инженеров-разработчиков: в работе Samba Fileserving on IBM zSeries servers with z/VM (EN) ("Хранилище файлов под управлением Samba на серверах IBM zSeries с z/VM") описываются методы, примененные Центром масштабирования Linux (IBM Linux Scalability Center) при организации объединенного хранилища файлов на основе Samba с использованием z/VM® и Linux для zSeries® на аппаратной платформе IBM eServer™ zSeries.
- AIX and UNIX: в разделе AIX and UNIX developerWorks размещена различная информация по всем аспектам системного администрирования AIX, которая поможет лучше изучить UNIX.
- Команда IBM developerWorks проводит по всему миру сотни бесплатных технических консультаций.(EN)
Получить продукты и технологии
- Сайт Samba.
- Главный сайт Apache.
- IBM trial software: ознакомительные версии программного обеспечения для разработчиков, которые можно загрузить прямо со страницы сообщества developerWorks.