Заміна файл-сервера Windows NT
Ця нотатка продовжує розповідати про налаштування пакета Samba, який призначений для поділу ресурсів у гетерогенних (різнорідних) Unix/Windows мережах. Тут розповідається про те, як налаштувати сервер Samba під Linux, щоб отримати таку саму, як і при використанні Windows-сервера, функціональність. Samba не тільки розкриває потужність та гнучкість ОС Linux, але вона також дає певні вигоди:
- немає необхідності виплачувати ліцензійні відрахування за використання Windows на своїх серверах;
- навіть на менш потужному, ніж вимагає Windows-сервер, устаткуванні (процесор, пам'ять) може бути досягнута така ж чи найкраща продуктивність.
В результаті, у багатьох випадках Linux/Samba-сервер забезпечує таку ж, як і Windows-сервер, функціональність, при цьому не вимагаючи додаткового налаштування клієнтських машин. Далі будемо вважати, що пакет Samba вже встановлений на машині і що читач знайомий з основними концепціями ОС Linux та Windows.
Приклад із життя
Нехай наш Linux-сервер із встановленим на ньому пакетом Samba виступає в ролі основного контролера домену(PDC), де кожен зареєстрований користувач має доступ до двох директорій, що розділяються (shared directories): для загального і для персонального (приватного) доступу. Така конфігурація досить поширеною.
Задамо такі назви:
NetBIOS-ім'я Linux/Samba-сервера:SMBServerНазва домену Windows або робочої групи:THEDOMAINПерсональний розділ для кожного користувача: H: (Windows) =>/home/(Linux-сервер) Загальний розділ: P: (Windows) =>/home/public(Linux-сервер)
На малюнку 1 показана схема невеликої мережі, в якій клієнтські Windows-машини використовують ресурси Windows NT/2000 сервера, що розділяються. Він може бути замінений Linux-сервером із запущеним на ньому демоном Samba.

Конфігурація
Конфігурація включає наступні кроки:
1) Створення на Linux-сервері нового користувача. Для цього використовуються командиadduser,useraddабоuserconf; також можна використовувати відповідну графічну утиліту (Webmin, Linuxconf, Yast тощо).
Якщо ви хочете, щоб користувач мав доступ лише до служб Samba і не міг зайти на сервер в оболонку shell, у файлі /etc/passwd в якості домашньої директорії вкажіть/dev/null, а як оболонку -/bin/false.
2) Сконвертуйте файл/etc/passwdу файлsmbpasswd:
cat /etc/passwd mksmbpasswd.sh > /etc/samba/smbpasswd
Для створення користувачів та паролів можна застосовувати інші команди:
smbadduser smbpasswd,які працюють подібно до команд adduser і passwd.
3) Відредагуйте конфігураційний файл Samba (smb.conf) відповідно до своїх потреб:
netbios name = SMBServer workgroup = THEDOMAIN server string = Linux/Samba-сервер log file = /var/log/samba/%m.log max log file = 0 security = user encrypt password = yes smb password file = /etc/samba/smbpasswd ssl CA certificate = /usr/share/ssl/. (cancel comment) socket options = (cancel comment) local master = yes preferred master = yes domain master = yes domain logons = yes logon script = logon. bat wins support = yes
Примітка:Щоб встановити для кожного користувача окремий сценарій входу (logon script), встановіть logon script = %U.bat (або %u.bat). Також можна використовувати специфікатор %g (або %G) для виконання сценарію групи, до якої належить користувач (див. такожman smb.conf).
[netlogon] comment = Сценарії входу path = /home/netlogon read only = yes guest ok = yes browseable = no
[home] comment = Директорія користувача path = /home/%U browseable = yes writable = yes
[public] comment = Загальна директорія path = /home/public browseable = yes writable = yes guest ok = yes create mask = 0777 force create mask = 0777
Збережіть отриманий файлsmb.conf.
5) За допомогою командиtestparmперевірте синтаксис конфігураційного файлу smb.conf. За наявності помилок будуть видані відповідні повідомлення.
6) Створіть директорії/home/netlogon(з правами доступу 0754) та/home/public(з правами доступу 0777).
net time \\SMBServer /y(або /yes)net use H: \\SMBServer\home -y(або / yes)net use P: \\SMBServer\public -y
8) У файл/etc/samba/lmhosts(або /etc/lmhosts)додайте запис про ваш Samba-сервер (SMBServer). Наприклад:
9) Запустіть/перезапустіть демон Samba (smbd):
service smb restart
Якщо з першого разу система не запрацювала нормально, спробуйте виконати таке:ps -auxgx grep smb kill -9 smbd10) Для перевірки працездатності Samba- сервера використовуйте smbclient:
smbclient -L //SMBServer
Якщо буде видано запрошення "Password:", натисніть "Enter", у відповідь сервер покаже список своїх ресурсів, що розділяються.
11) З машини, що працює під Windows 95/98/NT, спробуйте увійти в створений щойно домен THEDOMAIN. Для входу використовуйте ім'я користувача та пароль, створені на кроці 1 та 2.
Не забудьте налаштувати властивості клієнта для мереж Microsoft. Для цього в Windows 95/98/ME виконайте:
Start (Пуск) => Setup (Налаштування) => Control Panel (Панель керування) => Network (Мережа) =>Network Client for Microsoft Networks (Клієнт для мереж Microsoft) => Properties (Властивості).
У Властивості встановіть прапорець "Start session in Windows NT/2000 domain" ("Входити в домен Windows NT") та введіть ім'я домену (або робочої групи): THEDOMAIN.
Так само налаштовується і Windows NT/2000 (Workstation/Professional).
Приклад конфігураційного файлу
Наявний конфігураційний файл Samba наведено нижче. Ця конфігурація перевірялася на кількох дистрибутивах Linux. Ви можете використовувати цей приклад як базовий для створення та налаштування власної конфігурації.
Для тих, хто хоче мати дружній інтерфейс для швидкого настроювання Samba, можна порадити використовувати такі інструменти, як Webmin та/або SWAT.
# Сценарій входу для робочоїстанції:; logon script = %m.bat
Персональна директорія для кожного користувача. # Диск P:[homes] comment = Домашні директорії browseable = no writable = yes readonly = no force create mode = 0700 create mode = 0700 force directory mode = 0700 directory mode = 700#---------------- -------------------------------------------------- ------------------------------------------# # Директорія для тимчасових файлів. # Диск T:[tmp] comment = Тимчасові файли path = /tmp readonly = no public = yes writable = yes force create mode = 0777 create mode = 0777 force directory mode = 0777 directory mode = 0777
#------------------------------------------------- -------------------------------------------------- ---------# # Ресурс групи ("/home/grp.ім'я_групи"), до якої належить користувач (%u). # /home/%u/group є посиланням на "/home/grp.ім'я_групи". # "grp.ім'я_групи" має права доступу 770. # Диск G:[group] comment = Директорія групи path = /home/%u /group writable = yes readonly = no force create mode = 0770 create mode = 0770 force directory mode = 0770 directory mode = 0770
#------------------------------------------------- -------------------------------------------------- ---------# # Цей ресурс призначений для зберігання додатків, дистрибутивів, # корпоративного програмного забезпечення (corporative software) і т. д. # Права доступу для /net та /net /install – 755, тобто власник ресурсу – root. # Диск N:[net] comment = Ресурс Net path = /net writable = yes readonly = no force create mode = 0750 create mode = 0750 force directory mode =0750 directory mode = 0750#-------------------------------- -------------------------------------------------- --------------------------#[netlogon] comment = Logon Services in the Network path = /etc/samba/netlogon guest ok = yes writable = no locking = no public = no browseable = yes share modes = no
Висновок
І пакет Samba, і багато інших інструментів Linux перебувають у безперервному розвитку, тому цілком можливо, що деякі деталі, наявні в цій статті, можуть втратити свою актуальність. У ході розвитку Samba деякі параметри конфігураційного файлу трохи змінювалися, щоб досягти стрункості системи.
Посилання: бібліографія та програми
- Samba, офіційний сайт http://www.samba.org.
- Webmin, офіційний сайт http://www.webmin.com. Webmin – інструмент для віддаленого адміністрування UNIX-систем.
- Проект GNU та Фонд Вільного Програмного Забезпечення: http://www.gnu.org.
- Цікавий сайт присвячений пакетам RPM: http://www.rpmfind.net.
- Домашня сторінка LinNeighborhood: http://www.bnro.de/
schmidjo. LinNeighborhood - цікавий інструмент під Linux для роботи з мережевими ресурсами, що розділяються через SMB.
Samba - програмний продукт, що розповсюджується під ліцензією GPL. Linux - зареєстрована марка Лінуса Торвальдса (Linus Torvalds). Solaris - операційна система та зареєстрована марка Sun Microsystems. MS Windows - операційна система та зареєстрована марка Microsoft. Використання Samba дає велику економію на ліцензійних відрахуваннях для Microsoft.