Samba – перші кроки. Швидке та просте налаштування samba Підтримка мережевого оточення samba

Samba - це програмне забезпечення для організації обміну файлами та роботи із загальними ресурсами між комп'ютерами під керуванням Linux/Unix та операційною системою Windows. Samba складається з клієнтської та серверної частини. Клієнтська частина дозволяє отримати доступ до мережевим папкамта ресурсів Windows, а серверна, у свою чергу, відкриває спільний доступ до папки Ubuntu для інших машин, у тому числі Windows.

У цій невеликій інструкції буде розглянуто найпростіше настроювання Samba Ubuntu 18.04, а також як налаштувати спільний доступ до папки Ubuntu з кількома рівнями привілеїв.

Ми створимо три спільні папки з різними рівнями дозволів. Папку з анонімним доступом, доступом для користувачів, що входять до певної групи і доступом лише для певного користувача.

Отримати доступ до розшарованих папок в Ubuntu зможуть як Linux так і Widnows машини, за допомогою будь-якої програми для протоколу SMB.

Щоб все працювало правильно, всі машини повинні перебувати в одній робочій групі, вказаній на сервері Samba. За промовчанням для Windows, Linux та MacOS робоча група називається Workgroup. Щоб дізнатися, яка робоча група використовується у вашій Windows, відкрийте командний рядок (Win+R, потім cmd) і виконайте ось таку команду:

net config workstation

Потрібний нам параметр ми бачимо у рядку Домен робочої станції. Це і є робоча група.

Тепер, якщо комп'ютер із Samba сервером у вашій мережі буде постійна IP адреса бажано ввести його у файлі hosts. Для цього запустіть командний рядок від імені адміністратора:

І виконайте команду:

notepad C:\Windows\System32\drivers\etc\hosts

У файлі додайте рядок з IP адресою комп'ютера, на який буде встановлений Samba:

192.168.0.1 srvr1.domain.com srvr1

Тепер можна переходити до питання, як розшарити папку Ubuntu.

Налаштування Samba в Ubuntu 16.04

Почнемо, як завжди, з установки. Установка Samba Ubuntu разом із усіма необхідними компонентами виконується командою:

sudo apt-get install -y samba samba-common python-glade2 system-config-samba

Коли все буде встановлено, можна перейти до налаштування. Спершу створіть резервну копію оригінального файлу конфігурації Samba:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Після створення резервної копії, створіть файл конфігурації, цією командою:

sudo vi /etc/samba/smb.conf

Спочатку вкажемо глобальні налаштування файлового сервера. Для цього вставте у файл такі рядки:


workgroup = WORKGROUP

netbios name = Ubuntu Share
dns proxy = no

max log size = 1000
passdb backend = tdbsam
unix password sync = yes

pam password change = yes
map to guest = bad user
usershare allow guests = yes

Розглянемо докладніше, що означають ці рядки.

  • workgroup- робоча група, як уже говорилося, повинна однакова на всіх машинах
  • netbios name- ім'я комп'ютера, яке відображатиметься у Windows;
  • log file- адреса файлу, куди будуть складатись повідомлення про помилки та інша інформація;
  • security- за замовчуванням виконувати аутентифікацію на рівні користувача;
  • name resolve order- черговість дозволу IP адрес по NetBIOS імені. bcast - означає надіслати в локальну мережу широкомовний запит. Якщо всі комп'ютери між якими планується взаємодія, знаходяться в одній мережі цей варіант оптимальний;
  • passdb backend- Спосіб зберігання паролів користувачів;
  • unix password sync- синхронізація паролів користувачів samba із локальними паролями Unix;
  • map to guest- вказує, коли користувачеві надаватиметься гостьовий доступ. Доступно три значення - never- Ніколи, bad user- коли такого користувача не існує, bad password- коли пароль введено неправильно,

Коли завершите створення конфігураційного файлу, переходимо до питання, як розшарити папку Ubuntu для Windows.

