Обеспечение взаимодействия UNIX c Windows XP и Mac OS X

Обслуживание UNIX-сервером настольных компьютеров

В статье описывается, как можно использовать UNIX®-систему в качестве главного контроллера домена (PDC) и хранилища файлов, обеспечивающего доступ к общим файлам только для чтения через Web-браузер. Для корректной работы в локальной сети необходимо наладить сетевое взаймодействие cерверной UNIX-системы и компьютеров-клиентов, на которых обычно установлены ОС Windows® XP или Mac OS X, чтобы пользователям этих рабочих станций могли проще применять сервисы централизованной аутентификации и хранилища данных, предоставляемыми контроллером домена.

Крис Херборт, внештатный сотрудник, независимый писатель

Photo of Chris HerborthКрис Херборт (Chris Herborth) уже более 10 лет пишет об операционных системах и программировании. Он выигрывал награды как старший технический писатель. Если он не играет с сыном Алексом или просто проводит время с женой, Крис посвящает свое свободное время написанию статей и исследованию видео игр (то есть, игре).



01.10.2008

Введение

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]
      workgroup = WORKS
      domain logons = yes
      security = user
      local master = yes
      os level = 65
      preferred master = yes
      domain master = yes
      encrypt = yes
      smb passwd file = /etc/samba/passwd
      domain logons = yes
      logon path = \\%n\profiles\%u
      logon drive = S:

Эти параметры устанавливают имя домена WORKS (его можно изменить) и настраивают Samba на вход в домен с безопасностью на уровне пользователя, т.е. с использованием стандартной процедуры аутентификации. Она так называется (user), потому что помимо обычного имени для входа в домен, компьютеры в домене также имеют пользовательские учетные записи. Компьютеры должны авторизоваться в контроллере домена, и только после этого они считаются доверенными системами и могут взаимодействовать с остальными компьютерами в домене.

Необходимо также настроить имена для входа в домен и автоматическое подключение диска S: (на компьютерах с ОС Windows, разумеется) к каталогу \\ИМЯСЕРВЕРА\%u (ИМЯСЕРВЕРА нужно заменить на имя сервера с Samba). Переменная %u заменяется на имя пользователя, то есть для каждого пользователя автоматически создается уникальное имя каталога. Параметр logon path (путь входа в систему) используется для перемещаемых профилей рабочих станций (например, для ноутбуков).

Далее необходимо создать раздел [netlogon] для службы сетевого входа в систему (см. листинг 2).

Листинг 2. Раздел [netlogon]
[netlogon]
      command = Служба входа в домен.
      path = /home/netlogon
      guest ok = yes
      public = no
      writable = no
      share modes = no

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

После того как эти параметры были внесены в файл настроек, нужно добавить учетные записи компьютеров (чтобы рабочие станции были известны домену и считались доверенными) и учетные записи пользователей.


Добавление учетных записей компьютеров

Контроллер домена рассматривает каждый компьютер просто как разновидность пользователя, и поэтому для каждого компьютера должна иметься учетная запись (но с символом "

$

" на конце). Кроме того, можно создать отдельную группу для пользователей Samba на случай, если в дальнейшем будет необходимо отделить их от других. В листинге 3 приведена команда, позволяющая сделать это в Linux-дистрибутиве Fedora Core 4 с помощью утилиты groupadd; в других UNIX-системах есть похожие утилиты либо подробные инструкции по добавлению групп и пользователей.

Листинг 3. Добавление группы и учетных записей компьютеров для Samba
/usr/sbin/groupadd smbusers
for system in machine1 machine2 ; do \
    /usr/sbin/useradd -g smbusers -d /dev/null -s /dev/null $machine\$ ; \
    smbpasswd -m -a $machine ; \
done

Этой командой создается группа 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
smbpasswd -a username

Эта команда добавляет пользователя в систему и в файл паролей Samba. Также потребуется ввести пароль этого пользователя. Не забудьте сообщить его самим пользователям!


Перезагрузка Samba

После изменения настроек Samba требуется перезагрузить два демона Samba - smbd и nmbd - чтобы они вновь считали файлы настроек. В Fedora Core 4 для этого нужно выполнить следующую команду:

/etc/rc.d/init.d/smb restart

Этой командой серверы перезагружаются при помощи сценария smb (который также запускает Samba при загрузке системы). Процесс перезагрузки показан на рисунке 2.

Рисунок 2. Перезагрузка Samba.
Перезагрузка Samba

При использовании другой UNIX-системы можно дать команду перезагрузить файлы настроек при помощи утилиты smbcontrol:

smbcontrol nmbd reload-config
smbcontrol smbd reload-config

Общие каталоги

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

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

Добавим в файл smb.conf раздел [homes], приведенный в листинге 4, и при входе пользователя в систему для него создастся домашний каталог, невидимый (в него невозможно зайти) для других пользователей, даже вошедших на сервер под своей учетной записью. С компьютера-клиента этот каталог доступен по адресу \\СЕРВЕР\пользователь, где СЕРВЕР - имя сервера Samba, а пользователь - имя пользователя, для которого создан этот каталог. Макрос %S в качестве списка пользователей, которым разрешен доступ, обозначает текущее имя сеанса, то есть имя вошедшего в систему пользователя.

Листинг 4. Открытие доступа пользователей к домашним каталогам
[homes]
    comment = Home Directories
    valid users = %S
    read only = no
    browseable = no

Затем нужно добавить разделы [public] и [shared], тем самым создав общие каталоги \\СЕРВЕР\public и \\СЕРВЕР\shared соответственно (СЕРВЕР -имя нашего сервера Samba). У этих каталогов все параметры, кроме одного, одинаковые. Запись в каталог из раздела [public] разрешена только членам группы пользователей Samba (представлена макросом %G). В каталог, указанный в разделе [shared], запись разрешена всем (см. листинг 5).

Листинг 5. Два общих каталога
[public]
    comment = Public files
    public = yes
    browseable = yes
    write list = %G
    path = /data/public

[shared]
    comment = Totally open shared area
    public = yes
    browseable = yes
    read only = no
    path = /data/shared

Полностью открытый каталог следует создавать только в том случае, если вы доверяете лицам, имеющим доступ к серверу Samba; открытые FTP-серверы, например, нередко становились местом хранения пиратского ПО.

Добавив эти разделы в файл настроек smb.conf, необходимо перезагрузить Samba или занового загрузить файлы настроек (см. раздел Перезагрузка Samba).


Упрощенный доступ

Теперь компьютеры и пользователи имеют доступ к серверу Samba, однако, еще нужно добавить возможность доступа к общедоступным файлам через Web-браузер. Это можно сделать, добавив общие каталоги в настройках Apache, который запущен на компьютере с сервером Samba.

Необходимо найти файл httpd.conf (в моем случае он находился в каталоге /etc/httpd/conf) и добавить в него текст листинга 6. При помощи инструкций <Alias> и <Directory> мы открываем доступ к каталогам по адресам http://server/public/ и http://server/shared/, включаем отображение списка файлов в каталоге и разрешаем доступ из любого веб-браузера.

Листинг 6. HTTP-доступ к открытым каталогам
Alias /public/ "/data/public/"
<Directory "/data/public">
	Options Indexes MultiViews
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory*>
Alias /shared/ "/data/shared/"
<Directory "/data/shared">
	Options Indexes MultiViews
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

Сохранив файл, необходимо дать команду перечитать файл настроек 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.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=342695
ArticleTitle=Обеспечение взаимодействия UNIX c Windows XP и Mac OS X
publish-date=10012008