Контакти

Що таке 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

На Винда також потрібно виконати деякі дії, щоб можна було без праці відкрити нову загальну папку і редагувати її.

  1. Відкриваємо командний рядок. Бажано робити це з розширеними правами, т. Е. Від імені адміністратора.
  2. Виконуємо команду:
  3. notepad C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts
  4. Відкривається файл, в якому вводимо наступну сходинку:
  5. 168.0.1 srvr1.domain.com srvr1
    Завдяки їй папка стане доступна.
  6. Відкрити її можна за допомогою рядка «Виконати». Тиснемо 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 відмінно підійде

Зараз вже досить часто в одній локальній мережі можна зустріти комп'ютери під управлінням Linux і Windows. Причини такого симбіозу можуть бути різними: наприклад, у власників інтернет-кафе не вистачило коштів на придбання ліцензійної ОС для всіх комп'ютерів, або системного адміністратора просто залучили позитивні сторони Linux. Популярність операційних систем від Microsoft багато в чому визначаться клієнтським ПО для Windows. Не секрет, що цей сектор програмного забезпечення розвинений дуже сильно. Безліч фірм доклали до цього серйозних зусиль і створили дійсно хороші, а головне, зручні у використанні програми, які без праці може освоїти навіть пересічний користувач. Зате в якості сервера позиція Windows вже не так однозначна. Сервер під керуванням Unix традиційно відрізняється надійністю, стабільністю в роботі, безпекою і часто меншими вимогами до системних ресурсів. Але в будь-якому випадку, просто підключивши комп'ютери з різними програмними платформами в мережу, ми не отримаємо очікуваного результату. Вся проблема в тому, що у цих двох систем використовуються різні принципи організації мережевих ресурсів, несумісні між собою.
Так як милості Microsoft чекати не доводиться, і Windows навряд чи навчиться працювати з мережевої файлової системою Unix (NFS) стандартними засобами, а програм сторонніх виробників, якщо чесно, я не знаю, то найбільш популярним способом є спроба навчити Unix "прикидатися», ніби б він - Windows NT.

Взаємодія в мережі комп'ютерів під управлінням Windows побудовано на використанні протоколу SMB (Server Message Block)- блоках серверних повідомлень. Він забезпечує виконання всіх необхідних в цих випадках завдань з відкриття та закриття, читання і запису, пошуку файлів, створенню і видаленню каталогів, постановці завдання на друк і видалення його звідти. Всі необхідні для цього дії реалізуються в Unix-подібних операційних системах за допомогою використання пакета SAMBA. Можливості його умовно можна розділити на дві категорії: надання ресурсів (під якими розуміється доступ до системи принтерів і файлів) для клієнтів Windows і доступ до ресурсів клієнтів. Тобто, комп'ютер під управлінням Linux може виступати як в ролі сервера, так і клієнта. Для початку розглянемо варіант SAMBA-сервера.

Що ж повинен забезпечити SAMBA для нормальної роботи в мережі Windows-машин? По-перше, контроль доступу, який може бути реалізований або на рівні ресурсів (share level), коли якому-небудь ресурсу в мережі призначається пароль і відповідні правила використання (наприклад, «тільки для читання»), при цьому ім'я користувача не має абсолютно ніякого значення; або ж більш досконалу і гнучку організацію на рівні користувача, коли для кожного користувача створюється обліковий запис, де крім імені та пароля міститься вся необхідна інформація про права доступу до ресурсу. Перш ніж отримати доступ до необхідного ресурсу, кожен користувач проходить аутентифікацію, після чого йому і надаються права згідно облікових записів. По-друге, необхідна емуляція прав доступу, що визначаються файлової системою. Вся справа в тому, що у розглянутих систем права доступу до файлів і каталогів на диску організовані по-різному. В Unix традиційно існує три категорії користувачів файлів: власник (owner), група (group)і інші (other). Кожному з цих суб'єктів можуть бути надані права на читання (read), запис (write)і виконання (execute). У Windows NT система доступу кілька гнучкіше, доступ надається кільком групам або користувачам, причому відповідні права доступу визначаються роздільно для кожного суб'єкта. Тому повноцінно емулювати засобами SAMBA права доступу, закладені в NTFS, неможливо.

З клієнтами, які працюють під управлінням Windows 9x, Інша справа. Ще з часів дідуся Досана, через те, що система розрахована на одного користувача і про ніяких користувачів і тим більше групах і не могло бути й мови, для файлової системи FAT визначено лише чотири атрибута - тільки читання (read only), системний (system), архівний (archive) і прихований (hidden). Плюс до всього в Windows, на відміну від Unix, має особливе значення розширення файлу - ті, що призначені для виконання, мають расшіренія.exe, .com ілі.bat. При копіюванні файлів з Unix-машин на комп'ютери під управлінням Windows атрибути встановлюються так:

тільки для читання- читання, запис для власника;

архівний - виконання для власника;

системний - виконання для групи;

прихований - виконання для групи.

Мережа Windows-машин може бути організована як робоча група (workgroup), коли комп'ютери незалежні один від одного і на кожному є своя база паролів і логінів зі своєю політикою безпеки, а також як домен NT. Вся база для аутентифікації користувачів і комп'ютерів управляється головним контролером домену (PDC, Primary Domain Controler), Тобто централізовано. Samba дозволяє обмежувати доступ на всіх цих рівнях і виконує функції «головного браузера» в контексті робочої групи або контролера домену.

З Загальноорганізаційна питаннями розібралися. Давайте подивимося тепер конкретно на реалізацію і настройку SAMBA-сервера в Linux. Для роботи Samba-сервера необхідно, щоб були запущені два демона: smbd, Що забезпечує роботу служби друку і поділу файлів для клієнтів Samba (таких як Windows всіх мастей), і nmbd, Що забезпечує роботу служби імен NetBIOS (він може використовуватися і для запиту інших демонів служб імен). Для доступу до клієнтів використовується протокол TCP / IP. Як правило, Samba встановлюється разом з дистрибутивом Linux. Як перевірити? Просто дайте команду:

$ Whereis samba

і ви повинні отримати щось на зразок цього:

Samba: / usr / sbin / samba / etc / samba /usr/share/man/man7/samba.7.gz

Якщо його не виявиться в стандартному постачанні, то ласкаво просимо на ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz або практично на будь-який сервер з програмами для Linux. Пакет простий в установці, тому, щоб не займати місця, будемо вважати, що він у вас встановлений. Тепер давайте перевіримо, чи запущений демон:

$ Ps -aux | grep smbd root 1122 0.0 0.6 4440 380? S 16:36 0:00 smbd -D

У мене вже, як бачите, запущений. Якщо у вас немає, а ви хочете, щоб він запускався при завантаженні системи, то в Linux Mandrake, наприклад, відзначте потрібний пункт в DrakConfстартові сервісиабо в Red Hat Сontrol-panelServise Configuration, Зазвичай цього буває достатньо. Або запускайте вручну: ./etc/rc.d/init.d/smb start. Єдиний конфігураційний файл Samba називається smb.conf і зазвичай знаходиться в каталозі / еtc (хоча в AltLinux, наприклад, він лежить в каталозі / etc / samba). Сервіс SAMBA зчитує його кожні 60 секунд, тому зміни, внесені в конфігурацію, вступають в силу без перезавантаження, але не поширюються на вже встановлені з'єднання.

Ось за що я люблю Linux, це за те, що конфігураційні файли є звичайними текстовими (до того ж добре коментувати всередині), і для того щоб задіяти більшість параметрів, досить тільки розкоментувати відповідний рядок. Файл smb.conf - не виняток. Він складається з іменованих розділів, що починаються з розділу включно, укладеного в квадратні дужки. Усередині кожного розділу знаходиться ряд параметрів у вигляді key \u003d value. Файл конфігурації містить чотири спеціальні розділи:,, і окремі ресурси (shares). Як випливає з назви, розділ містить найбільш загальні характеристики, які будуть застосовуватися всюди, але які, втім, потім можна перевизначити в секціях для окремих ресурсів. Деякі параметри цього розділу мають відношення і до налаштування клієнтської частини Samba.

Значення типових параметрів секції global:

Workgroup \u003d імя_группи # назва робочої групи в мережі Windows netbios name \u003d ім'я сервера в мережі server string \u003d коментар, який видно в вікні властивостей перегляду мережі guest ok \u003d yes # дозвіл гостьового входу (guest ok \u003d no - гостьовий вхід заборонений) guest account \u003d nobody # ім'я, під яким дозволений гостьовий вхід в систему security \u003d user # Рівень доступу. user - на рівні користувача, security \u003d share - аутентифікація на основі імені і пароля. При зберіганні бази паролів на іншому SMB-сервері використовується значення security \u003d server і password server \u003d name_server_NT. У разі, якщо сервер є членом домена, використовується значення security \u003d domain, пароль для доступу вказується у файлі, визначеному за допомогою опції smb passwd file \u003d / path / to / file.

Крім того, при реєстрації можуть використовуватися шифровані (encrypted) і незашифровані (plain-text) паролі. Останні використовуються в старих Windows (Windows for Workgroups, Windows 95 (OSR2), всіх версіях Windows NT 3.x, Windows NT 4 (до Service Pack 3)). Для включення варіанти використання шифрованого пароля використовується опція encrypt password \u003d yes. Прошу звернути особливу увагу на цю опцію. У старих дистрибутивах Linux, Які створювалися в епоху Windows 95 (і з більш старою версією Samba) за замовчуванням шифрування паролів відключене, а samba до версії 2.0даного режиму взагалі не підтримує (до речі, ця опція і подібні до неї - ті, що не стосуються доступу до конкретних ресурсів - використовуються і в клієнті).

для правильного відображення російських імен файлів потрібні такі опції: client code page \u003d 866 і character set \u003d koi8-r. У дистрибутивах з хорошою локалізацією, наприклад, похідних від Mandrake і російських цей рядок вже є, іноді її досить просто раскоментіровать, але в більшості інших її треба дописати самому.

Опція interfaces \u003d 192.168.0.1/24 вказує, в якій мережі (інтерфейсі) повинна працювати програма, якщо сервер підключений відразу до декількох мереж. При установці параметра bind interfaces only \u003d yes сервер буде відповідати на запити тільки з цих мереж.

hosts allow \u003d 192.168.1. 192.168.2. 127. - визначає клієнтів, яким надано дозвіл на доступ до сервісу.

У секції global можливе використання різних змінних для більш гнучкого налаштування роботи сервера. Після установки з'єднання замість них підставляються реальні значення. Наприклад, в директиві log file \u003d /var/log/samba/%m.log, параметр% m допомагає визначити окремий лог-файл для кожної клієнтської машини. Ось найбільш уживані змінні використовуються в секції global:

% A - архітектура ОС на клієнтській машині (можливі значення - Win95, Win NT, UNKNOWN і т.д.);

% M - NetBIOS-ім'я комп'ютера клієнта;

% L - NetBIOS-ім'я сервера SAMBA;

% V - версія SAMBA;

% I - IP-адреса комп'ютера клієнта;

% T - дата і час;

% U - ім'я користувача, що працює з сервісом;

% H - домашня директорія користувача% u.

Також для більш гнучкого налаштування застосовується директива include, яка використовує наведені вище змінні. Наприклад: include \u003d /etc/samba/smb.conf.%m - тепер при запиті з комп'ютера sales при наявності файлу /etc/samba/smb.conf.sales конфігурація буде взята з цього файлу. Якщо окремого файлу для якоїсь машини не буде, то для роботи з нею задіюється загальний файл.

Також є цікава можливість створення віртуального сервера. Для цього використовується параметр netbios aliases:

Netbios aliases \u003d sales accounting admin

Тепер наказуємо Самбі, щоб для кожного віртуального сервера вона використовувала свій конфігураційний файл:

Include \u003d /etc/samba/smb.conf.%L

У вікні браузера мережі буде видно три сервера: sales, accounting, admin.

Включення параметрів preserve case і short preserve case змушують сервер зберігати всю інформацію, що вводиться з урахуванням регістру символів (в Windows регістр не має значення, у всіх Unix - навпаки).

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

Типове опис даного розділу виглядає так:

Comment \u003d Home Directories # коментар, який видно в вікні властивостей мережі browseable \u003d no # визначає, чи виводити ресурс у списку перегляду. writable \u003d yes # дозволяє (no - забороняє) запис в домашню директорію create mode \u003d 0750 # права доступу для новостворених файлів directory mode \u003d 0775 # теж, але тільки для каталогів

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

Comment \u003d Public Stuff path \u003d / home / samba public \u003d yes writable \u003d no printable \u003d no write list \u003d administrator, @sales

Параметр path вказує на каталог, в якому розташовується ресурс; параметр public вказує, чи може користуватися ресурсом гість, а printable - чи може використовуватися даний ресурс для друку. Параметр write list дозволяє визначити користувачів, яким дозволений запис в ресурс незалежно від значення writable (в даному прикладі це користувач administrator і група sales). Можливе використання і протилежної списку - read list. Якщо є необхідність приховати деякі файли, то в Unix / Linux для цього назва файлу має починатися з точки (параметр hide dot files, який регулює відображення прихованих файлів, За замовчуванням дорівнює yes). Крім того, є можливість задати шаблони імен прихованих файлів, для чого використовується параметр hide files. Кожен шаблон починається і закінчується з символу косої риски (/) і може містити символи, що застосовуються в регулярних виразах. Наприклад: hide files \u003d /*.log/??.tmp/. Такі хитрощі обходяться користувачам Windows всього лише установкою режиму «Показувати приховані і системні файли» Провідника. Для впевненого обмеження доступності (можливості видалення) файлу (каталогу) використовуйте параметри veto files і delete veto files.

З CD-приводами справа дещо складніша. Вся справа в тому, що в Unix-подібних системах поняття диска відсутнє як таке, і для того щоб отримати доступ до потрібного пристрою, воно спочатку має бути змонтовано в дерево каталогів (# mount -t iso9660 / dev / cdrom / mnt / cdrom) , а після використання, щоб не зруйнувати файлову систему, обов'язково демонтувати (# umount / dev / cdrom), інакше пристрій просто не віддасть диск. Якщо у вас на сервері запущено демон autofs, То проблема вирішується просто. Для того щоб пристрій, який не використовується протягом деякого часу, було автоматично демонтувати, встановіть потрібне значення параметра timeout в файлі /etc/auto.master. наприклад:

/ Mnt / auto / etc / --timeout \u003d 5

(Подібна рядок вже там є, її потрібно тільки розкоментувати). Потім встановіть параметри для відповідного пристрою в файлі /etc/auto.tab:

Cdrom -fstype \u003d auto, ro: / dev / cdrom

Після всього цього прописуємо в /etc/smb.conf наступні рядки, щоб зробити доступним даний ресурс:

Path \u003d / mnt / cdrom writable \u003d no

Другий варіант полягає у використанні директив preexec і postexec, які вказують, які команди необхідно виконати при зверненні до ресурсу і після від'єднання від нього (ці параметри можна вказати для будь-якого ресурсу і навіть в секції global, що відкриває великі можливості).

Path \u003d / mnt / cdrom read only \u003d yes root preexec \u003d mount / mnt / cdrom # монтувати ресурс має право тільки root root postexec \u003d umount / mnt / cdrom # природно, ці точки монтування повинні бути описані у файлі / etc / fstab, інакше необхідно вказати і інші дані.

Тепер при зверненні до ресурсу автоматично монтується CD-ROM, а іноді і размонтіруйте. Вся проблема в тому, що рішення про закриття ресурсу повинен прийняти сервер - клієнти, як правило, не сповіщають про це. Але зазвичай це відбувається тому, що ресурсом одночасно користуються відразу кілька користувачів або на одному комп'ютері залишений відкритий файл на даному ресурсі (Device busy). Тому CD-ROM автоматично НЕ размонтіруйте, єдиний же прийнятний спосіб, щоб звільнити ресурс - подивитися за допомогою утиліти smbstatusномер процесу, що використовує даний ресурс, і вбити його командою # kill pid_number (або kill -s HUP pid_number).

Встановивши необхідну конфігурацію, тепер створимо облікові записи користувачів (за винятком гостьового входу з мінімальними правами nobody). Для ідентифікації користувачів SAMBA використовується файл / etc / samba / smbpasswd, в якому містяться імена і зашифровані паролі користувачів. Так як механізм шифрування в мережах Windows-машин не сумісний зі стандартними Unix-механізмами, для заповнення файлу паролів використовується окрема утиліта - smbpasswd.

# Useradd -s / bin / false -d / home / samba / sergej -g sales sergej # smbpasswd -a sergej # smbpasswd -е sergej

У цьому прикладі додається новий користувач sergej, Що належить групі sales, З фіктивною оболонкою (можливі варіанти / sbin / nologin, / dev / null) і домашнім каталогом / home / samba / sergej. Потім створюємо пароль для користувача sergej і останнім кроком включаємо доступ користувачу, т.я. за замовчуванням він відключений. Цікавий момент, який може часом збити з пантелику. Справа в тому, що при підключенні до SAMBA-сервера комп'ютера з Windows NT / 2000 користувачеві пропонується ввести, як і належить, логін і пароль, а якщо для доступу використовується комп'ютер з ОС Windows 9x / Me, то користувачеві пропонується ввести тільки пароль, а логін формується автоматично на основі реєстраційного імені.

Можна також зіставити декількох користувачів Windows одному користувачеві Linux / Unix. Для цього створюється файл зіставлення /etc/smbusers.map, в якому окремим рядком задається кожне зіставлення:

Пользователь_ Linux \u003d user_win1 user_win2 user_winN

У секції додайте рядок username map \u003d /etc/smbusers.map. При цьому користувач Windows повинен реєструватися з паролем того користувача, з яким він зіставлений.

З допомогою SAMBA можна організувати можливість мережевого друку з комп'ютерів під управлінням Windows (якщо планується окремий сервер друку, то для цього буває достатньо і машини на базі 486-процесора).

Для цього в секції необхідно записати такі рядки:

Printcap name \u003d / etc / printcap # файл опису принтерів, підключених до системи load printers \u003d yes # вказує на необхідність автоматичного включення в список мережевих ресурсів printing \u003d lprng # система друку (для Linux може ще використовуватися bsd).

Path \u003d / var / spool / samba # указує на каталог, в який поміщаються завдання на друк browseable \u003d yes printable \u003d yes read only \u003d yes

Після створення файлу протестуйте його за допомогою утиліти testparm. На жаль, за допомогою даної програми можна виявити лише синтаксичні помилки, а не логічні, тому немає ніякої гарантії, що описані у файлі сервіси будуть коректно працювати (при тестуванні будуть виведені всі установки, навіть ті, які встановлені за замовчуванням, - тому уважно перегляньте результат). Але якщо програма не лається, можете сподіватися, що при запуску файл буде завантажений без проблем. коректність роботи принтерів, Перерахованих у файлі / etc / printcap, з сервером SAMBA можна перевірити за допомогою утиліти testprns. Плюс не забувайте о.log-файлах: при виникненні проблем там іноді можна знайти рішення.

Тепер трохи про хороше. Конфігурація Samba - досить складна процедура, але з дистрибутивом поставляється інструмент адміністрування на основі Web, який називається swat(Samba Web Administration Tool,). Swat запускається у вигляді сервісу або за допомогою сервера Apache і призначений для редагування файлу smb.conf, а також для перевірки стану, запуску і зупинки демонів Samba, зміни паролів користувачів. Щоб він працював у вигляді сервісу, в файлі / etc / services повинна обов'язково бути присутнім рядок swat 901 / tcp, а в файлі /etc/inetd.conf - swat stream tcp nowait.400 root / usr / local / samba / bin / swat swat (це якщо використовується мережевий демон inetd, Як правило в старих дистрибутивах; в сучасних дистрибутивах використовується більш захищений варіант - xinetd). Для того щоб використовувати при цьому swat в каталозі /etc/xinet.d, створіть файл swat такого змісту:

Service swat (disable \u003d no port \u003d 901 socket_type \u003d stream wait \u003d no only_from \u003d 127.0.0.1 # це рядок для запуску тільки з локальної машини user \u003d root server \u003d / usr / sbin / swat log_on_failure + \u003d USERID)

Тепер для запуску Swat у вікні браузера введіть:

Http: // localhost: 901

Але перед цим обов'язково створіть користувача adminописаним вище способом. І ніколи не запускайте сервіс SAMBA від імені root.

Після всіх змін у файлі smb.conf іноді потрібно перезапустити демон:

Smb: /etc/rc.d/init.d/smb restart

Якщо після всіх перерахованих дій так і не вдалося організувати доступ до ресурсів SAMBA, то в подальшій настройці допоможуть такі утиліти як ping(Для перевірки доступності вузла в мережі), nmblookup(Для запиту імен NetBIOS), або на крайній випадок tcpdump. І не забувайте про права доступу, адже призначивши для користувача каталог / gde / to / w / glubine, ви надасте йому можливість прочитати (право на виконання) і попередні каталоги.

Тепер поговоримо про використання клієнта Samba, адже нам (користувачам Linux) також хочеться працювати і з мережевими ресурсами Windows. Для того щоб дізнатися, які ресурси доступні, необхідно ввести команду / usr / bin / smbclient -L host_name. Програма запросить пароль, у відповідь на що в більшості випадків досить натиснути Enter. Тепер, щоб підключиться до необхідного ресурсу, введіть ім'я комп'ютера і необхідний ресурс. наприклад:

# / Usr / bin / smbclient \\\\ Alex \\ Sound

(Тут ми пробуємо підключитися до папки Sound на комп'ютері Alex). В результаті, якщо команда введена правильно і такий мережевий ресурс існує, ви повинні отримати запрошення на введення пароля. Введіть його або натисніть Enter, якщо пароль не потрібен для доступу. У відповідь ви отримаєте запрошення samba-клієнта: smb:\u003e. Надалі робота відбувається шляхом набору команд, за допомогою яких можна провести всі необхідні операції по роботі з файлами (копіювання, створення, переміщення і т.д.). Для отримання довідки введіть smb:\u003e help. Цей режим кілька незручний, тому в більшості випадків використовують модуль smbfs, Що входить до складу samba; але в старих дистрибутивах ядро \u200b\u200bможе бути зібрано без підтримки smbfs, і тоді його доведеться пересобрать. Для того щоб змонтувати необхідний ресурс, наберіть що-небудь на зразок цього:

Mount -t smbfs -o username \u003d user, password \u003d 123456, iocharset \u003d koi8-r, codepage \u003d 866 // alex / sound / mnt / sound.

Якщо не вказати ім'я користувача і пароль, то система сама його у вас запитає. Не забувайте, що, переглянувши файл ~ HOME / .bash_history, можна по командам, які ви набирали, дізнатися пароль. Ще одна тонкість: якщо програма smbclient правильно відображає файли з російськими іменами, то модуль smbfs іноді не звертає на іншу систему кодування абсолютно ніякої уваги, навіть якщо вказати її явно. Кажуть, це можна виправити патчем, але я для свого Red Hat його ще не знайшов.

Якщо ви хочете, щоб ресурс SMB монтувався автоматично при запуску системи, додайте в файл / etc / fstab приблизно такий рядок:

//[Email protected]/ Sound / mnt / alex / sound smbfs rw, noauto 0 0.

У цьому прикладі від імені користувача guest(Якщо ресурс підтримує даного користувача і якщо даний користувач має доступ тільки по паролю, то не хвилюйтеся: у вас його неодмінно запитають) мережевий ресурс sound на комп'ютері alex монтується в папку / mnt / alex / sound з можливістю запису в даний каталог. До речі, клієнт Samba відмінно бачить приховані мережеві ресурси, тобто ті, у яких мережеве ім'я закінчується знаком $.

Як бачите, доводиться працювати з командним рядком, Яка у сучасного користувача викликає тихий жах. І тут світ OpenSource пішов йому назустріч - створено багато утиліт, що дозволяють працювати з Samba-ресурсами більш звичним шляхом, натискаючи кнопки в графічних оболонках. Найпопулярніша програма, що входить в дистрибутив Mandrake і похідних від нього, а також Debian - gnomba. У будь-якому випадку її можна знайти на більшості серверів з ПО для Linux (на ftp://ftp.altlinux.ru/ бачив точно). Дана утиліта дозволяє переглянути доступні мережеві ресурси () і при необхідності змонтувати в потрібний каталог, при цьому можливий варіант монтування із зазначенням лог ина і пароля для тих ресурсів, які цього вимагають. Можливий запуск файлового менеджера при монтуванні (за замовчуванням gmc), Створення каталогів для монтованих ресурсів, завдання опції автоматичного сканування при запуску програми (можливо з використанням протоколу SMB за замовчуванням) і сканування по IP-адресами (планується з використанням WINS-протоколу). З нез'ясованих мною причин в деяких дистрибутивах при скануванні за допомогою SMB-протоколу не виводилися мережеві ресурси, тому я завжди використовую другий метод, благо він діє безвідмовно, необхідно лише задати діапазон IP-адрес для сканування (якщо знаєте). Для того щоб відображалися правильно російські імена файлів, не забудьте встановити шрифти koi8-r у вкладці Опції\u003e Вибір шрифту, А також перевірити рядки, які вказують кодування кирилиці в файлі smb.conf (див. Вище).

Якщо gnomba може тільки монтувати і демонтувати ресурси, то програма xsmbrowserдозволяє ще й заходити в них як в папки на локальному комп'ютері (). Правда, мені поки не вдалося змусити цю програму розуміти файли з російськими назвами, але є і позитивні сторони: при роботі даної програми все команди з монтування та різні мережеві запити виводяться на консоль, що дозволяє добре розібратися в них. Розробники KDE теж постаралися: через Preferences\u003e Informationдоступна утиліта Samba Status, Що відображає всі підключення до / від локального комп'ютера, що одночасно є зручним засобом просмотра.log-файлів. Аналогічну інформацію представляє і утиліта komba, Яку можна знайти на http://linux.tucows.com/ ().

Як би я не хотів розповісти вам більше, але журнал є журнал - все не вмістити. Далі в допомогу вам прийдуть всюдисущі man і info. Також всю необхідну довідкову інформацію можна отримати з утиліти SWAT, до того ж в Red Hat 7.3 виявилася книга Using Samba Robert "a Eckstein" a(Мова англійська - погано, абсолютно безкоштовно - добре: / usr / share / swat / using_samba), доступна також з SWAT (). У каталозі / usr / share / doc / samba можна знайти додаткову документацію, FAQ і приклади конфігураційних файлів. У різних форумах можна зустріти досить суперечливі думки про роботу Samba, від вкрай негативних до повного захоплення. Особисто я на боці прихильників цього емулятора Windows NT, до того ж за результатами тестів при однаковому обладнанні сервер Samba показує продуктивність приблизно на 25-30% вище, ніж комп'ютер під управлінням системи від Microsoft. Успіхів.

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 як автономного файлового сервера з авторизацією:; Глобальні налаштування сервера; 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.

Файловий сервер Samba для Windows мережі

Дуже часто Samba використовують для створення файлового сервера в Windows мережі.

Файловий сервер в складі домену Active Directory

Для того, щоб створити файловий сервер, інтегрований в домен Active Directory, вам в першу чергу потрібно ввести вашу машину з Ubuntu в домен. Цьому присвячена окрема стаття:

Для створення файлового сервера вам не потрібно налаштовувати PAM, досить додати доменних користувачів і групи через Winbind в систему.

Після успішного входу в домен вам залишиться всього лише налаштувати розшарені ресурси на вашому комп'ютері.

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

Тому за замовчуванням на расшаренних ресурсах будуть вельми мізерні можливості контролю доступу - призначення різних прав для користувача, групи і всіх інших. Однак це легко виправити, додавши в вашу ФС підтримку POSIX ACL. В цьому випадку можна буде призначати різні права різним користувачам і групам практично як в Windows.

Підтримка POSIX ACL є як мінімум в ext3 / 4, для її активації вам необхідно просто додати до опцій монтування потрібного розділу параметр acl.

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

Є і ще один вельми важливий момент: POSIX ACL не підтримують успадкування прав доступу від батьківських каталогів, а в Windows ця можливість присутня. Тому в Samba реалізований додатковий механізм збереження інформації про спадкування прав доступу, який використовує розширені атрибути файлової системи. Тому щоб Samba могла коректно обробляти успадкування прав крім acl до опцій монтування файлової системи необхідно додавати параметр user_xattr, який якраз і відповідає за включення підтримки розширених атрибутів.

Наприклад, я завжди використовую для організації расшаренних ресурсів окремі LVM диски і у мене рядки в fstab для них виглядають приблизно так:

/ Dev / mapper / data-profiles / var / data / profiles ext3 defaults, noexec, acl, user_xattr 0 2

Опція noexec потрібна тому, що на кулях для Windows 100% не повинно бути виконуваних файлів Linux, і зайвий раз перестрахуватися не завадить.

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

Sudo aptitude install acl

Після чого подивитися розширені права (тобто ACL) на файл або каталог можна буде командою

Getfacl file

А встановити командою

Setfacl file

Про всяк випадок хочу звернути увагу на те, що механізм POSIX ACL не має ніякого відношення до Samba - це просто надбудова над стандартним механізмом розмежування прав в Linux. Відповідно Samba може його використовувати, але не може будь-яким чином змінити або обійти.

Для роботи з розширеними атрибутами ФС буде потрібно дуже схожий на acl пакет утиліт - attr, поставити який можна командою

Sudo aptitude install attr

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

Getfattr file

А для установки

Setfattr file

Однак тут є одна невелика заковика. Справа в тому, що Samba зберігає всю інформацію про спадкування в бінарному вигляді в єдиному розширеному атрибуті user.SAMBA_PAI. Тому поміняти щось за допомогою setfattr вам не вдасться, тільки хіба що повністю видалити розширені атрибути (іноді таке може знадобитися зробити).

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

Існує так само експериментальний VFS модуль acl_xattr, який дозволяє зберігати NT ACL повністю в розширених атрибутах. На жаль, документації по ньому немає, тому що щось зрозуміле сказати з цього приводу складно. Очікується, що в Samba 4 буде повна інтегрована підтримка NT ACL, а поки що можна користуватися тим, що є.

Якщо вам є що додати з приводу розширених атрибутів в Samba і методах роботи з ними - обов'язково напишіть в цю тему на форумі. Буду вдячний за будь-які посилання, статті і коментарі по темі.

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

Отже, будемо вважати що у вас є в системі каталог, який ви хочете розшарити через Samba (і він знаходиться на диску, подмонтіровать з підтримкою acl і user_xattr). Тепер необхідно власне налаштувати його расшаріваніє. Для цього потрібно внести відповідну інформацію в файл /etc/samba/smb.conf.

Почнемо з загальних налаштувань, які можна додати в секцію цього файлу (це далеко не всі можливі параметри, просто кілька досить корисних з них):

# Відключити расшаріваніє принтерів. Якщо ви звичайно і справді не хочете їх расшарівать. # Для повного відключення потрібно вказувати всі 4 рядки, наведених нижче load printers \u003d no show add printer wizard \u003d no printcap name \u003d / dev / null disable spoolss \u003d yes # Зробити прихованими при перегляді з Windows файли з наступними іменами hide files \u003d / $ RECYCLE .BIN / desktop.ini / lost + found / Thumbs.db / # Використовувати для кулю з публічним доступом наступного UNIX користувача в якості Guest guest account \u003d nobody # Сприймати як guest незареєстрованих користувачів map to guest \u003d Bad User ## Налаштування, що використовують розширені атрибути файлової системи # Обробляти успадкування прав за допомогою розширених атрибутів ФС map acl inherit \u003d yes # Використовувати розширені атрибути ФС для зберігання атрибутів DOS store dos attributes \u003d yes # Відключити маппинг DOS атрибутів на UNIX права, включений за замовчуванням # Згідно man smb.conf при використанні розширених атрибутів ці опції повинні бути відключені map archive \u003d no map system \u003d no map hidden \u003d no map readonly \u003d n o

Тепер налаштування безпосередньо розшарений ресурсу. У мене він називається profiles, А фізично на Ubuntu машині знаходиться за адресою / Var / data / profiles:

# Коментар comment \u003d User Profiles # Шлях до папки, яку расшарівать path \u003d / var / data / profiles / # Користувачі з необмеженими правами доступу до кулі # У мене стоїть група адміністраторів домену. # Ці користувачі при роботі з файлами сприймаються як локальний root admin users \u003d "@DOMAIN \\ Адміністратори домену" # Приховати папки, до яких у користувача немає доступу hide unreadable \u003d yes # Доступ не тільки на читання read only \u003d no # Маски для створюваних файлів - можна задати за бажанням #create mask \u003d 0600 #directory mask \u003d 0700 # Відключення блокувань - краще відключити locking \u003d no

Є безліч інших опцій - за подробицями варто звернутися до документації по Samba.

Не забудьте поставити правильного власника і права доступу на папку, яку ви расшарівать, а то незважаючи на будь-які настройки самби в неї може бути заборонений запис на рівні прав Linux. Я роблю зазвичай так:

Sudo chmod ug + rwx / var / data / profiles sudo chown root: "користувачі домену" / var / data / profiles

Зверніть увагу, так як ваша Ubuntu машина введена в домен, то ви можете використовувати користувачів і групи домену в якості власників файлів прямо в Ubuntu.

Перевірте правильність конфігурації Samba командою

Testparm

Після чого перезапустіть Samba:

Sudo /etc/init.d/samba restart

Тепер ви можете з будь-якої машини домену отримати доступ до розшарений ресурсу.

До речі, не забувайте про SGID і Sticky біти для каталогів. Вони дозволять вам наслідувати групу-власника і забороняти користувачам видалення не своїх файлів - це може бути дуже зручно для багатокористувацьких сховищ. Однак на відміну від редагування прав з Windows поміняти ці біти на папках на розшарений ресурсі не вийде - тільки вручну безпосередньо на Ubuntu комп'ютері.

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

Автономний файловий сервер

Домен Active Directory є далеко не у всіх. Тому часто виникає необхідність організувати на Linux машині автономне файлове сховище зі своєю власною системою авторизації. Це зробити дуже просто.

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

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

Зазвичай використовується значення share або user.

Автономний файловий сервер без авторизації

Для будинку зручно щоб всі бачили всіх. Це можна зробити якщо додати 4 рядки в секцію файлу /etc/samba/smb.conf. Деякі можуть вже існувати.

[Global] workgroup \u003d WORKGROUP map to guest \u003d Bad User netbios name \u003d NOTEBOOK security \u003d user

NOTEBOOK - ім'я комп'ютера яке буде в мережі. Крім цього треба встановити додаткові програми:

sudo apt-get install samba

Для kubuntu треба ще встановити smb4k. Після редагування конфігов треба перезапустити служби. У systemd (починаючи з 15.04) перезапуск виглядає так:

sudo systemctl restart smbd.service nmbd.service

Подивитися «кулі» можна через файловий броузер nautilus, konkueror або так:

Smbclient -L 127.0.0.1

. Офіційна документація англійською.

Расшаріваніє папки на ubuntu

Створено папку для обміну файлів.

mkdir ~ / share

Додайте в кінець файлу /etc/samba/smb.conf наступні рядки, yuraku1504 замініть на ім'я користувача комп'ютера з самбою:

[MyShareWork] comment \u003d Anonymous Samba Share path \u003d / home / yuraku1504 / share guest ok \u003d yes browsable \u003d yes writable \u003d yes read only \u003d no force user \u003d yuraku1504 force group \u003d yuraku1504

Папка буде відкрита для читання і запису.



Сподобалася стаття? поділіться їй