Ключевые слова:samba, howto, win, (найти похожие документы)
- RU.LINUX (2:5077/15.22) ------------------------------------------ RU.LINUX -
From : Kosta Kudrin 2:5054/69 28 Nov 00 13:34:52
Subj : Руководство как установить и провести диагностику SAMBA
-------------------------------------------------------------------------------
#
# Перевод Copyright(C) by Kosta Kudrin
# cola@tcsb.perm.su aka 2:5054/69@fidonet
# Данный текст является переводом файла INSTALL из
# пакета samba-1.9.16p11
#
КАК ИНСТАЛЛИРОВАТЬ И ТЕСТИРОВАТЬ SAMBA
ШАГ 0. Читайте руководство.Оно содержит множество полезной информации
которая может помочь вам начать работу. Если вы не знаете как прочитать
руководство , то тогда попробуйте что-нибудь подобное :
nroff -man smbd.8 | more
ШАГ 1. Создание бинарных файлов.
Во-первых, отредактируйте файл source/Makefile. В нем вы найдете что samba
может работать на множестве unix OS и вам необходимо будет раскоментировать
ту строчку , которая соответствует вашей ОС.
Вы так же должны редактировать секцию в верху Makefile , которая определяет
куда будет инсталлированна samba. Там же устанавливаются пути к вашим лог
файлам и так далее. Проверьте что все введено правильно и каталоги
существуют.
После чего выполните команду "make". После чего будут созданы исполняемые
файлы. После того как эта команда завершилась корректно вы можете выполнить
команду "make install" для инсталляции исполняемых файлов и файлов помощи.
Вы можете разделить инсталляцию исполняемых файлов и файлов помощи использую
команды "make installbin" и "make installman". Заметте , что если вы
обновляете предыдущую версию samba , то вы должны знать что старые версии
исполняемых файлов будут переименованы с расширением .old. Вы можете
вернуть предыдущую версию с помощью команды "make revert".
ШАГ 2. Самый важный шаг.
На этой стадии вы должны принести себе кофе или какой другой стимулирующий
напиток. Отдых перед установкой прав пользователям иногда может быть большой хитростью ,
так что скорее всего он вам необходим.
Если вы уже имеете установленную samba , то пропустите этот шаг . ;)
ШАГ 3. Создание файла конфигурации smb.conf.
Есть достаточное количество примеров файлов конфигурации в подкаталоге examples
Я предлагаю вам читать их внимательно , так как возможно некоторые из опций
вы будете использовать на практике.
Самый простой файл конфигурации будет что-нибудь типа :
workgroup = MYGROUP
[homes]
guest ok = no
read only = no
который будет позволять присоединятся к серверу любому пользователю с
acount'ом на сервере , использующему свое имя для входа в систему или имя
службы "homes" .(Замете , что я так же установил рабочую группу , в которую
входит и сама samba). Для получения большей информации смотри ROWSING.txt
Замете , что команда "make install" не будет инсталлировать файл smb.conf.
Вам необходимо будет создать его самим . Вам так же и необходимо будет
создать путь , определенный в Makefile для logs и т.д., такой как /usr/local/samba.
Проверьте , что вы установили файл smb.conf в том месте , которое вы
определили в файле Makefile.
ШАГ 4. Тестирование вашего файла smb.conf с помощью testparm.
Важно что бы вы протестировали ваш файл конфигурации smb.conf используя
программу testparm. Если testparm сообщил вам "OK" , то после этого он
выдаст вам список используемых служб. Если же нет , то вы получите сообщение
об ошибке.
ШАГ. Запуск smbd и nmbd.
Вы должны выбрать как запускать smbd и nmbd или как демона или из файла inetd.
Не пытайтесь запустить сразу же оба варианта. Или вы можете установить их в
inetd.conf и иметь запрос на их запуск из inetd, или вы можете запускать их
как демонов или из командной строки или из /etc/rc.local. Для получения всех
опций смотрите руководство пользователя ( man ).
Основным преимуществом запуска smbd и nmbd как демонов заключается в том ,
что они при этом более быстро отвечают на запрос инициализации соединения.
Но это , однако , иногда не решает проблем.
Шаг 5a. Запуск из inetd.conf
ЗАМЕЧАНИЕ;
NOTE; The following will be different if you use NIS or NIS+ to
distributed services maps.
Посмотрите ваш файл /etc/services. Что определено для порта 139/tcp ? Если
ничего то определите его добавив строку вида:
netbios-ssn 139/tcp
так же для 137/udp вы должны иметь строку:
netbios-ns 137/udp
После чего отредактируйте ваш файл /etc/inetd.conf добавте в него две
строки:
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd
Точный синтаксис файла /etc/inetd.conf меняется от unix к unix. Для
руководства посмотрите другие строки файла inetd.conf.
ЗАМЕЧАНИЕ: некоторые unix уже имеют строку типа netbios_ns (обратите
внимание на подчеркивание _)в файле /etc/services. Вы должны отредактировать
или файл /etc/services или /etc/inetd.conf для того что бы стоки о samba
были однотипными.
ЗАМЕЧАНИЕ : многим вaшим системам может быть необходимо использовать опцию
"interfaces" в файле smb.conf для определения IP адреса и сетевой маски
вашего интерфейса. Если вы не знаете какой broadcast адрес для вашей сети,
запустите ifconfig , имея права пользователя root. nmbd пытается определить
его во время запуска , но при этом неудачно в некоторых unix системах.
Если вам необходимо это сделать , то смотрите секцию "testing nmbd" для
метода его поиска.
!!!ВНИМАНИЕ!!! Во многих системах unix доступно только 5 параметров в
командной строке в файле inetd. Это подразумевает что вы не должны
использовать пробелы между опциями и аргументами , или должны использовать
скрипт и запускать его из inetd.
Перезапустите ined , возможно просто послав ему сигнал HUP. Если вы имеете
уже ранее установленную версию nmbd , то вам так же придется убить и ее .
Шаг 5b. Альтернатива: запуск smbd и nmbd как демона.
Для запуска сервера в качестве демона вы должны создать скрипт , возможно он
будет называться "startsmb"
#!/bin/sh
/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D
Сделайте его выполняемым с помощью команды
chmod +x startsmb
После чего вы можете запускать startsmb запуская его вручную или из файла
/etc/rc.local. Для его удаления необходимо послать сигнал удаления процессам nmbd и smbd.
ЗАМЕЧАНИЕ: Если вы используете систему инициализации типа SVR4 , то тогда можете
посмотреть пример срипта для создания Samba для этой системы в examples/svr4-startup
ШАГ 7. Получение совместно используемых ресурсов на вашем сервер
c помощью команды
smbclient -L yourhostname
В ответ вы должны получить список всех доступных совместно используемых
ресурсов на вашем сервере. Если вы их не получаете , то значит какой-нибудь
из шагов установки произведен неверно. Замете , что это способ может быть
использован так же и для просмотра используемых ресурсов доступных на других
клиентах LanManager (таких как WfWg).
Если вы выбираете пользовательский уровень безопасности (user level
security), то тогда вы можете заметить , что Samba требует введения пароля
перед тем как показать список совместно используемых ресурсов. Для получения
большей информации смотрите документацию по smbclient ( вы можете получить
список используемых ресурсов и без введения пароля если добавите в командной
строку опцию -%U . Эта опция работает только с Samba серверами.)
ШАГ 8. Попробуйте присоединится к серверу с помошью unix клиента:
smbclient '\\yourhostname\aservice'
Обычно "yourhostname" будет именем хоста , на котором вы установили smbd.
А "aservice" любая служба , которую вы определили в файле конфигурации
smb.conf. Попробуйте просто свое имя пользователя если вы имеете в файле
sbm.conf секцию [homes] .
Например , если ваш unix хост имеет имя mambi и ваше имя в системе fred , то
вы должны набрать :
smbclient '\\bambi\fred'
ЗАМЕЧАНИЕ: Число слешев зависит от типа шелла , который вы используйте .
С некоторыми типами шеллов возможно вам будет нужно ввести строку
'\\\\bambi\\fred' .
ШАГ 9. Попробуйте присоединится с помощью других клиентов dos/WfWg/Win95/NT/os-2.
Попробуйте смонтировать диски:
net use d: \\servername\service
Попробуйте напечатать :
net use lpt1: \\servername\spoolservice
print filename
Радуйтесь или пошлите мне bug report!
ЧТО ЕСЛИ ОНО НЕ РАБОТАЕТ ?
Если ничего не работает и вы начинаете думать "кто писал эту кучу дряни (pile of
trash)" , то я снова предложу вам выполнить шаг 2 , до тех пор пока вы
не успокоитесь.
После чего вы должны прочитать файл DIAGNOSIS.txt.rus и FAQ. Если вы все еще не
решили проблему , то тогда попробуйте подписаться на список рассылки (mailing
list) или на соответствующую конференцию (newsgroup) (для получения большей
информации смотрите README).
Samba удачно установлена на тысячах компьютеров во всем мире ,и может быть
кто-нибудь имел сходную проблему и удачно преодолел ее.
Вы так же можете использовать WWW сайты для изучения выпусков Samba-дайджест
(samba-digest).
Когда вы решите проблему , пожалуйста пошлите мне некоторые изменения для
документации (или исходного кода), для того чтобы следующим пользователям можно
было легче решить ее.
ПРОБЛЕМЫ ДИАГНОСТИКИ.
Если вы имеете проблемы при инсталляции ,то тогда обратитесь к DIAGNOSIS.txt
пытаясь найти причину проблемы.
SCOPE IDs
=========
По умолчанию Samba использует пустой scope ID. Это подразумевает , что все
ваши windows ящики (boxes) так же должны иметь пустой scope ID. Если вы
действительно хотите использовать не пустой scope ID , то вам необходимо
для nmbd ,smbd и smbclient использовать опцию -i <scope> . Для нормальной
работы всем вашим PCs будет необходимо иметь такие же настройки. Я не
рекомендую использовать scope IDs.
----------------------------------------------------------------------
#
# Перевод Copyright(C) by Kosta Kudrin
# cola@tcsb.perm.su aka 2:5054/69@fidonet
# Данный текст является переводом файла DIAGNOSIS из
# пакета samba-1.9.16p11
#
ДИАГНОСТИКА ВАШЕГО СЕРВЕРА SAMBA.
Этот файл содержит список тестов , которые вы можете использовать при
тестировании вашего сервера Samba. Он также сообщает вам какие могут быть
встречены проблемы на каждом из этих шагов. Если все шаги пройдены успешно
то похоже все работает прекрасно. Вы должны провести все эти тесты в том
порядке , в котором они приведены.
I have tried to
carefully choose them so later tests only use capabilities verified in
the earlier tests.
Я буду рад добавлениям к этим тестам. Пожалуйста тогда пишите мне на адрес
samba-bugs@samba.anu.edu.au
Если вы посылаете мне сообщение , говоря "это не работает", и вы не
следовали процедуре тестирования , то вы не должны удивляться если я
проигнорирую ваше сообщение.
СОГЛАШЕНИЯ.
-----------
Во всех тестах я предполагаю что вы имеете сервер Samba называемый BIGSERVER
и клиентскую рабочую станцию (PC) называемую ACLIENT. Я так же предполагаю, что
рабочая станция работает под управлением "Windows для рабочих групп" с
новой копией tcp/ip стека для windows. Я так же предполагаю что вы знаете
имя доступных для всех ресурсов в вашем smb.conf файле. Я также предполагаю
, что ресурс доступный для всех называется "tmp". Вы можете добавить этот
ресурс в вашу сеть , записав в файл smb.conf следующую информацию:
[tmp]
comment = temporary files
path = /tmp
read only = yes
ЭТИ ТЕСТЫ ПРЕДПОЛАГАЮТ ЧТО ВЫ ИСПОЛЬЗУЕТЕ ВЕРСИЮ SAMBA 1.9.16 ИЛИ БОЛЕЕ
ПОЗДНЮЮ. НЕКОТОРЫЕ КОМАНДЫ НЕ СУЩЕСТВУЮТ В БОЛЕЕ РАННИХ ВЕРСИЯХ.
ТЕСТ 1:
-------
Выполните команду "testparm". Если вы получите какое-либо сообщение об ошибке,
то в вашем файле конфигурации smb.conf какаято строка записана не верно.
ТЕСТ 2:
-------
Выполните команду "ping BIGSERVER" с вашей рабочей станции и "ping ACLIENT"
с unix машины , на которую предполагается ставить samba. Если вы не
получаете правильный отклик , то ваше программное обеспечение TCP/IP не
корректно инсталлировано или настроенное.
Замете , что вам необходимо будет запустить на клиентской рабочей станции
"dos окно" в window для выполнения команды ping.
Если вы получаете сообщение "host not found" ("хост не найден") или похожее
, то ваш DNS сервер не правильно настроен , или не корректно установлен файл
/etc/hosts.
It is possible to
run samba without DNS entries for the server and client, но я предполагаю
что вы имеете корректно установленную информацию для остальных тестов.
ТЕСТ 3:
-------
Выполните на unix машине команду "smbclient -L BIGSERVER" . Вы должны
получить список доступных ресурсов.
Если вы получите сообщение об ошибке содержащее строку "Bad password" ,
то вероятно вы имеете или не корректные строки "hosts allow", "hosts deny" или
строку "valid users" в вашем файле конфигурации smb.conf, или ваше имя
пользователя не правильно. Проверьте , что ваше имя правильно используя "testparm"
и временно удалите все строки с "hosts allow", "hosts deny", "valid users"
или с "invalid users" . Если вы получите сообщение "connection refused" ,
то smbd сервер возможно не запущен. Если вы запускаете его из inetd.conf ,
то возможно что этот файл был некорректно отредактирован.
Если вы инсталлировали Samba как демона ,то проверьте что он действительно
работает. Так же с помощью команды "netstat -a" проверьте что netbios-ssn порт
находится в списке LISTEN.
Если вы получаете сообщение "session request failed" (запрос на сессию не
верен) , то сервер не принимает ваш запрос на соединение. Если сервер
сообщает вам "your server software is being unfriendly" (ваше ПО не
дружественно) ,то это вероятно потому , что вы запускаете smbd с неверными
параметрами, или имеете какие-то проблемы при инициализации samba .
С помощью программы "testparm" проверите файл конфигурации smb.conf , а так
же наличие каталогов ,в которых samba открывает lock и log файлы.
Выше приведенные сообщения об ошибках могут выдаваться и по следующим
причинам: возможно уже какой-нибудь демон занимает порт 139 (возможно
smbd запущен уже из inetd.conf), или что-либо напоминающее Digital's
Pathworks. Проверьте ваш ined.conf файл перед попыткой вновь запустить smbd
демона.
TECT 4:
-------
Выполните команду "nmblookup -B BIGSERVER __SAMBA__". Вы должны получить
назад IP адрес вашего Samba сервера.Если вы его не получаете значит nmbd
некорректно инсталлирован. Проверьте ваш ined.conf если вы запускаете nmbd из
него, или что демон запущен и имеет в списке портов порт 137.
Одной из общих проблем является то , что файл ined.conf не может содержать в
командной строке большое число параметров. Если в вашем случае это
действительно так , то просто создайте скрипт-файл ,который содержит
правильные параметры и запустите иго из ined.conf.
TECT 5:
-------
Выполните команду "nmblookup -B ACLIENT '*'"
В ответ вы должны получить IP адрес вышей PC машины. Если вы их не получаете
значит ПО клиентской части инсталлировано некорректно , или не запущено ,
или вы имеете неправильное имя PC.
TECT 6:
-------
Выполните команду "nmblookup -d 2 '*'"
В этот раз мы пытаемся сделать то же самое что и в предыдущем тесте ,
но на этот раз посылаем broadcast сообщение на все адреса.
Число Netbios/TCPIP хостов в сети должно быть получено в ответ, однако Samba
может не уловить в короткий промежуток времени все отвечающие хосты.
Если вы не получаете похожий результат как и в предыдущем тесте ,то nmblookup
не корректно получает broadcast адрес через свой автоматический механизм.
В этом случае вы должны поэксперементировать с опцией "interfaces" в файле
smb.conf , для того что бы вручную сконфигурировать ваш IP адрес, broadcast
адрес и сетевую маску (netmask). Если ваш сервер и РС машина находятся не
в одной подсети , то вам необходимо будет использовать опцию -B для
установки broadcast адреса таким же как подсеть на вашем PCs.
TEСT 7:
-------
Выполните команду "smbclient '\\BIGSERVER\TMP'". После чего в должна
получить приглашения на ввод пароля. Вы должны использовать пароль , который
используется для вашего входа в unix. Если вы хотите протестировать другой
account, то добавте в командной строке опцию -U <accountname>.После того как
вы введете пароль вы должны получить командную строку вида "smb>" . Если вы
его не получаете , то смотрите сообщение об ошибке. Если оно говорит "invalid network
name" (неправильное сетевое имя) , то служба "tmp" некорректно установлена в
вашем файле конфигурации smb.conf. Если оно говорит "bad password" (неверный
пароль) , то возможно что :
- Вы имеете shadow пароль (или некоторую другую систему паролей), но при
компиляции samba эта опция была опущена.
- ваша конфигурация "valid users" некорректна.
- вы вводили пароль как в верхнем так и в нижнем регистрах ,но при этом
имеете опцию "password level" установленную в недостаточно высокий уровень.
- параметр "path =" в файле конфигурации smb.conf задан неверно. Проверьте с
его с помощью программы testparm.
- Вы разрешили шифрование пароля , но не открыли SMB зашифрованный файл
паролей.
Присоединившись к серверу вы можете попробовать команды "dir" "get"
"put" и другие. Наберите "help <команда>" для получения большей информации .
Вы должны специально проверить что свободное дисковое пространство
показывается верно после выполнения команды "dir".
TECT 8:
-------
На вашем РС компьютере выполните команду "net view \\BIGSERVER". Эту команду
необходимо будет выполнить из дос окна window. Вы должны получить список
всех доступных ресурсов на севере.
Если вы получаете сообщение "network name not found" (сетевое имя не
найдено) или похожую ошибку , то значит netbios name resolution не работает.
В этом случае проблема кроется в nmbd.
Для того что бы преодолеть проблему вы должны сделать следующее (вам
необходимо выбрать одно):
- попробовать переустановить the nmbd.
- добавить IP адрес BIGSERVER сервера в окне "wins server" в расширенных
опциях установки tcp/ip (advanced tcp/ip setup on the PC) на вашей РС.
- разрешить windows находить имена через DNS в расширенных опциях установки
tcp/ip.
- добавить сервер BIGSERVER в ваш файл lmhosts на PC.
Если вы получаете "invalid network name" или "bad password error" то вам
необходимо провести такие же действия какие были проведены для команды
"smbclient -L" в тесте выше. В особенности проверьте что строка "hosts allow"
корректна.
TЕСT 9:
--------
Выполните команду "net use x: \\BIGSERVER\TMP". Вы должны ввести правильный
пароль , после чего вы получите сообщение "command completed successfully"
(команда выполнена удачно). Если нет ,то тогда ПО на вашем PC неверно
установлено , или ваш файл конфигурации smb.conf неверен. Проверьте что
строка "hosts allow" и другие строки в файле smb.conf введены правильно.
Так же возможно что ваш сервер не может работать с тем именем которое вы
имеете. Для решения этой проблемы добавте в строку "user = USERNAME" в секцию [tmp]
вашего вайла конфигурации smb.conf, где "USERNAME" есть имя пользователя
(username) соответствующее набранному паролю . Если вы вы решили проблему ,
то возможно вым будет необходимо использовать опцию username map.
TEСT 10:
--------
Из файл Менаджера попробуйте увидеть сервер. Ваш samba сервер должен появится
в списке ваших локальных групп (local workgroup).Вы должны дважды щелкнуть
мышкой на имени серверами получить список его доступных ресурсов. Если вы
получаете сообщение "invalid password" (неверный пароль),то вероятно вы
работаете под WinNT is refusing to browse a server that has no encrypted password
capability and is in user level security mode.
Остались проблемы?
----------------------
Тогда попробуйте подписаться на mailing list или на соответствующую ньюс-группу ,
или воспользуйтесь утилитой tcpdump-smb для решения проблем.
Так же смотрите другие документы ,входящие в пакет поставки Samba !