Спільне використання ресурсів у Windows та Linux, Комп’ютерПрес

Віктор Кулагін, Сергій Кулагін

Останнім часом популярність Linux росте буквально щодня. Linux є високопродуктивною некомерційною операційною системою, одним з різновидів Unix. Як відомо, вона була створена випускником університету Гельсінкі Лінусом Торвальдсом. Основними перевагами Linux є відкритість та мультипоточність, крім того, в ній є можливості чіткого розмежування ресурсів та рівнів доступу користувачів. На сьогоднішній день багато виробників програмного забезпечення підтримують цю операційну систему; серед них виділимо Oracle та Informix.

Ця стаття розглядає, як організувати спільне використання ресурсів операційних систем Windows і Linux за допомогою пакета програм Samba.

Що таке SAMBA?

Samba - набір програм, які призначені для організації доступу клієнтів до файлового простору сервера та принтерів за допомогою протоколів SMB (Server Message Block) та CIFS (Common Internet Filesystem). Спочатку написаний для Unix Samba тепер також працює під управлінням та інших ОС, зокрема OS/2 та VMS. Це означає, що такі засоби таких операційних систем, як файл-сервер та сервер друку, можуть бути використані для SMB- та CIFS-клієнтів. В даний час є відповідні клієнти для DOS, Windows NT, Windows 95, Linux smbfs, OS/2, Pathworks. Протокол SMB використовується Microsoft Windows NT і 95 для організації доступу до дисків та принтерів.

За допомогою SAMBA можливо:

  • надавати доступ до файлової системи під ОС Linux для Windows машин;
  • отримувати доступ до файлової системи під Windows для Linux-машин;
  • надавати доступ до принтерів під ОСLinux для Windows машин;
  • отримувати доступ до принтерів під Windows для Linux-машин.

Компоненти Samba виконують такі функції:

  • Демон smbd надає послуги доступу до файлів та принтерів для клієнтів протоколу SMB, таких як Windows 95/98, Windows for Workgroups, Windows NT або LanManager. Конфігурація цього демона задається у файлі smb.cfg.
  • Демон NMBD забезпечує підтримку сервера імен Netbios для клієнтів. Він може запускатись в інтерактивному режимі для опитування інших демонів служби імен.
  • Програма smbclient є найпростішим SMB-клієнтом для UNIX-машин. Вона використовується для доступу до ресурсів на інших SMB-сумісних серверах (таких як Windows NT), а також дозволяє UNIX-станції скористатися віддаленим принтером, підключеним до будь-якого SMB-сервера (наприклад, комп'ютера з WfWg).
  • Утиліта testparm призначена для перевірки конфігураційного файлу smb.conf.
  • Утиліта smbstatus дозволяє з'ясувати, хто зараз використовує сервер smbd.
  • Утиліта nmblookup дає можливість вимагати імена NetBios з UNIX-машин.
  • За допомогою утиліти make smbcodepages створюються файли для опису SMB кодової сторінки.
  • Утиліта smbpasswd дозволяє шифрувати паролі.

Кожен компонент детально описаний на сторінках посібника, що постачається з пакетом Samba.

Пакет Samba дуже простий в установці та налаштуванні.

Для початку вважатимемо, що ви встановили дистрибутив RedHat з підтримкою Samba.

Для роботи пакету Samba необхідний запуск двох демонів:

  • smbd (демон SMB);
  • nmbd (демон сервера імен NetBIOS).

Вони встановлюються /usr/sbin і можуть запускатися або вручну, або автоматично при завантаженні з системнихскриптів або з inetd.conf. Розглянемо обидва автоматичні запуски.

Другий спосіб. Запуск SMB-демонів із inetd. Для цього необхідно включити такі рядки до файлу /etc/inetd.conf:

Далі проводиться рестарт демона inet:

Виберіть один із способів запуску демонів та застосуйте його. Слід зазначити, що при установці пакета SAMBA за замовчуванням демони завжди включаються до «автомата». Тож скрипти можна не редагувати.

Після того, як ми розібралися із запуском демонів, необхідно налаштувати SMB-сервер. Ця операція полягає у налаштуванні головного конфігураційного файлу - /etc/smb.cnf.

Конфігураційний файл smb.cnf

Налаштування Samba на Linux (або інших UNIX-машинах) контролюється єдиним файлом - /etc/smb.cnf. Цей файл визначає, до яких системних ресурсів ви маєте намір дати доступ клієнтам і які обмеження маєте намір накласти на використання цих ресурсів.

Розглянемо цей файл. Він складається з секцій та параметрів. Секції починаються з найменування, укладеного у квадратні дужки, і продовжуються до початку наступної секції. Вони містять такі параметри:

Кожна секція конфігураційного файлу (крім секції [global]) описує ресурс доступу. Ім'я секції – це ім'я ресурсу доступу. Ресурс доступу включає шлях до директорії доступу та опису прав доступу користувачів.

Наприклад, створимо на диску директорію /common і виділимо її як мережевий ресурс для всіх клієнтів із запису та читання:

Усі записані будь-яким користувачем у цей ресурс файли матимуть права:

  • для творця - все (читання, запис, виконання);
  • для групи (до якої входить користувач) - читання;
  • для решти — читання.

Якщо ми хочемо надати прававсім користувачам на будь-який файл, необхідно додати до цієї секції рядок наступного вигляду:

Існує три спеціальні секції:

  1. Секція [global] визначає деякі змінні, які Samba використовуватиме визначення доступу до всіх ресурсів.
  2. Секція [homes] дозволяє віддаленим користувачам мати доступ до своїх (і лише своїх) домашніх каталогів на Linux-машині. Так що якщо користувачі Windows спробують підключитися до цього розділу зі своїх Windows-машин, вони будуть підключені до своїх персональних домашніх директорій. Зауважимо, що для того, щоб це зробити, вони мають бути зареєстровані на цій Linux-машині.
  3. Секція [printers] схожа на [homes], але для принтерів.

Приклад частини файлу:

Користувачі та паролі

Для доступу клієнта до SMB-сервера необхідно:

1. Додати користувача до системи.

2. Додати користувача до облікових записів SMB-сервера. Для цього треба запровадити команду:

де LinuxUser - ім'я користувача в системі

SMBUser — ім'я користувача SMB.

Далі на запит про надання пароля введіть пароль клієнта.

Доступ до дисків Linux із Windows

Організація доступу до дисків Linux дуже проста і зводиться лише до редагування файлу конфігурації smb.cnf, тобто до додавання секції (як це робиться, було розглянуто вище).

Доступ до дисків Windows з Linux

Програма клієнта SMB для UNIX-машин включена до дистрибутиву Samba. Вона забезпечує ftp-подібний інтерфейс командного рядка. Ви можете використовувати цю утиліту для перенесення файлів сервера під керуванням Windows клієнту під керуванням Linux. Щоб побачити, які ресурси доступні на даній машині, необхідно виконати команду:

де "host" - це ім'ямашини, доступні ресурси якої ви хочете побачити. Ця команда поверне список імен «сервісів», тобто імен дисків або принтерів, до яких можна отримати доступ. Доки SMB-сервер не буде налаштований для керування доступом, він буде запитувати пароль. Введіть у відповідь на запит пароль для користувача гість (guest) або ваш персональний пароль на цій машині.

Висновок цієї команди має виглядати приблизно так:

Browse list показує інші SMB-сервери мережі з доступними ресурсами.

Для використання клієнта виконайте таку команду:

де "service" - ім'я машини та сервісу. Наприклад, якщо ви намагаєтеся звернутися до директорії, яка доступна під ім'ям «public» на машині, названій «redfox», то ім'я сервісу повинно звучати як redfox. Однак внаслідок обмежень оболонки вам необхідно сховати зворотний слеш, так що в результаті цей командний рядок виглядатиме таким чином:

де "mypasswd" - символьний рядок вашого пароля.

Ви отримаєте запрошення smbclient:

Щоб отримати допомогу з використання smbclient, надрукуйте «h»:

Доступ до принтера Linux для клієнтів Windows

Для організації доступу Windows-машин до Linux-принтера необхідно переконатися, що принтер працює під Linux. Якщо ви можете друкувати під Linux, організація доступу до принтера буде дуже простою.

Додайте налаштування принтера до файлу smb.cnf:

Переконайтеся, що шлях до принтера (в цьому випадку для [ljet]) відповідає буферній директорії, вказаній у файлі /etc/printcap!

Слід зазначити, що існують деякі проблеми з доступом до принтерів на машинах UNIX для машин з Windows NT із застосуванням Samba. Одна з них полягає в тому, що NT неправильно бачить принтер мережі, іншапов'язана із проблемою пароля. Щоб вирішити ці питання, ознайомтеся з файлом docs/WinNT.txt дистрибутива Samba.

Доступ до принтера Windows для клієнтів Linux

Для доступу до принтера, інстальованого на комп'ютері з Windows, потрібно:

lp — ім'я пристрою, що відкривається для виведення

sd - директорія спула принтера (на локальній машині)

af — файл обліку використання принтера

mx – максимальний розмір файлу (нуль – без обмежень)

if - ім'я вхідного фільтра (скрипта)

Для більш детальної інформації про друк дивіться Printing HOWTO або довідкові сторінки по printcap.

Переконайтеся, що буферна директорія та директорія, що використовується для обліку користування, існують та мають право на запис. Переконайтеся, що рядок «if» містить правильний шлях до скрипту smbprint (наведено нижче) і що записи вказують на правильний вивідний пристрій (спеціальний файл /dev).

Далі йде сам скрипт smbprint. Він зазвичай знаходиться у директорії /usr/bin. Цей скрипт поставляється разом із дистрибутивом вихідного коду Samba.

У вас може з'явитися бажання глянути на нього уважніше. Існує низка дрібних змін, які зарекомендували себе корисними.

Використовуючи smbprint для друку файлів ASCII, скрипт стежить за довгими рядками. Якщо можливо, цей скрипт розриває довгий рядок на пробіл (замість розриву в середині слова).