Linux родился в сети и работает без сети, мягко говоря, неполноценно. Поэтому меня удивляют разговоры о том, что под Linux "неудобно" работать в локальной сети. Итак, сегодня будем учить "дружить" наш

Linux родился в сети и работает без сети, мягко говоря, неполноценно. Поэтому меня удивляют разговоры о том, что под Linux "неудобно" работать в локальной сети. Итак, сегодня будем учить "дружить" наш Linux для работы в сети с рабочими станциями MicroSoft.

Большинство моих знакомых (те, кто решился установить себе Linux) испытывали нечто вроде шока, как будто их выдернули из привычной среды Windows и ничего не дали взамен. Многим не хватило, наверное, смелости шагнуть дальше главного меню. И во многом это относилось к жизни в локальной сети. Ниже я постараюсь рассказать, как можно настроить свое Linux-окружение таким образом, чтобы оно было максимально похожим на то, к чему старательно приучает своих адептов MicroSoft. Данную статью я не старался сделать всеобъемлющим руководством по двум причинам. Во-первых, это попросту невозможно из-за объемистости материала, а во вторых, описывать здесь настройку сети и давать советы по тому, как установить ту или иную программу — значит, отклоняться от темы. Возможно, этим вопросам будут посвящены другие статьи.

То, что вы видите в Сетевом окружении, обеспечивается т.н. smb-протоколом. Список компьютеров рабочей группы выдается т.н. Master browser'ом — компьютером, который выбирается в сети для того, чтобы держать список машин рабочей группы (происходит это в большинстве случаев автоматически, без участия пользователей, но возможно и ручное указание). Соответственно, если существует несколько рабочих групп, выбирается и Group Master. В связи с этим иногда происходят различные "глюки", когда компьютер, который выбран держателем "сетевого списка", некорректно обрабатывает запросы. В этом случае получить список рабочей группы становится невозможным. Для реализации smb в Linux (и остальных Unix-подобных системах) был создан SAMBA — пакет программ, содержащий в себе сервер и клиент, написанный методом "обратного инжиниринга". Для того, чтобы использовать Windows-ресурсы (а это не только файлы, но и принтеры), этот пакет необходимо скачать и установить (обязательно поищите его в своем дистрибутиве — сейчас наличие SAMBA является практически стандартом). Будем считать, что сеть у вас настроена и уже работает (т.е. соседние компьютеры исправно пингуются "> ping somehost"). Приступаем.

Этап 1. Скачиваем "Самбу" (если вы начинающий, качайте лучше бинарные rpm-пакеты).
Этап 2. Устанавливаем. Установка никаких особенных сложностей не имеет (в той мере, в какой это применимо к установки в Linux:-)).
Этап 3. Настройка. Идем в /etc/samba/smb.conf и открываем его для редактирования (помните: для этого нужны права root). Редактируем его следующим образом (настройки конфига приведены для samba3.0.7-, примеры для более ранних версий вы без труда найдете в Сети):

[global]
# Имя рабочей группы (куда будет включен компьютер)
workgroup = MDKGROUP
# Имя компьютера, по которому будут обращаться к нему Windows-машины
server string = mentalzavr
# Дальнейшие настройки можно пока оставить без изменений
# Теперь важное: настройка кодировок. Эти настройки необходимы, чтобы
# Linux "правильно" понимал русские названия папок и файлов в сети
dos charset = 866
unix charset =KOI8-R
Этап 4. Теперь попробуем сделать доступными некоторые папки для остальных в сети. Делается это следующим образом:
#Имя ресурса в сети
[HOME_ZAVRMNT]
# Путь к расшариваемой папке
path = /home/zavr/mnt
# Комментарий к ресурсу
comment = /home/zavr/mnt
# Публичный да/нет
public = yes
# Доступ к папке в режиме чтения -да/нет
writable = no
Итак, папки мы уже расшарили. Встает вопрос, каким образом можно расшарить папки только для определенных пользователей. Делается это следующим образом:
Этап 5.
# Имя ресурса
[C$]
# Комментарий
comment = Public Stuff
# Путь
path = /mnt/win_c
public = no
writable = no
# Перечисление пользователей, которые могут получить доступ к ресурсу
valid users = user1,user2

Внимание! Перечисленные пользователи являются внутрисистемными (т.е. такие пользователи должны существовать в системе)! А чтобы добавить пользователей в базу SAMBA, нужно поступить следующим образом. Открываем консоль с соответствующими правами и даем следующую команду: "> smbpasswd -a"

После чего вводим имя пользователя и пароль для него. Таким образом мы добавим запись о наших пользователях. Вот и все! Теперь вы имеете возможность как просматривать ресурсы соседних компьютеров, так и расшаривать свои ресурсы (причем это можно делать и прямо из KDE, но настоятельно рекомендую все же вручную). Будем считать далее, что сеть и SAMBA в системе уже настроены (т.е. то, что описано выше, сделано и проверено на работоспособность). Итак, первое (как я уже говорил вначале), что поражает новоиспеченных пользователей Linux — отсутствие как такового Сетевого окружения. Есть несколько наиболее распространенных способов решения этой проблемы.

Способ Первый. Не самый удачный. Смонтировать все необходимые сетевые ресурсы где-нибудь в каталоге пользователя. Возможность работы сохраняется, но может послужить порождению большого количества возмущенных высказываний в ваш адрес. Данный способ не годится, если сеть не является объектом управляемым, а скорее стихийным (например, домашние сети — там в некоторых случаях вообще царит полная анархия, и надеяться на то, что существующий ресурс будет существовать и завтра, не стоит). Правда, в таком случае и Сетевым окружением пользоваться также будет сложно (особенно если сеть одноранговая, без DNS и проч.).

Способ Второй.
В современных пользовательскоориентированных дистрибутивах (вы же не будете утверждать, что Mandrake позиционируется как серверная OS?) в стандартную поставку обычно входят два демона: LISa и ResLISa. Эти два сервиса отвечают за обнаружение компьютеров в локальной сети и представление их пользователю. Настройка их интуитивно понятна и в основном сводится к заданию подсети, в которой эти демоны будут работать. Запускается программа настройки либо из главного меню (KDE), либо командой kcmshell lanbrowser):

На скриншоте показаны настройки для локальной сети (возможно, вам придется IP-адреса изменить). После настройки в Konqueror после нажатия F9 можно будет лицезреть вашу локальную сеть. Однако не удивляйтесь, если вместо привычных названий компьютеров вы увидите их IP-адреса:-). Дело в том, что данные демоны для определения имен узлов пытаются использовать DNS, который в случае отсутствия такового у вас вам придется настроить для нормальной работы самостоятельно. Если же этого по каким-либо причинам не хочется делать, можно поступить таким образом. Открываем консоль и пишем:

"> finbsmb"
После этого мы получаем список доступных в сети компьютеров с netbios-именами и IP-адресами примерно такого вида:
[zavr@mentalzavr mentalzavr]$ findsmb3
IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
-----------------------------------------
192.168.5.2 vitek
192.168.5.3 sam-computer
192.168.5.5 gooroo

Теперь меняем права на root'а (вы ведь не сидите постоянно под суперпользователем при нормальной работе?) и находим файл /etc/hosts.

Наверняка вы уже слышали, что в этом файле хранятся соответствия IP — имя хоста. Догадались уже, что теперь вам нужно сделать? Да, скопировать то, что выдает finsmb в данный файл. Скопируйте это или через буфер, или "по-взрослому":

"> findsmb > new_host"

Затем замените этим файлом ваш исходный файл (только не забудьте удалить заголовок таблицы и внести в новый файл те записи, которые уже есть в этом файле). Еще один момент. Браузер вам просто так рабочие группы не покажет:-). Все компьютеры будут находится в одном списке. Для того, чтобы рабочие группы все же увидеть, вам придется прописать в адресной строке что-то вроде:

"> smb:/"
(Показывает все рабочие группы)
"> (smb://workgroup/)"
(Показывает список компьютеров в рабочей группе workgroop)

Однако отличия на этом не заканчиваются. Рабочие группы меняются очень редко, и для доступа к ним можно использовать ярлыки. Но браузер в дополнение ко всему вам покажет при открытии папки с именем компьютера все сервисы, запущенные на нем (имеется в виду не только smb, но и ftp, htp и др., что, по-моему, весьма удобно, не правда ли?). И, в отличие от Windows, здесь вы не сможете напрямую использовать файлы, расшаренные в сети. Они должны первоначально быть скопированы на локальный компьютер. (Если вы этого не сделаете явно, Linux в некоторых случаях вполне справится с этим самостоятельно, т.е. сначала скопирует во временную директорию, а затем запустит проигрыватель, например:-)). Так что не надейтесь посмотреть фильм с чужого винчестера. Для этого ресурс необходимо сначала смонтировать. Делать это можно вручную, а можно и с помощью специальных программ.
Ручное монтирование можно производить с помощью команд smbmount (монтирование) и smbumount (соответственно размонтирование):

"> smbmount3 \\serevr\film /home/mentalzavr/mnt -o iocharset=koi8-r,codepage=cp866"
"> smbumount /home/mentalzavr/mnt"

Конечно, монтирование вручную является наиболее "продвинутым", но одновременно и самым неудобным. Хочу представить вам несколько программ, которые берутся этот процесс автоматизировать. Как правило данные программы используют стандартные команды "Самбы" для построения дерева компьютеров, т.е. фактически являются графическими интерфейсами к консольным программам. Пожалуй, наиболее популярна на сегодняшний день LinNeigborhood. После установки (она несложна в той степени, в какой это выражение применимо к установке программ в Linux) доступны следующие настройки:

1. Дефолтовая папка монтирования.
2. Файловый менеджер, используемый по умолчанию.
3. Дополнительные опции, передаваемые smbmount, и др.
3. Используемые для доступа к компьютерам и ресурсам имена пользователей и пароли (хранить их в программе небезопасно!).
4. А также многое другое.

Не правда ли, сильно смахивает на Сетевое окружение? Использование программы предельно просто. Происходит построение дерева доступных компьютеров, а также списка их ресурсов. Двойной щелчок по ресурсу инициирует автоматическое монтирование. Возможно автоподключение ресурсов (восстановление) после перезагрузки. На данный момент существует поддержка русского языка.

Следующая программа — Smb4K. Она во многом аналогична предыдущей, но, кроме того, позволяет настраивать несколько пользователей (и, соответственно, паролей для различных компьютеров). Smb4K также умеет автовосстанавливать подключения после перезагрузки программы. Поддерживается русский интерфейс.
GUI выглядит следующим образом:


Теперь внимание. Если вы сейчас попытаетесь смонтировать папку с русскими файлами (при условии, что настройки Samba у вас такие, как приведены выше), то вместо нормальных русских имен будет абракадабра. Чтобы этого не происходило, необходимо в команде монтирования добавить следующие аргументы:

"> smbmount3 iocharset=koi8-r,codepage=cp866"
(локаль -koi8-r)

Обратите внимание, что дается команда smbmount3, а не smbmount. Это связано с тем, что в некоторых случаях smbmount игнорирует опции явного указания кодировок.
До новых встреч!

Спичеков Александр aka MentALzavR, zavr6@mail.ru UIN#282631844


Компьютерная газета. Статья была опубликована в номере 16 за 2005 год в рубрике soft :: ос

©1997-2024 Компьютерная газета