Впечатления об установке и настройке Red Hat Linux 9 Cyrillic Edition

В.А.Костромин, 15-17 сентября 2003 г.

День одиннадцатый. Samba.

Примечание: Хоть и называется эта моя заметка "День одиннадцатый", но рассказывается в ней о нескольких днях моих мучений с сервером Samba. О причинах задержки я расскажу по ходу, а пока - приступим!

Пообещал я вам в прошлом выпуске моих заметок, что займусь серверными приложениями, но, когда приступил, подумал - а что там смотреть? Работать они, без сомнения будут, с русским языком и кодировкой проблем быть не должно, уж у Apache точно, а у Samba - разве что в именах файлов на примонтированных дисках. Но раз уж пообещал, пришлось заняться запуском этих сервисов и рассказать о своих впечатлениях.

Начал я с Samba. Вообще-то на домашнем компьютере этот сервис и не очень нужен. Но, если (как в моем случае) есть два компьютера, причем на обоих организована многовариантная загрузка, то Samba помогает организовать взаимодействие между этими компьютерами при разных ОС, запущенных на двух компьютерах. Кроме того, я использую Samba на рабочем месте (где у меня базовая ОС тоже Линукс) для взаимодействия с компьютерами других пользователей, которые, естественно, в основном (да что там в основном, все!) работают под Windows. Так что в целях тестирования дистрибутива необходимо было с этим продуктом поэкспериментировать. Но провозился я с ним несколько дней!

Естественно, что пакет Samba у меня не был установлен (я же ставил минимальную конфигурацию), что и подтвердила команда

rpm -qa | grep samba

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


Рис. 24.

Удивление вызвано тем, что автоматически запустилась уже знакомая нам утилита установки и удаления программ. Я уже много раз вставлял этот диск в дисковод и почему-то только в этот раз сработал автозапуск. Это меня и удивило. Итак, после того, как прошла процедура проверки состояния пакетов в системе, появилось окно, изображенное на рис. 24. Как работать с этой утилитой, вы уже знаете (смотри "День пятый"), поэтому рассказывать об этом снова я не буду. Я задал установку "Файлового сервера для Windows" и заодно проверил, что Apache тоже установлен. Кроме http-сервера в группе "Web Server" я отметил для установки также дополнительные пакеты php, php-mysql, tux и webalizer. После чего щелкнул по кнопочке "Вперед".

Дождавшись завершения установки, я перешел в каталог /etc/samba и провел небольшую корректировку в файле smb.conf, а именно, поменял название рабочей группы на home:

[global]
    workgroup = home

и раскомментировал строки, открывающие доступ к каталогам /home/public и /home/pc/%m (здесь %m изначает имя компьютера), причем, поскольку в исходном файле smb.conf в качестве общедоступного ресурса public был указан другой каталог, имя тоже пришлось поменять:

[public]
    comment = Public Stuff
    path = /home/public
    public = yes
    writeble = yes
    printable = no
[pchome]
    path = /home/pc/%m
    public = no
    writeble = yes
 
Кроме того, домашние каталоги пользователей изначально открыты для них в том варианте конфигурационного файла, который был создан при установке пакета.

После этого я запустил программу настройки сервисов (о ней я тоже уже рассказывал), задал запуск smbd при загрузке компьютера на 3 уровне, сохранил конфигурацию, и для работы в текущем сеансе запустил сервис smbd кнопочкой "Запустить". Основной мой компьютер в это время работал под управлением Windows 98.

Выполняю на тестовом компьютере (его имя в сети old-lin, а имя основного - trend) команду

smbclient -L trend

и вижу список открытых ресурсов на компьютере trend:

   Sharename      Type      Comment
--------- ---- -------
E Disk
INSTALL Disk
C Disk
IPC$ IPC Взаимодействие между удаленными процессами

Server Comment
--------- -------

Workgroup Master
--------- -------
На основном компьютере в папке "Сетевое окружение" вижу, соответственно, два компьютера - см. рис. 25.

Рис. 25. Папка "Сетевое окружение" на компьютере trend.

Однако попытка открыть какую-либо папку на old-lin окончилась неудачей. У меня был затребован пароль, но ни один из извесных мне вариантов пароля (а какие еще варианты могут быть, если я полный и единственный хозяин в моей домашней сети!) не сработал. Вот в таком положении я и застрял на пару дней.

Вначале я считал, что причина заключается в неправильной настройке сервера Samba и пытался настроить его известным методом "научного тыка", меняя настройки в конфигурационном файле, причем руководствуясь только теми комментариями, которые в этом файле даны. Добился я только того, что компьютер old-lin перестал отображаться в папке "Сетевое окружение" Windows-компьютера. И тогда пришла уверенность в том, что начать придется с чтения документации (ЧЕРТ!). У меня под рукой была книга [1], электронные варианты двух изданий ([2] и [4]) книги "Using Samba", а также перевод на русский язык трех первых глав из первого издания этой книги [3]. Вы можете найти эти книги в "Библиотеке" сайта, или заказать твердую копию книги [4] в Интернет-магазине "Болеро". Кроме того, в том же магазине имеется еще одна книга на интересующую нас тему [5]. Что касается двух первых книг, то осмелюсь порекомендовать вам "Using Samba". В первых главах этой книги, которые, как я уже говорил, имеются и в русском переводе, очень хорошо рассказано о протоколе SMB, а потом и о настройках конфигурационного файла (но это уже по-английски). Книга же [1], насколько я успел с ней познакомиться, довольно неудобна в использовании. Но я не буду совсем уж ее ругать, тем более, что первоначальную настройку сервера Samba и Windows-клиента я делал как раз следуя рекомендациям этой книги.

Впрочем и [3] я тоже пролистал, и, добравшись до раздела 2.4, я, как мне показалось, обнаружил причину своих неудач. Вот небольшая цитата из [3]:

"Если вы используете Windows 98 или Windows NT Service Pack 3 и выше, вы должны добавить следующую запись в секцию [global] в конфигурационном файле Samba: encrypt passwords = yes. Дополнительно, вы должны использовать программу smbpassword (обычно расположенную в /usr/local/samba/bin/) для ввода комбинаций пользователь/пароль тех пользователей на сервере Unix, которые смогут получить доступ к ресурсам через зашифрованную базу данных клиентов Samba."

Я же не задал ни одного пользователя для сервера Samba и закомментировал строку об использовании шифрованных паролей. Ну, что-ж, будем исправяться!

Команду smbpassword я нашел в каталоге /usr/bin/, где нашлись еще несколько команд, имеющих отношение к Samba. Я решил воспользоваться командой smbadduser:

/usr/bin/smbadduser kos:kos

которая после запуска запросила и пароль для нового пользователя. После этого я раскомментировал строку encrypt passwords = yes в файле /etc/samba/smb.conf и снова перезапустил демон smbd.

Но эти действия к успеху не привели - доступа к ресурсам на old-lin из "Сетевого окружения" по-прежнему не было. И тогда я решил не метаться из стороны в сторону, а последовательно выполнять рекомендации одной из книг. В качестве такой я выбрал [1].

В соответствии с рекомендациями этой книги выполняю команду 

smbclient -L old-lin -U kos

которая выдает следующий результат:
Domain=[HOME] OS=[Unix] Server=[Samba 2.2.7a]

Sharename Type Comment
--------- ---- -------
public Disk Public Stuff
IPC$ IPC IPC Service (Samba Server on old-lin)
ADMIN$ Disk IPC Service (Samba Server on old-lin)
kos Disk Home Directories

Server Comment
--------- -------
OLD-LIN Samba Server on old-lin
TREND trend

Workgroup Master
--------- -------
HOME OLD-LIN
В [1] еще рекомендуется войти клиентом на локальный сервер, что я и проделал с помощью команды

smbclient //old-lin/kos

И вполне успешно, потому что после ввода пароля и появления приглашения smb:> команда ls выдала список файлов моего домашнего каталога.  Таким же успешным был и результат выполнения команды
smbclient //trend/C


По команде ls я увидел и список файлов на диске C: компьютера trend. Делаю вывод: на old-lin с настройками Samba все в порядке, причину надо искать в Windows.

Перехожу на Windows-компьютер и проверяю правильность сетвых настроек в соответствии с рекомендациями главы 2 книги [1]. Вроде все правильно, однако в окне "Сетевое окружение" не появляется ничего, кроме строки "Вся сеть", щелчок мышкой по которой теперь приводит к появлению сообщения о том, что сеть недоступна. Чем дальше - тем больше!

Снова обращаюсь к книге [1] и нахожу рекомендацию запустить в DOS-окне команду net use F: \\host\service, которую я и запускаю в следующем виде:
net use F: \\old-lin\kos

После этого в окне Проводника вижу диск F: с перечнем файлов  моего домашнего каталога на компьютере old-lin. Правда, имена файлов, которые были заданы русскими буквами в Unicode (помните, был создан файл "тест.utf"), отображаются непонятными комбинациями символов (см. рис. 26).


Рис.26. Компьютер old-lin со стороны Windows.

А "Сетевое окружение" по-прежнему ничего не показывает. Зато функция "Подключить сетевой диск" в меню Проводника успешно подключает ресурс \\old-lin\public как диск G:.
Тогда я запускаю на old-lin (от имени суперпользователя и создав предварительно каталог /mnt/trend) команду
smbmount //trend/C /mnt/trend
Результат вы видите на рисунке 27.


Рис. 27. Ресурс Windows-компьютера, смонтированный на Linux-машине.

И снова с русским языком не все в порядке: вместо имени каталога "Мои документы" видим знаки вопроса. Правда, в данном случае возникает подозрение - а не виноват ли в этом Midnight Commander?

Но разбираться с этим буду завтра, а пока можно констатировать, что и Samba-сервер и Samba-клиент под Red Hat Linux 9.0 работают. И если не использовать русский язык в именах файлов, то проблем нет. Но все же необходимо еще поиграть опциями монтирования, может быть удастся и русские символы победить.

Замечание в скобках: Я и раньше встречался с такой ситуацией, когда 3 способа обзора локальной сети, а именно, через "Сетевое окружение", через "Поиск компьютера" и через "Подключение сетевого диска" дают совершенно разные результаты. Логику Misrosoft в этом случае постигнуть совершенно невозможно. Может кто-то может объяснить? А пока приходится пробовать все три варианта, авось какой-то сработает!
Продолжение следует...

Список литературы и ссылки.

  1. Э.Бруксбенк, Д.Хабербергер, Л.Дойл, "SAMBA. Руководство системного администратора для профессионалов. Изд. Питер, Санкт-Петербург, 2001 год, 416 стр.
  2. Jay Ts, Robert Eckstein, and David Collier-Brown, "Using Samba, 2nd Edition" , February 2003 O'Reilly & Associates, ISBN: 0-596-00256-4 (Копия в "Библиотеке" сайта).
  3. Robert Eckstein, David Collier-Brown, Peter Kelly, перевод - Абдрашитов Вадим, "Using Samba" , 1st Edition, O'Reilly & Associates, November 1999 (Копия в "Библиотеке" сайта).
  4. Robert Eckstein, David Collier-Brown, Peter Kelly, "Using Samba" , 1st Edition, O'Reilly & Associates, November 1999. (Копия в "Библиотеке" сайта").
  5. Колисниченко Д.Н., "Linux-сервер своими руками", Издательство: Наука и техника, 576 стр.


Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости