Що таке samba сервер. Samba і Windows, файловий сервер для Windows мережі. Секрети оптимізації Samba
А може просто інтерес і цікавість штовхають користувачів на пошуки різного відповідного софта. До такого софту відноситься Samba. Вам необхідно знати, як налаштувати Samba на Ubuntu Server, якщо ви бажаєте зробити зі свого комп'ютера базу даних або файлове сховище.
Установка Samba на Ubuntu Server дає можливість створити базу даних.
Якщо ви думали, що сторінка присвячена вивченню танцю, ви трохи помилилися. Samba - вільне програмне забезпечення. Воно реалізує доступ до принтерів і файлів. Причому робить це на різних операційних системах.
Для чого потрібна?
У порівнянні з іншими пакетами програм подібного призначення Самба має кілька переваг і особливостей.
- Дозволяє з'єднати один з одним Unix-подібну систему, т. Е. Будь-яку систему на Linux, і Windows. Причому не тільки Windows. Програма дуже «всеїдна»: MacOS, Solaris і інші ОС різного ступеня популярності.
- Самба дає можливість користувачам Віндовс використовувати комп'ютери на Ubuntu в якості сервера. Тобто користуватися файлами, до яких налагоджений доступ, а також частиною підключених пристроїв.
- Підтримує доменну структуру NT Domain, управляє користувачами NT, підтримує функції учасника, первинного контролера.
Напевно, для багатьох головне з цього - зв'язок з машинами на Windows. Вони в цьому випадку виступають в якості клієнта, а комп'ютер на Ubuntu - як сервер. З іншого боку, користувач Ubuntu також може отримати доступ до мережевих папок Windows.
Samba проводиться аж з 1992 року. І, що головне, нові версії виходять до сих пір. Остання була випущена сьомого березня 2017. З кожним роком розробники намагаються налагодити сумісність великою кількістю різних версій операційних систем, але головною фішкою залишається з'єднання Linux-систем з Microsoft. У порівнянні з Windows Server Samba може поступатися їй через відсутність підтримки частини протоколів та інфраструктури вузлів. Однак багато хто стверджує, що швидкість роботи Самби набагато вище.
налаштовуємо Samba
Перед безпосередньо налаштуванням, програму потрібно встановити. Установка Samba виконується таким же чином, як у випадку з іншими програмами - за допомогою введення в термінал команди:
sudo apt-get install samba
Відразу ж зауважте: всі дії, які будуть описані, включаючи і установку програми, можна виконати як на простий Ubuntu, так і на Ubuntu Server. Тільки на останній доступний виключно текстовий інтерфейс.
Після установки слід зробити бекап файлу конфігурації:
$ Sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
$ Sudo vi /etc/samba/smb.conf
Або редагуємо існуючий. У цьому файлі містяться основні установки сервера Самби. Щоб розібратися, що ми будемо робити далі, потрібно розуміти, що означають різні строки.
- Workgroup - робоча група. Значення цього параметра також часто буде Workgroup, оскільки в Віндовс домен робочої групи за замовчуванням виглядає саме так.
- Netbios name - ім'я комп'ютера Ubuntu, Яке бачать користувачі Windows. Тут можна вводити значення на свій розсуд.
- Security - режим авторизації користувачів. За замовчуванням варто User, тобто аутентифікація на рівні користувача. Поки що краще так і залишити.
- Os level - вказує пріоритет, який має Samba над іншими клієнтами (ПК) в локальній або інтернет-мережі.
- Name resolve order - черговість дозволу IP-адрес по NetBIOS імені.
- Read only - привілей читання або запису каталогу. Значення може бути «yes» - виключно читання, «no» - запис.
створюємо користувача
Це найпростіше дію, з якого можна починати роботу з Самбою.
Додаємо користувача в самій ОС:
$ Useradd -M -l -s / sbin / nologin username
Створюємо для нього пароль:
Занесемо нашого користувача в базу Samba:
$ Smbpasswd -a username
За допомогою команди $ smbpasswd можна виконувати інші різні дії:
- $ Smbpasswd username - зміна пароля
- $ Smbpasswd -x username - видалення користувача
- $ Smbpasswd -d username - бан користувача
Сервер необхідно перезавантажувати, якщо вносите зміни в конфігураційний файл. Робиться це за допомогою команди:
$ Systemctl restart smb
Це базові настройки Samba. Тепер можна спробувати застосувати програму на практиці.
Доступ до папки
Спочатку спробуємо створити папку, доступ до якої буде відкритий усім користувачам, навіть тим, хто не авторизований в Samba.
Створюємо папку, з якої і будемо потім працювати на двох комп'ютерах:
$ Sudo mkdir -p / samba / access
Тепер робимо для цієї папки розширений доступ, щоб її міг відкрити будь-який клієнт нашої локальної мережі:
$ Cd / samba
$ Sudo chmod -R 0755 access
$ Sudo chown -R nobody: nogroup access /
Власником згідно з кодом є nobody.
Тепер у файлі з конфігурацією сервера потрібно зробити два розділи: перший, що містить основну інформацію:
workgroup \u003d WORKGROUP
server string \u003d Samba Server% v
netbios name \u003d srvr1
security \u003d user
map to guest \u003d bad user
name resolve order \u003d bcast host
dns proxy \u003d no
#==============
І другий, який містить дані про папку access:
path \u003d / samba / access
browsable \u003d yes
writable \u003d yes
guest ok \u003d yes
read only \u003d no
Слідують розділи один за одним в такому ж порядку.
Оновлюємо зміни сервера:
$ Sudo service smbd restart
Дії з комп'ютером на Windows
На Винда також потрібно виконати деякі дії, щоб можна було без праці відкрити нову загальну папку і редагувати її.
- Відкриваємо командний рядок. Бажано робити це з розширеними правами, т. Е. Від імені адміністратора.
- Виконуємо команду:
- notepad C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts
- Відкривається файл, в якому вводимо наступну сходинку:
- 168.0.1 srvr1.domain.com srvr1
Завдяки їй папка стане доступна. - Відкрити її можна за допомогою рядка «Виконати». Тиснемо Win + R, вводимо: Після цього нам відкриється папка.
Закрита папка
Налаштований сервер Samba можна використовувати і для створення мережевих папок з обмеженим доступом. Таку папку теж потрібно спочатку створити, а потім додати в конфігурацію Samba.
Робимо папку з назвою «Closed»:
$ Sudo mkdir -p / samba / allaccess / closed
Робимо спеціальну групу, яка може мати доступ до цієї папки:
$ Sudo addgroup securedgroup
Створюємо особливі права для різних груп:
$ Cd / samba / access
$ Sudo chown -R richard: securedgroup closed
$ Sudo chmod -R 0770 closed /
Так само, як і в випадку з відкритою папкою, додаємо відомості в конфігурацію:
path \u003d / samba / access / closed
valid users \u003d @securedgroup
guest ok \u003d no
writable \u003d yes
browsable \u003d yes
Перезапускаємо сервер.
Як можна зрозуміти, ми зробили папку Closed всередині Access. Таким чином Access може відкрити кожен користувач локальної мережі, але щоб дивитися і редагувати Closed, потрібно володіти особливими правами.
Щоб переконатися, що все працює саме так, як ми це задали в командному файлі, можна виконати кілька простих дій.
Створюємо користувача і додаємо його в нашу закриту групу:
$ Sudo usermod -a -G securedgroup winston
Користувача у нас звуть, як пачку сигарет (або прем'єр-міністра Британії).
Робимо для Вінстона пароль:
$ Sudo smbpasswd -a winston
Після цього нам запропонують ввести новий пароль, Щоб зайти заново під щойно створеним аккаунтом. Не забудьте після цього зробити перезавантаження. Тепер ви знаєте, як налаштувати сервер через Самбу в Убунту.
Звичайно, можливості Samba не вичерпуються лише створенням простих папок. Але ці прості інструкції і приклади показують, що можна зробити за допомогою цієї програми. Це буде першим кроком до розуміння суті серверних ПК і їх управління.
Linux - відмінна операційна система, але від Windows ми не куди не дінемося і він від нас теж. Windows буде оточувати нас завжди - будь то домашня, корпоративна мережа або інтернет-кафе. Нам постійно належить обмінюватися документами з Windows-комп'ютерами - адже далеко не всі користувачі вважають за краще працювати в Linux. Маючи в своєму розпорядженні сервер наLinux , В будь-якому випадку виникне необхідність взаємодії з Windows-комп'ютерами, тому мова і піде про підключенні Linux до мережі Microsoft.
установка Samba
для установки Samba нам потрібно встановити пакети samba і samba-client. Бажано також встановити пакет smbfs. Крім того, система поставить на оновлення пакет samba-common, який можливо вже встановлений в системі. Всі мої маніпуляції будуть проводиться наUbuntu 10.04, основні відмінності від інших дистрибутивів - це спосіб установки. дляUbuntu через консоль, таким чином:
$ Sudo apt - get install samba
Або використовуючи менеджер пакетів Synaptic, що я і зробив, такий варіант виявився більш зручним для мене, оскільки можна було вибрати зі списку ті пакети, які мені потрібні, це були:
samba
smbclient
samba-common
Якщо ви колись використовували інший дистрибутив Linux, то напевно знайомі з програмою LinNeighborhood. Це графічна програма, яка дозволяє переглядати ресурси Windows-мережі. В Ubuntu в ній немає ніякої необхідності. По-перше, штатні засоби GNOME дозволяють переглядати Windows-мережі. А по-друге, заради інтересу було встановлено програму LinNeighborhood з одного з репозиторіїв Ubuntu. З'ясувалося, що ця програма, знайдена Synaptic, взагалі не придатна до використання (проблеми з локалізацією). Ну й добре, сенс розбиратися, якщо є відмінні стандартні засоби, які вже працюють.
Базова настройка Samba
На цьому етапі будемо вважати, що утиліта встановлена. Основний конфігураційний файл Samba - /etc/samba/smb.conf. Його необхідно відкрити і змінити кілька параметрів. перший цеworkgroup - він задає ім'я (на Ваш вибір) робочої групи або домену NT:
WORKGROUP \u003d MyHomeGroup
Можете також встановити параметр comment - це опис вашого комп'ютера:
comment \u003d My Linux computer
Встановіть параметр security. Якщо мережа клієнт / сервер, то потрібно вибрати параметр server, а якщооднорангова мережа (т. е. мережу без виділеного сервера), то потрібно вибрати user або share:
security \u003d share
Ім'я гостьовий облікового запису встановіть так:
guest account \u003d guest
Також потрібно налаштувати кодування:
client code page \u003d 866
character set \u003d utf8
Для того щоб Samba працював швидше, встановіть наступні опції:
socket options \u003d TCP_NO DELAY SO_RCVBUF \u003d 8192 SO_SNDBUF \u003d 8192
dns proxy \u003d no
Параметр interfaces вказує інтерфейси, на яких повинен працювати сервіс Samba. Необхідно вказати ті інтерфейси, які пов'язують нашу машину з Windows-мережами:
interfaces \u003d 192.168.0.22/24
Налаштування загальних ресурсів
Тепер залишилося конфігурувати ресурси, які ми хочемо надати в спільне користування, Це секція [public].
# Загальний каталог
comment \u003d Public Directory
# шлях
path \u003d / var / samba
# Не тільки читання
read only \u003d no
# Дозволити запис
writable \u003d yes
# Дозволити гостьовий доступ
guest ok \u003d yes
# Дозволити перегляд вмісту каталогу
browseable \u003d yes
В цьому випадку загальним ресурсом нашого комп'ютера буде каталог / var / samba (його потрібно створити, оскільки за замовчуванням в системі немає такого каталогу). У нього інші користувачі зможуть записувати свої файли (read only \u003d no, writeable \u003d yes), природно, вони зможуть їх і читати (browseable \u003d yes). Перевірка імені користувача і пароля для доступу до ресурсу не потрібна (guest ok \u003d yes) - використовується так званий гостьовий доступ. Коментар «Public Directory» побачать інші користувачі Windows-мережі під час перегляду ресурсів нашого комп'ютера.
Якщо є необхідність надати загальний доступ ( «розшарити») до домашніх каталогах користувачів, то йдемо в секцію ;. Раскомментіруем всі рядки, закоментовані за допомогою крапки з комою до рядка ;. Т. е. повинно вийти наступне:
comment \u003d Home Directories
browseable \u003d no
valid users \u003d% S
writable \u003d no
create mask \u003d 0600
directory mask \u003d 0700
Зараз призначені для користувача каталоги не будуть бачити в списку загальних ресурсів, звернутися до них можна за адресою \\\\ сервер \\ ім'я . Наприклад, \\\\ server \\ petya. Якщо потрібно, щоб для користувача ресурси можна було переглянути, тоді встановлюємо значення yes для параметра browseable:
browseable \u003d yes
Після всіх змін зберігаємо файл конфігурації і запускаємо (або перезапускаємо - restart) Samba:
$ Sudo /etc/init.d/samba start
Перегляд ресурсів Windows-мережі
Переглянути ресурси Windows-мережі можна за допомогою програми smbclient, але вона працює в текстовому режимі, тому не зовсім зручна у використанні. Набагато зручніше використовувати оглядач файлів для перегляду ресурсів мережі. Зробити це можна за допомогою меню перехід | З'єднатися з сервером ...
Секрети оптимізації Samba
Тепер поговоримо про те, як змусити Samba працювати трохи швидше. Якщо ви відкриєте файл конфігурації smb.conf, то знайдете в ньому параметр wide links. Ніколи не встановлюйте його вno ! Так ми істотно знизимо продуктивність Samba. Навпаки, встановити його потрібно в yes (якщо до цього параметр wide links був відключений), що істотно підвищить продуктивність.
Параметр wide links визначає, як Samba буде слідувати за символічними посиланнями. Якщо wide links \u003d no, то Samba не наслідуватиме символьних посилань поза експортованої області. Спочатку Samba слід за символічною посиланням, а потім виконує так званий directory path lookup (системний виклик, що визначає, де завершилася посилання). Дана операція має на увазі на 6 системних викликів більше, ніж в разі, якщо wide links \u003d yes. З огляду на, що подібних операцій робиться дуже багато, то виключення wide links знижує продуктивність Samba приблизно на 30%.
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 \u003d main-server server string \u003d; Робоча група клієнтів workgroup \u003d WORKGROUP announce version \u003d 5.0 socket options \u003d TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF \u003d 8192 SO_SNDBUF \u003d 8192 passdb backend \u003d tdbsam security \u003d user null passwords \u003d true; Файл для Альяс імен користувачів username map \u003d / etc / samba / smbusers name resolve order \u003d hosts wins bcast; wins support встановлюється в yes, якщо ваш nmbd (8) в Самба є WINS сервером. Не встановлюйте цей параметр в yes якщо у вас немає кількох підмереж і ви не хочете щоб ваш nmbd працював як WINS сервер. Ніколи не встановлюйте цей параметр в yes більш ніж на одній машині в межах однієї підмережі. wins support \u003d no; Підтримка принтерів printing \u003d CUPS printcap name \u003d CUPS; Список log file \u003d /var/log/samba/log.%m syslog \u003d 0 syslog only \u003d no; Налаштування прив'язки до інтерфейсів, на яких слухати, якщо не вказано слухає на все інтерфейси; interfaces \u003d lo, eth0; bind interfaces only \u003d true; ; ; path \u003d / var / lib / samba / printers; browseable \u003d yes; guest ok \u003d yes; read only \u003d yes; write list \u003d root; create mask \u003d 0664; directory mask \u003d 0775; ; ; path \u003d / tmp; printable \u003d yes; guest ok \u003d yes; browseable \u003d no; ; ; Path \u003d / media / cdrom; browseable \u003d yes; read only \u003d yes; guest ok \u003d yes; Шара жорсткого диска; Ім'я кулі, видно у клієнтів; Шлях до расшарівать диску path \u003d / media / sda1; Чи можна переглядати browseable \u003d yes read only \u003d no guest ok \u003d no create mask \u003d 0644 directory mask \u003d 0755; Прив'язка до певного імені користувача або групі, імена через пробіл; force user \u003d user1 user2; force group \u003d group1 group2; Ще один жорсткий диск, За аналогією з тим що вище path \u003d / media / sde1 browseable \u003d yes read only \u003d no guest ok \u003d no create mask \u003d 0644 directory mask \u003d 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 \u003d SMB_name1 SMB_name2 user \u003d Admin
На цьому настройка закінчена, перезапустіть Samba.
Встановити найпростіший GUI для Samba можна командою:
Sudo apt-get install system-config-samba
Запускається він командою:
Sudo system-config-samba
Всі зміни він записує в конфігураційний файл samba.
для віддаленого адміністрування Samba як web-інтерфейсу для Samba відмінно підійде