На сегодняшний день очень часто в крупных и малых компаниях можно столкнуться с использованием разных операционных систем, которые в свою очередь нужно объединять в одну сеть для совместного использования файлов и принтеров. Сотрудники могут работать на машинах под управлением Linux, Microsoft Windows 95/98/XP и им необходим доступ к серверам для повседневной работы. Linux сервер с поддержкой Samba может быть использован для этих целей.
Samba это надежный сетевой сервис для организации совместного использования файлов и принтеров, который работает на большинстве операционных систем доступных сегодня. Когда он хорошо настроен администратором, это более быстрый и безопасный файловый сервис, чем “родная” реализация на машинах Microsoft Windows.
Что бы понять основной принцип работы сервера, в этой статье, которая, я думаю, будет интересна в основном для начинающего системного администратора, разговор пойдет о несложной организации взаимодействия в локальной сети двух ПК работающих под операционной системой Linux и Windows XP. И так приступим.
Установка
Для начала нам необходимо установить на предполагаемый сервер операционную систему, я использовал Linux Mandriva 2008.1, а затем установить и настроить сервер samba. Существует несколько способов установки:
- при инсталляции OS;
- при подключении внешних репозиториев;
- установка из rpm пакетов (как правило проблем не вызывает);
- сборка пакетов и инсталяция из исходных текстов (этот способ больше подходит для опытного пользователя, хотя и они не рекомендуют его т.к обычно после такой установки остается слишком много лишнего мусора).
Думаю нет смысла описывать каждый из выше указанных способов установки, т.к в интернете на эту тему можно найти массу информации, хотя я лично в качестве эксперимента пробовал первые три, проблем не возникло.
Так же для более удобной работы по конфигурированию сервера можно установить webmin, который предоставляет прекрасную возможность настройки сервера через веб-браузер, этот способ будет удобен для тех кого слегка пугает работа в консоли и с конфигурационными файлами, но эта тема для отдельного разговора. Хотя по настоящему грамотно и гибко настроить работу сервера возможно только изнутри, так сказать изрядно попотев над параметрами конфигурационных файлов, поняв принципы работы системы и сервера.
После успешной установки пакетов сервера samba, его конфигурационный файл smb.conf будет по умолчанию располагаться здесь: /etc/samba/smb.conf, так же в этом разделе будет находиться файлы: smbpassword – где будут храниться пароли пользователей которым будет разрешен доступ к ресурсам samba и smbuser – в котором будут находиться имена пользователей.
Настройка
1. Первое с чего необходимо начать работу так это с того, что настроить ЛВС (прописать ip-адреса, создать рабочую группу и дать имена компьютерам), проверить связь пропинговав ip-адреса и осуществить просмотр наличия компьютеров в сети т.е видят ли они друг друга или нет.
Внимание! ПК работающий под Linux в отличии от Windows без всяких проблем может сразу зайти на открытые ресурсы компьютера с операционной системой Windows.
2. Проверяем наличие конфигурационного файла smb.conf: /etc/samba/smb.conf
3. Создаем группу и пользователей, открываем ресурс для общего доступа (это можно сделать используя графическую оболочку Linux Mandriva, через drakconf – Network Sharig – Конфигурирование Samba).
Для любителей работать в консоли приведем несколько команд которые помогут быстрее справиться с этой задачей:
1 2 3 4 5 6 7 8 9 | # group add smbusers // создаем группу # user add sasha -s /dev/null -d /home/samba/users/sasha -g smbusers // создаем пользователя sasha и добавляем его в группу smbusers # passwd -l sasha // задаем пороль пользователю sasha # smbpaswd -a -n sasha # mkdir /home/sasha/profiles/sasha && chown sasha /home/samba/profiles/sasha |
Данная команда заносит пользователя в базу smb и обнуляет его пароль. Проверяем всё ли работает. Выполняем команду:
1 | # smbclient //SERVER/home -U sasha |
После ввода пароля должно перекинуть в домашний каталог пользователя. Далее заносим пользователя root в базу smb (с паролем), который будет главным администратором домена, в прочем алиасы на админа легко можно создать в /etc/samba/smb.
Далее создаем общий ресурс, как я уже говорил выше, это можно сделать через менеджер настройки drakconf. Заходим drakconf – Network Sharing – Конфигурирование Samba, встаём на закладку «Общий доступ к файлам», жмём кнопку «Добавить», где необходимо будет указать имя ресурса, комментарий и каталог, после чего устанавливаем права доступа для данного ресурса (общедоступный, запись и просмотр), если планируете расшарить ресурс полностью, то можно без заморочек просто дать следующую команду в консоли:
1 | # chmod 777 /home/riko/document -R // document – ресурс который мы открыли |
4. Теперь приступаем к непосредственной настройки сервера samba, а для этого идём сюда: /etc/samba/smb.conf открываем конфигурационный файл через mc или в krusader для пользователя root. Перед тем как приступить к непосредственному конфигурированию скажу что сам файл smb.conf состоит из специальных разделов:
1 2 3 4 5 | [global] – параметры этого раздела применяются к серверу целиком или умолчаниями для разделов если они специально не определены. [home] – если данный раздел включен в конфигурационный файл, сервисы подключающие клиентов к их домашним директориям могут быть созданы сервером налету. Принцип работы с данной секцией следующий: когда запрос на соединение сделан, сканируется существующая секция, если соответствие обнаружено, оно используется, а если нет, то название секции трактуется как имя пользователя и происходит обращение к локальному файлу паролей, если имя существует и пароль корректен, общий ресурс создаётся клонируя [home] секцию. [printers] – этот раздел работает как «home», но для принтеров, т.е если [prenters] раздел есть в конфигурационном файле, то пользователи имеют возможность подключаться к любому принтеру из local host printcap файла. |
Внимание! В разделе [global] необходимо указать путь к файлу printcap.
5. Описание параметров файла smb.conf
Внимание! Раздел файла [printers] не рассматривается:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | #================== Global Settings ===================================== [global] log file = /var/log/samba/samba.log.%m // путь к лог файлу smb passwd file = /etc/samba/smbpasswd // путь к файлу с паролем users map to guest = bad user // encrypt passwords = yes // выставляем yes, т.к все клиенты криптуют пароли перед отпр-ой hosts allow = 192.168.0 // указываем адреса которым разрешено использовать ресурсы // домена или диапазон лвс dns proxy = no os level = 33 netbios name = srvsmb1 // имя компьютера. Будет видно из сетевого окружения guest account = nobody // присваивание группы для гостей server string = Server // описание сервера. Будет отображено в комментарии local master = no workgroup = FBI // задаем название домена или рабочей группы security = user // авторизация пользователя, так же может иметь другие значения // (domain, share) max log size = 500 // задаем размер лог файла socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 // параметр для // работы с windows клиентами domain logons = no client code page = 866 // кодировка для windows character set = KOI8-R // кодировка для UNIX систем [doc] // имя созданного нами каталога которое будет просматриваться в сети path = /home/riko/document // путь к расшаренному каталогу с документами comment = Obmen docum // комментарий к каталогу public = yes // производить печать writable = yes // полный доступ create mode = 0777 // создаваемые файлы пользователем с правами 0777 (владелец и // и группа от username) force create mode = 0777 // изменяемые файлы directory mode = 0777 // создаваемые каталоги force directory mode = 0777 // изменяемые каталоги [homes] // домашний каталог пользователя path = /home/riko // путь к домашнему каталогу пользователя riko comment = Home Directories // комментарий browseable = yes // разрешаем отображать этот ресурс в окружении public = yes writable = yes |
Внимание! Для удаленного управления сервером samba рекомендуется настроить
сервер ssh.
Запуск сервера
После окончания всех работ по настройке сервера его необходимо запустить, ниже показаны несколько команд, которые позволят выполнить запуск, остановку и перезагрузку сервера:
1 2 3 4 5 | # /etc/rc.d/init.d/smb start - запуск сервера # /etc/rc.d/init.d/smb stop - его остановка # /etc/rc.d/init.d/smb restart – и перезагрузка |
Внимание! Чтобы не набирать путь к бинарному файлу сервер samba можно запускать командой: service smb start (stop, restart).
Собственно на этом пока все.