02-06-2008 15:19
Помните насколько мало требовалось усилий по конфигурированию для того, чтобы клиентская часть Samba заработала? Так вот дружок, эти дни прошли. Теперь придется изменить куда больше конфигурационных параметров, тем не менее мы опишем каждый из них. Однако довольно ходить вокруг да около, вот он, наш подправленный smb.conf.
;; /etc/smb.conf;[global]workgroup = CURTISguest account = nobodykeep alive = 30os level = 2security = userencrypt passwords = yessocket options = TCP_NODELAYmap to guest = Bad Userinterfaces = 192.168.2.102/255.255.255.0wins support = no[cdrom]comment = Linux CD-ROMpath = /cdromread only = yespublic = yeslocking = no[music]comment = My Music Filesbrowseable = yespublic = nowriteable = nocreate mode = 755path = /MyMusic
Конечно же имеется намного больше параметров. Вы можете потратить недели на то, чтобу изучить их все, однако для того, чтобы настроить и запустить Samba-сервер все они не потребуются, поэтому они и не рассматриваются в этой части главы. Но точно могу сказать одно, -- вы действительно можете довольно тонко настроить Samba. Это полнофункциональная замена Windows NT server -- тут вряд ли кто поспорит.
Утилита smbpasswd позволяет добавлять, удалять и изменять пароль для учетных записей пользователей из локальной базы данных Samba. Этот функционал полезен только вот случае, если у вас установлен параметр security = user. Это означает, что Samba будет использовать "свою собственную" ("roll its own") аутентификацию, вместо той, которую предоставляет контроллер домена. Когда кто-либо пытается соединиться с Samba-компьютером с Windows-компьютера, то ему потребуется ввести одно из таких имен пользователей и правильный пароль.
Когда вы только-только установили Samba, то потребуется добавить некоторых пользователей в локальную базу данных. Для этого используйте следующую команду:
$ smbpasswd -a username
Отметим, что такие пользователи должны быть также и пользователями Linux-компьютера. Samba конечно же не предоставит пользователям Windows удаленный root-доступ, лишь по той причине, что так уж вышло. что они знают пароль. Вместо этого удаленные пользователи получают привилегии того пользователя Linux, который соответствует этому имени. Права доступа на Linux-системе влияют на то, что допустимо пользователям этого ресурса.
Другими опциями smbpasswd являются: -x для удаления пользователя, -d для деактивирования (disable) пользователя и -n чтобы создать пользователя без пароля. Однако, пожжжжжалуйста, не используйте -n. Это глупо.
Теперь, когда пользователи и ресурсы настроены, любой Windows-клиент в моей сети должен быть способен соединиться с ресурсом music, подключением сетевого диска к \\SAMBASERVER\MUSIC. Если они зашли в Windows-сеть под тем же самым именем пользователя и паролем как тот, что я установил с помощью smbpasswd, то они могут выполнить такую операцию сразу же. В противном случае, появится окошко аутентификации, в котором необходимо ввести имя пользователя и пароль. Я не буду здесь говорить о рабочих станциях Linux, так как мы уже знаем как соединиться с ресурсами в таком случае.
Правда же грустно добавлять в Ваш Linux-компьютер пользователей, которые уже имеют учетные записи в Windows-домене? И это еще ничего, а ведь надо еще и с изменением паролей возиться. Если у вас уже есть Windows-домен с первичным контроллером домена, то думается, проще будет предписать Samba-серверу использовать аутентификацию в Windows-домене.
Для этого просто установите в конфигурационном файле параметр security = domain, и затем используйте smbpasswd -j, чтобы сказать первичному контроллеру домена о том, что вы желаете быть добавленным в домен. Кроме того необходимо указать параметр password server = <myPDC>. Отметим, что ваш PDC может быть как Samba-компьютером, так и NT-компьютером. Вне зависимости от того, насколько хороша или плоха эта мысль, но тем не менее не указывайте Samba-серверу на себя! Вы слышали о понятии бесконечный цикл (infinite loop)? Я уверен слышали. Тем не менее, внимательно прочтите в документации относительно password server и параметров безопасности, и тогда все вопросы отпадут сами собой.
О чем думаем? Прикупить очередной MS upgrade? Вах! Есть такое дело, -- можно и купить. Кстати, Samba 2.2.0 и выше может действовать как первичный контроллер домена W2K (Primary Domain Controller for W2K), с некоторыми ограничениями функциональности. Доступ к файловым ресурсам точно такой же как и в Samba 2.0.7. Народ, более умный чем я, давно уже пересел на эту новую версию. Наверняка появилось что-то более новенькое с момента публикации этой книги, потому проверьте web-страничку Samba, почитайте свежую документацию. Некоторая дополнительная документация по использованию Samba 2.2.0, в качестве PDC может быть доступна на http://us1.samba.org/samba/docs/samba-pdc-faq.html.
SWAT это web-инструмент для администрирования Samba (Samba Web Administration Tool). Он позволит настроить и конфигурировать ваш smb.conf посредством броузера. Перед тем как я продолжу, необходимо заметить, -- я ненавижу GUI-конфигураторы. Они действительно меня раздражают. Такой подход не привносит ничего сверх того, что можно сделать с помощью командной строки, и кроме того они редко работают без глюков. Сказав это, теперь можно сказать о SAWT вот что, -- я люблю этот инструментарий. Это действительно вылизанная система, которая имеет в своем составе даже аутентификацию.
SWAT запускается через inetd и имеет всего две опции: -a и -s. Опция -s определяет корректный путь к конфигурационному файлу (SWAT предполагает, что он располагается в /usr/local/samba/lib/smb.conf, а опция -a отключает аутентификацию. Вполне возможно что вы не пожелаете использовать -a. Мда. Надо же. А вот я воспринимаю эту опцию всерьез.
Чтобы запустить SWAT потребуется добавить строку в /etc/services и еще одну в /etc/inetd.conf. Итак, добавляем в /etc/services следующее:
swat 901/tcp
Число 901 может быть любым (до 1024) портом, важно только убедиться, что этот номер еще не используется. Страницы руководства SWAT предупреждают о "черной дыре" в безопасности, которая может появиться, когда вы надумаете использовать номер порта выше чем 1024.
Теперь добавьте следующую строку в /etc/inetd.conf:
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat -s /usr/samba/smb.conf
Обратите внимание на опцию -s. Она указывает месторасположение конфигурационного файла Samba на моей Debian-системе. После того как изменены оба файла, небоходимо "сказать" демону inetd, чтобы он перечитал свою конфигурацию:
# kill -HUP `pidof inetd`
или
# /etc/rc.d/init.d/inetd reload
Теперь запускайте свой броузер и набирайте http://localhost:901/. И всех дел!
Желательно использовать SWAT только с localhost. Хоть и имеется парольная аутентификация, тем не менее пароль пересылается по сети открытым текстом и таким образом подвержен "вынюхиванию" (sniffing), точно так же как и Telnet. Одним словом, как только вы хоть разок "проколетесь" с паролем, то мигом откажетесь от удобства испльзования SWAT удаленно.
Предупредим любителей конфигурирования с помощью редактора: SWAT удаляет комментарии, дупликаты и include-параметры из вашего конфигурационного файла Samba. Если у вас уже есть настроенный файл smb.conf, то либо не используйте SWAT, либо для начала сохраните его.
Рисунок 5-4 демонстрирует начальный экран SWAT-а, при просмотре сети на месте работы Mr.Anderson-а. Рисунок 5-5 -- это экран выбора, на момент указания того, с каким ресурсом мы будем работать. Рисунок 5-6 представляет некоторые параметры, которые можно установить в окне управления ресурсом.

Рисунок 5-4. Главное окно SWAT.

Рисунок 5-5. Выбор ресурса в SWAT.

Рисунок 5-6. Работа с ресурсом в SWAT.
Я люблю SWAT. В нем реализованы прекрасные Help-ссылки для каждого из параметров. Это самый простой способ начать создавать свои собственные общедоступные ресурсы и управлять практически всем, что есть в вашем Samba-сервере.
<< Практикум | Multi Tool Linux | Выводы >>