Загальний доступ до папки Ubuntu

Спочатку давайте створимо спільну папку, доступну всім. Тобто з анонімним доступом без авторизації samba.

Створіть папку, до якої відкриватимемо доступ, наприклад:

sudo mkdir -p /samba/allaccess

Після того, як папка створена, потрібно зробити правильні права доступу. Наступні команди дозволяють доступ до папки для всіх і роблять власником nobody:

cd /samba
sudo chmod -R 0755 allaccess
sudo chown -R nobody:nogroup allaccess/

Наступним кроком буде описати папку allaccess у файлі налаштування samba:


path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Тепер ваш конфігураційний файл має виглядати так:


workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
#==============
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Розглянемо докладніше опції, що були тут використані:

  • path- шлях до папки, яку слід розшарити;
  • browsable- чи буде папка відображатися у списку доступних куль;
  • writable- чи буде папка доступна для запису;
  • read only- папка доступна лише читання;
  • guest ok, public- чи буде дозволено гостьовий доступ;
  • only guest- якщо встановлено, то папка буде доступна тільки гостям;
  • hosts allow- ip адреси, з яких можна отримати доступ до цього сервера;
  • valid users- за замовчуванням можуть авторизуватися всі користувачі, якщо в цьому параметрі передати список користувачів, авторизуватися зможуть тільки вони;
  • create mask- маска прав для створюваних файлів.

Щоб застосувати зміни, перезапустіть сервер Samba:

sudo systemctl restart samba

Налаштування Samba Ubuntu 16.04 для анонімного доступу завершено. Тепер ви можете перевірити доступність спільної папки allaccess з Windows, натисніть Win+R і виконайте:

\\srvr1\allaccess

Ви побачите нашу папку. Якщо не побачите, перевірте конфігурацію ще раз. Доступ до папки можна отримати без авторизації samba. Настойка Samba куль з доступом без авторизації завершена.

Також ви можете підключитись до цього сервера з Linux за допомогою Nautilus для цього достатньо набрати адресу smb://ip-сервера, в розділі інші місця:

Захищений доступ до папки Ubuntu

Щоб розшарити папку для Windows Ubuntu, до якої матимуть доступ лише користувачі з певної групи, створимо окрему папку та опишемо її у файлі налаштування Samba в Ubuntu.

Спочатку створюємо папку:

sudo mkdir -p /samba/allaccess/secured

Створюємо групу:

sudo addgroup securedgroup

Налаштовуємо права:

cd /samba/allaccess
$ sudo chown -R richard:securedgroup secured
$ sudo chmod -R 0770 secured/

Останній крок додаємо налаштування в конфігураційний файл samba:

sudo vi /etc/samba/smb.conf


path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes

Перезапустіть сервер Samba. Тепер доступ до спільної папки в Ubuntu можуть отримати лише користувачі securegroup.

Щоб перевірити як це працює додамо користувача richard до нашої групи:

sudo usermod -a -G securedgroup richard

Samba- програма, яка дозволяє звертатися до мережних дисків на різних операційних системах протоколу SMB/CIFS. Має клієнтську та серверну частини. Є вільним програмним забезпеченням, випущена за ліцензією GPL .

Sambaпрацює на більшості Unix-подібних систем, таких як GNU/Linux, POSIX-сумісних Solaris та Mac OS X Server, на різних варіантах BSD, в OS/2, Windows. Sambaвключена практично у всі дистрибутиви GNU/Linux, у тому числі, звичайно, і в Ubuntu.

Встановлення

Щоб зробити спільну папку в Ubuntu Desktop, достатньо клацнути правою кнопкоюмиші на папці та вибрати пункт меню "Опублікувати папку". Жодних конфігураційних файлів при цьому правити не треба. Все описане нижче відноситься лише до ручне налаштування, наприклад, у разі створення файлового сервера.

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

Sudo apt-get install samba

Програма буде автоматично завантажена та встановлена.

Налаштування

За допомогою терміналу зробимо резервну копію початкового файлу конфігурації:

Sudo cp /etc/samba/smb.conf(,.bak)

Тепер можна відредагувати файл налаштувань /etc/samba/smb.conf, для цього відкрийте його в будь-якому текстовому редакторі із правами суперкористувача. Наприклад, так:

Sudo nano /etc/samba/smb.conf

Написане далі взагалі кажучи лише один конкретний сценарій використання Samba, і у величезній кількості випадків все налаштовується абсолютно не так. Статтю необхідно виправити, наголосивши на можливостях Samba, а не тільки на застосуванні цієї програми як файлосховища з локальною авторизацією. Приклад з файлосховищем краще винести в окрему докладну статтю.

Приклад налаштування Samba як автономний файловий сервер з авторизацією:

; Глобальні налаштування сервера; General server settings; Ім'я комп'ютера, яке відображатиметься у мережному оточенні netbios name = main-server server string = ; Робоча група клієнтів workgroup = WORKGROUP announce version = 5.0 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = tdbsam security = user Файл для альясів імен користувачів username map = /etc/samba/smbusers name resolve order = hosts wins bcast ; wins support встановлюється в yes, якщо ваш nmbd(8) Самба є WINS сервером. Не встановлюйте цей параметр у yes якщо у вас немає кількох підмереж і ви не хочете, щоб ваш nmbd працював як WINS сервер. Ніколи не встановлюйте цей параметр у більш ніж на одній машині в межах однієї підмережі. wins support = no; Підтримка принтерів printing = CUPS printcap name = CUPS; Логи log file = /var/log/samba/log.%m syslog = 0 syslog only = no; Налаштування прив'язки до інтерфейсів, на яких слухати, якщо не вказано слухає на всі інтерфейси; interfaces = lo, eth0; bind interfaces only=true; ; ; path = /var/lib/samba/printers; browseable = yes; guest ok = yes; read only = yes; write list = root; create mask = 0664; directory mask = 0775; ; ; path = / tmp; printable = yes; guest ok = yes; browseable = no; ; ;path = /media/cdrom ;browseable = yes ;read only = yes ;guest ok = yes ; Куля жорсткого диска; Ім'я кулі, видно у клієнтів; Шлях до диска path = /media/sda1 ; Чи можна переглядати browseable=yes read only=no guest ok=no create mask=0644 directory mask=0755; Прив'язка до певного імені користувача або групи, імена через пробіл; force user=user1 user2; force group = group1 group2; Ще один жорсткий диск, за аналогією до того що вище path = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755

Тепер слід розібратися з користувачами.

Samba використовує користувачів які вже є в системі, візьмемо для прикладу ім'я user, припустимо, що він вже є в системі, треба внести його в базу даних SMB і призначити пароль для доступу до загальних ресурсів, зробимо це командою:

Smbpasswd -a user

Вам буде запропоновано ввести пароль, користувач буде доданий до бази, тепер необхідно включити цього користувача.

Smbpasswd -e user

Далі створимо псевдонім для імені користувача user щоб полегшити собі доступ з Windows машини на якій у нас наприклад користувач з ім'ям Admin, для цього створимо і відредагуємо файл /etc/samba/smbusers:

Sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers

Впишіть у файл пару рядків

# Unix_name = SMB_name1 SMB_name2 user = Admin

На цьому налаштування завершено, перезапустіть Samba.

Установити найпростіший GUI для Samba можна командою:

Sudo apt-get install system-config-samba

Запускається він командою:

Sudo system-config-samba

Усі зміни він записує у конфігураційний файл samba.

Для віддаленого адміністрування Samba як web-інтерфейс для Samba відмінно підійде

Samba – це програма, яка дозволяє комп'ютерам UNIX/Linux імітувати машини Windows. За допомогою Samba комп'ютери можуть обмінюватися файлами або керувати завданнями друку як файл-сервери або сервери друку під Windows. Подібно до операційної системи UNIX/Linux, на якій вона працює, Samba являє собою розроблене безліччю програмістів ПЗ з відкритим вихідним кодом.

Протокол SMB використовується Microsoft Windows 2000, NT та 95/98 для організації доступу до дисків та принтерів. Використовуючи набір утиліт Samba від Andrew Tridgell ( [email protected]), UNIX-машини (включаючи Linux) можуть організовувати доступ до дисків та принтерів для Windows-машин. Утиліти smbfs написані Paal-Kr. Engstad ( [email protected]) та Volker Lendecke ( [email protected]), дозволяють машинам з UNIX монтувати SMB-ресурси, доступні на машинах з Windows або Samba.

За допомогою Samba можна реалізувати такі найпоширеніші:

  1. Надавати доступ до дисків Linux Windows-машин.
  2. Отримувати доступ до дисків Windowsдля машин під Linux
  3. Надавати доступ до принтерів Linux для Windows-машин.
  4. Отримувати доступ до принтерів Windows із Linux-систем.

Інсталяція та тестування Samba

Інсталяцію, як відомо, слід розпочинати з детального вивчення документації. Щоправда, більшість системних адміністраторів нехтують цим правилом, керуючись іншим: «Якщо вже нічого не допомагає, почитайте документацію». Загалом радимо почати інсталяцію Samba з простої команди: $ man samba (рис. 1).

А також читання документації, доступної на сайті http://www.samba.org/. Слід зазначити, що для використання Samba ваша машина повинна бути в одиночному Ethernet-сегменті локальної мережі, використовуючи протокол TCP/IP. Samba не працюватиме при використанні інших мережних протоколів. Це, в принципі, легко, оскільки Linux та Windows 95/98/NT постачаються з підтримкою TCP/IP. Однак, якщо ви використовуєте машини з Windows 3.x, вам необхідно додати підтримку TCP/IP.

Де взяти

Щоб отримати вихідні тексти останньої версії Samba, зв'яжіться з сайтом http://www.samba.org/ та оберіть найближчий до вас сервер-дзеркало: ftp://ftp.samba.org/. Пакет Samba входить до складу дистрибутивів низки UNIX/Linux-систем, наприклад, Rad Hat або Suse Linux. Уважно вивчіть документацію вашого Linux, і цілком можливо, що вам буде достатньо тільки вставити CD і інсталювати пакети Samba. У цьому випадку ви можете продовжувати читати статтю з наступного розділу.

Після отримання даного пакета витягаємо все те, що знаходиться під грифом *.tar.gz, наприклад, в директорію /tmp (причому для цього не обов'язково бути root"ом:), тобто:

$tar-zxvf samba-latest.tar.gz

Якщо у вас не виникло жодних проблем при видаленні цього пакета, ви виявите нову директорію, наприклад samba-latest, і в ній вилучені файли. Перейдіть в неї, загляньте в файли "README" і "Manifest" - інструкція з інсталяції знаходиться в останньому файлі і виглядає приблизно так:

$ ./configure $ make $ su # make install

Тепер потрібно звернути увагу на те, де ваші файли конфігурації. Більшість дистрибутивів Samba за умовчанням поміщає їх у директорію / etc, а себе – в директорію /usr/local/samba.

Конфігурація Samba

Основна інформація про конфігурацію Samba міститься у файлі smb.conf. З цим файлом слід звертатися обережно. Якщо ви плануєте якось змінити працюючу версію, обов'язково зробіть копію.

Щоб перший раз запустити сервер, необхідно мати робочу версію файлу smb.conf. Перейдіть до директорії, в якій повинен перебувати ваш конфігураційний файл. Найімовірніше це буде /etc або /usr/local/samba/lib. Зробіть копію даного файлунаприклад smb.old, - це можливо за наявності прав root. Тепер, коли у вас є чистий файл, можна ввести найпростішу конфігурацію, тобто набрати наступні рядки:

#Basic Samba configuration file (smb.conf) workgroup = PTO netbios name = GALKA

Нижче ми розберемося, що означають ці рядки у файлі конфігурації, але спочатку тимчасово відвернемося від нього і перейдемо до демонів SMB.

Запуск демонів

Є два демони SMB: /usr/sbin/smbd та /usr/sbin/nmbd. Ви можете запустити демони Samba з inetd або як автономний процес. Samba буде відповідати трохи швидше, якщо вона запущена як автономний процес.

Іноді буває необхідно перевірити наявність у файлі /etc/services приблизно таких рядків:

netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp

Переконайтеся, що вони не закоментовані. Залежно від вашого дистрибутива вам, ймовірно, навіть доведеться додати їх до цього файлу. Samba не зможе прив'язатися до відповідних портів, доки цих рядків не буде у файлі /etc/services.

Для запуску демонів із inetd помістіть наступні рядки у конфігураційний файл inetd, /etc/inetd.conf:

# SAMBA NetBIOS services (для PC файлів і print sharing) netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Потім перезапустіть демон inetd, виконавши команду:

Kill -HUP 1 `cat/var/run/inetd.pid`

Для запуску демонів із системних стартових скриптів помістіть наступний скрипт у файл /etc/rc.d/init.d/smb (для дистрибутива RedHat) або /etc/rc.d (для дистрибутива Suse Linux) та створіть на нього символічні посилання з іменами виду /etc/rc.d/rcX.d/S91smb (запускає сервіси SMB у розрахованому на багато користувачів режимі), /etc/rc.d/rcX.d/K91smb (вбиває сервіси SMB при вимкненні), /etc/rc.d/rc6 .d/K91smb (вбиває сервіси SMB під час перезавантаження), де X - номер завантажувального рівня системи, зазвичай це цифра 2 чи 3.

#! /bin/sh. /etc/rc.config # Визначте основу і натисніть на runlevel link name. base=$(0##*/) link=$(base#*) # Force execution if not called by a runlevel directory. test $link = $base && START_SMB=yes test "$START_SMB" = "yes" || exit 0 # echo return value for success (визначено в /etc/rc.config). return=$rc_done case "$1" in start) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D || return=$rc_failed startproc /usr/sbin/smbd -D || return=$rc_failed echo -e "$return";; startd) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D -d 10 || return=$rc_failed startproc /usr/sbin/smbd -D -d 10 || return=$rc_failed echo -e "$return";; stop) echo -n "Shutting down SMB services:" killproc -TERM /usr/sbin/nmbd || return=$rc_failed killproc -TERM /usr/sbin/smbd || return=$rc_failed echo -e "$return";; restart|reload) $0 stop && $0 start || return=$rc_failed;; status) echo -n Checking for service smb: "checkproc /usr/sbin/nmbd && echo -n "OK" || echo -n "No process" checkproc /usr/sbin/smbd && echo "OK" || echo "No process";; *) echo "Usage: $0 (start|stop|restart|reload|status)" exit 1 esac # Замовник не може бути тільки простим і натиснутим на exit status. test "$return" = "$rc_done" || exit 1 exit 0

Якщо при старті Samba ви отримуєте повідомлення, в якому говориться, що демон не може підключитися до порту 139, то швидше за все у вас є запущені процеси Samba, які не були завершені. Перегляньте список процесів (використовуючи команду "ps ax | grep mbd") для того, щоб визначити, чи є ще запущені сервіси Samba. Якщо ж демони відмовляються запускатися з будь-яких інших причин, то найімовірніше цей скрипт не підходить до вашого UNIX/Linux і вам доведеться ще раз покопатися в документації, щось у ньому виправити, а можливо, і переписати.

Основне налаштування smb.conf

Очевидно, що в описаній вище конфігурації Samba може функціонувати, але практично нічого не може робити. Нижче будуть розглянуті корисніші та складніші приклади. Але спочатку треба розібратися у директивах smb.conf.

Кожен розділ файлу починається із заголовка розділу, такого як , , і т.п.

Тепер переходьте в першу закладку "Конфігурація" (Configuration) і натисніть на кнопці "Доступ до файлів та принтерів" (File and print sharing). У вікні, що з'явиться, необхідно поставити прапорці в полі «Файли цього комп'ютера можна зробити загальними» (I want to be able to give access to my files) і «Принтери цього комп'ютера можна зробити загальними» (I want to be able to allow others to print to my printer(s)).

І нарешті, ми вказуємо Windows, що Samba є сервером WINS і саме він буде browse master"ом. Для цього переходимо у властивості TCP/IP-протоколу (рис. 4). У вікні, що з'явилося, вибираємо "Конфігурація WINS" (WINS Configuration). Ставимо прапорець у полі «Включити розпізнавання WINS» (Enable WINS Resolution) У полі «Основний сервер WINS» (WINS Server Search Order), що з'явилося, прописуємо IP-адресу сервера (Samba) - 192.168.0.1 і натискаємо «Додати» (Add) або просто .Переходимо на закладку "Додатково" (Advanced) і натискаємо на "Browse Master" у лівому вікні, а в правому встановлюємо значення "Disabled". Ось і все. Тепер залишається лише кілька разів натиснути кнопку "ОК" і перезавантажити Windows.

У Windows NT екрани властивостей мережі трохи різняться (показані малюнки), але головна концепція побудови залишається тієї ж.

Після перезавантаження Windows сміливо натисніть на "Мережеве оточення" (Network Neighborhood) і ви зможете побачити Samba-сервер, а також свою домашню директорію на Linux-сервері. Тепер ви можете просто підключити дані ресурси як мережеві диски та присвоїти їм drive letters.

Трохи ускладнимо конфігурацію: зробимо директорію /home/public доступною для читання всіма, але дозволимо поміщати в неї інформацію лише людям групи ADMINS. Для цього змінимо запис наступним чином:

Comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @ADMINS

Можна навести ще багато різних прикладів налаштувань файлового сервера Samba, але буде краще, якщо ви заглянете в документацію Samba або довідкові сторінки та розберете їх самостійно.

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

Навряд чи користувачі-початківці Linux OS зможуть швидко розібратися з системою доступу до Linux-файлів з-під Windows, і навпаки. Але не все так складно. Доступ до Linux-ресурсів з-під Windows був коротко описаний вище, а доступ до Windows-ресурсів з-під Linux ми зараз розглянемо.

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

Щоб побачити, які ресурси доступні на даній машині, виконайте команду:

/usr/sbin/smbclient -L host

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

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

/usr/sbin/smbclient service

де service - ім'я машини та сервісу. Наприклад, якщо ви намагаєтеся звернутися до директорії, яка доступна під ім'ям public на машині, названої galka, ім'я сервісу має звучати як \\galka\public.

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

Server time is Wen May 22 15:58:44 2001 Timezone is UTC+10.0 Domain= OS= Server= smb: \>

Команди для використання Samba аналогічні командам ftp, але якщо ви не вмієте користуватися ні тим, ні іншим, надрукуйте h, щоб отримати допомогу.

Ви, звичайно, можете використовувати smbclient для тестування, проте дуже скоро вам це набридне. Для роботи вам швидше за все знадобиться пакет smbfs. Smbfs поставляється з двома простими утилітами - smbmount та smbumount. Вони працюють подібно mount та umount для SMB-ресурсів. Наприклад,

Smbmount//computer_name/catalog/Mountpoint -U user_name

Через війну ви отримаєте «підмонтований» ресурс із можливістю звернення щодо нього звичними методами провідника.

Принт-сервер під Linux

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

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

Printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba comment = All Printers security = server path = /var/spool /lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s

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

Printcap name = /etc/printcap load printers = yes

Ці рядки контролюють, чи всі принтери, перелічені в /etc/printcap, повинні бути завантажені за замовчуванням. У цьому випадку не потрібно налаштовувати кожен принтер окремо. Розділ вказує настройки для принтерів, які потрібно визначити явно. Якщо підсистема друку не працює подібним чином (BSD), то вам необхідно налаштувати фальшивий файл printcap (або використовувати "print command", див. нижче). Для отримання додаткової інформаціїпро систему printcap див. Printing-HOWTO.

Доступ до принтеру Windowsз машин, що працюють під Linux

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

  1. Вам необхідно мати у файлі /etc/printcap правильні записи, які мають відповідати локальній структурі директорій (для буферної директорії тощо)
  2. У вас має бути скрипт /usr/bin/smbprint. Він постачається разом із вихідними текстами Samba, але не з усіма двійковими дистрибутивами Samba.
  3. Якщо ви хочете перетворити ASCII-файли на PostScript, ви повинні мати програму nenscript або її еквівалент. Програма nenscript – це конвертор PostScript, який зазвичай встановлюється у директорію /usr/bin.

Запис у наведеному нижче файлі /etc/printcap зроблено для принтера HP 5MP на сервері Windows NT. Використовуються такі поля файлу /etc/printcap:

Cm – коментар; lp – ім'я пристрою, що відкривається для виведення; sd – директорія спула принтера (на локальній машині); af – файл обліку користування принтером; mx – максимальний розмір файлу (нуль – без обмежень); if – ім'я вхідного фільтра (скрипта).

Фрагмент файлу /etc/printcap:

# /etc/printcap # # //galka/oreilly via smbprint # lp:\ :cm=HP 5MP Postscript OReilly on galka:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp: \ :af=/var/spool/lpd/lp/acct:\ :mx#0:\ :if=/usr/bin/smbprint:

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

#!/bin/sh –x # # Debugging log file, змінити /dev/null if you like. # logfile=/tmp/smb-print.log # logfile=/dev/null # # The last parameter to the filter is the accounting file name. # spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config # Should read the following variables set in the config file: # server # service # password # user eval `cat $config_file` # # Some debugging help, change the >> to > if you want to same space. # echo "server $server, service $service" >> $logfile (# NOTE Ви можете отримати line `echo translate" if you want automatic # CR/LF translation when printing. echo translate echo "print -" cat) /usr/bin/smbclient "\\\$server\\$service" $password -U $user -N -P >> $logfile

Більшість дистрибутивів Linux поставляється з програмою nenscript для перетворення ASCII-документів PostScript.

Висновок

Ще зовсім недавно можливості Samba обмежувалися лише переліченими вище. Однак можна з упевненістю говорити, що нова версія Samba 2.2 наздоганяє Windows 2000 за функціональними можливостями і містить додаткові вдосконалення. Один з провідних розробників Samba Джеремі Еллісон (Jeremy Allison) називає її "важливим оновленням", яке допоможе системам Samba легше впроваджуватися в мережі Microsoft. ПЗ забезпечує економію не тільки тому, що не потрібно платити за серверну ОС, але й тому, що не доводиться сплачувати за «клієнтські» ліцензії за всі комп'ютери, які використовують сервер.

Про нові можливості Samba 2.2. читайте у нашій статті «Samba 2.2 - що нового » .

Комп'ютерПрес 10"2001

Іноді потрібно дуже швидко на сервері налаштувати файлову кулю та відкрити доступ до неї. При цьому немає потреби містити якісь складні конфігурації, права доступу або ще щось. Потрібний просто оперативний доступ до інформації без зайвих питань.

Мені, наприклад, нещодавно подібне знадобилося, щоб відкрити доступ до резервним копіям, що зберігалися на сервері. Самому розбиратися та шукати інформацію не хотілося, потрібно було швидко дати людині доступ на читання, щоб вона сама знайшла все, що їй потрібно.

Я не буду спеціально оперувати версіями операційних систем. У самби конфіги однакові майже скрізь, де мені доводилося з ними працювати, тим більше найпростіших конфігураціях.

Отже, встановлюємо самбу будь-яким підходящим способом для вашої операційної системи. Зміни справедливі для 3-ї версії самби. Далі вирішуємо, що нам потрібне:

  • доступ до користувача та паролю,
  • доступ на ip адресу,
  • доступ усім підряд без обмежень.

Залежно від цього, налаштування будуть трохи різні.

Для доступу до паролюмалюємо такий конфіг:

Security = user passdb backend = tdbsam workgroup = MYGROUP server string = Samba path = /mnt/shara valid users = @users force group = users create mask = 0660 directory mask = 0771 writable = yes browseable = yes

# useradd share-user -M -G users -s /sbin/nologin

Імпортуємо цього користувача в самбу та задаємо пароль:

# smbpasswd -a share-user

І пробуємо зайти на кулі за адресою:

\\ip-сервера\share

Щоб організувати доступ залежно від ip адреси, робимо такі налаштування в smb.conf:

Security = share workgroup = MYGROUP server string = Samba map to guest = bad user path = /mnt/files browsable = yes writable = yes guest ok = yes read only = no hosts allow = 192.168.0.171

В даному випадку повний доступ буде адреси 192.168.0.171. Щоб додати всю підсіть, то потрібно вказати наступне:

Hosts allow=192.168.0.

Комбінувати можна різні підмережі та адреси, розділяючи їх пробілами. Для того, щоб відключити доступ до якихось окремих адрес з дозволеної підмережі, можна зробити ось так:

Hosts allow=192.168.0. except 192.168.0.15

Доступ буде дозволено всій підмережі 192.168.0.0/24, крім адреси 192.168.0.15.

Робимо перезапуск самби та перевіряємо.

Якщо у вас встановлена ​​samba 4, то ця конфігурація не запрацює і ви отримаєте помилку:

WARNING: Ignoring invalid value "(!LANG:share" for parameter "security" !}

Щоб доступ до ip нормально запрацював, вам необхідно внести наступні зміни до наведених вище конфіг:

Security = user map to guest = Bad Password

Інші параметри залишаєте ті ж самі. Після цього доступ по IP працюватиме і на 4-й версії самби.

Якщо доступ буде надано всім без обмежень, то найпростіша конфігурація самби буде такою:

Security = user workgroup = MYGROUP server string = Samba guest account = nobody map to guest = Bad User path = /mnt/files browseable = Yes guest ok = Yes writeable = Yes public = yes

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

# chmod 0777 /mnt/files

Перезапускаємо самбу та пробуємо зайти. Має пустити без зайвих питань.

Ось так буквально за 5 хвилин можна організувати найпростіший файловий сервер за допомогою samba. А часто складніше і не треба. Для якого-небудь файлового смітника підійде останній варіант.

Для складніших конфігурацій у мене є окремі статті:

Онлайн курс "Мережевий інженер"

Якщо у вас є бажання навчитися будувати та підтримувати високодоступні та надійні мережі, рекомендую познайомитись з онлайн-курсом «Мережевий інженер» в OTUS. Це авторська програма у поєднанні з віддаленою практикою на реальному обладнанні та академічним сертифікатом Cisco! Студенти отримують практичні навички роботи на обладнанні за допомогою віддаленої онлайн-лабораторії, що працює на базі партнера з навчання – РТУ МИРЕА: маршрутизатори Cisco 1921, Cisco 2801, Cisco 2811; комутатори Cisco 2950, ​​Cisco 2960. Особливості курсу:
  • Курс містить дві проектні роботи.;
  • Студенти зараховуються до офіційної академії Cisco (OTUS, Cisco Academy, ID 400051208) та отримують доступ до всіх частин курсу «CCNA Routing and Switching»;
  • Студенти можуть скласти іспит та отримати разом із сертифікатом OTUS ще сертифікат курсу «CCNA Routing and Switching: Scaling Networks»;
Перевірте себе на вступному тесті і дивіться програму детальніше. Підключення до інтернету