Налаштування сервера samba без пароля

У цій статті буде розглянуто найбільш простий випадок настройки доступу до Linux файлів. Коли потрібно надати анонімний доступ до загальних ресурсів Linux. Це поширена ситуація в домашніх мережах і в мережі невеликого офісу. Розшарити папку Linux по мережі можна використовуючи кілька протоколів. Але найчастіше це робиться через сервер Samba з використанням протоколу SMB (CIFS). Саме цей спосіб і буде описаний в статті.

Часте використання Samba та протоколу SMB пов'язано з тим, що зазвичай потрібно на Linux розшарити папку для Windows. А протокол SMB (CIFS) використовується в операційних системах Windows для організації загального доступу до файлів і принтерів. Комп'ютер під управлінням Linux, на якому встановлений і налаштований сервер Samba, в локальній мережі виглядає точно так само як і комп'ютер під управлінням Windows.

Отже, що, і в якій послідовності необхідно зробити для того щоб в Linux надати мережевий доступ до теки і файлів?

установка Samba

Це перший крок. У деяких дистрибутивах установку Samba можна вказати в параметрах установника, як наприклад Alt Linux або Rosa Linux. Але в більшості дистрибутивів Samba встановлюється окремо, при необхідності. Наприклад в Ubuntu установка Samba виконується автоматично, якщо ви відкриваєте загальний доступ до папки через файловий менеджер Наутілус.

У загальному випадку установка Samba дуже проста - зазвичай інсталяційний пакет так і називається - samba. У кожному дистрибутиві Linux є програма для управління програмними пакетами. Яка показує встановлені пакети і дозволяє встановлювати нові пакети. Наприклад в дистрибутиві Ubuntu це три графічні програми - Gdebi, Synaptic і Software-center. І дві консольні - apt та dpkg.

Отже, крок перший - перевірити чи встановлений сервер Samba і якщо немає тоді встановити його.

Налаштування доступу в Samba без пароля

Крок другий. Після установки сервера Samba необхідно його налаштувати. У самому простому випадку потрібно налаштувати дві речі:

  1. Вказати папку, яка буде доступна по мережі.
  2. Вказати спосіб доступу до комп'ютера через мережу (спосіб аутентифікації для входу на комп'ютер через мережу).

Налаштувати сервер Samba можна через GUI інтерфейс або через безпосереднє редагування файлу конфігурації Samba.

Налаштування Samba через GUI інтерфейс

Найчастіше для цього використовується програма system-config-samba. Вона є у всіх популярних дистрибутивах Linux. Але не у всіх дистрибутивах вона встановлюється автоматично (з коробки). Так що потрібно перевіряти її наявність і встановлювати, якщо її немає. Ця програма дозволяє не тільки вказати загальну папку, але і додавати Samba-користувачів і управляти деякими параметрами сервера Samba.

Налаштування сервера samba без пароля

Налаштування сервера samba без пароля

Налаштування сервера samba без пароля

Налаштування сервера samba без пароля

Налаштування сервера samba без пароля

Параметри, змінені через цю програму, записуються в файл глобальної настройки Samba - /etc/samba/smb.conf.

У графічній оболонці GNOME є файловий менеджер Наутілус в якому вказати загальний доступ до папки можна безпосередньо у властивостях цієї папки (пакет nautilus-share).

Налаштування сервера samba без пароля

Параметри, змінені через файловий менеджер Наутілус, записуються в файл

/.gnome2/nautilus-share-modified-permissions і в папку / var / lib / samba / usershares.

Налаштування Samba через файл конфігурації

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

Samba - налаштування доступу без пароля

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

Якщо налаштовувати Самба через файл smb.conf, тоді потрібно, в секції [global], вказати наступні параметри:

  • security = user
  • map to guest = bad user (або bad password)

У разі значення bad user. при мережевому вході, буде запитано ім'я користувача і пароль. Але їх можна вказати будь-які "від ліхтаря". І тим не менше вхід буде виконаний. У разі значення bad password НЕ буде запиту імені користувача та пароля.

Далі в секції, яка описує загальну папку Linux, потрібно вказати чотири параметра:

Це приклад такої секції в файлі smb.conf. Тема секції визначає ім'я папки яке буде видно в мережі. Параметр path визначає саму папку в файлової системі Linux. А параметри guest ok і read only дозволяють запис в папку і гостьовий доступ до папки. І останні параметри, create mask і directory mask. вказують, що всі файли і папки, які будуть там створені через мережу (мережевими користувачами) повинні отримати атрибути повного доступу в файлової системі Linux.

Останні два параметри дуже важливі, щоб у всіх мережевих користувачів була можливість змінювати файли в цій мережевий папці Linux. Якщо не вказати параметри create mask і directory mask. тоді нові файли будуть доступні тільки тим хто увійде в цю папку гостем. А наприклад вже локальний користувач Linux не зможе їх змінювати.

Ось мінімальна конфігурація Samba для анонімного доступу до файлів Linux.

Дозволи Linux для доступу без пароля

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

Встановити дозволу на файл (папку) в Linux можна через файловий менеджер (через властивості папки) або в терміналі, програмою chmod.

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

  1. якщо локальний користувач Linux увійде в цю папку через файловий менеджер і створить в ній новий файл;
  2. якщо локальний користувач Linux скопіює в цю папку файл з іншої своєї локальної папки.

В обох випадках новий файл буде недоступний для редагування мережевими користувачами. Чому це станеться? Новий файл отримає права доступу Linux 644, тобто повний доступ тільки для власника файлу. А якщо файл буде скопійований з іншої папки, то він збереже свої права і після копіювання.

Що робити для вирішення цієї проблеми?

Є різні способи вирішення. Хтось радить періодично (наприклад за завданням cron) змінювати права всіх файлів в папці на 666 (права повного доступ для всіх без винятку). Це працює, але на мій погляд не варіант. Я вважаю що таке привласнення прав повинно відбувається автоматично, без зайвих рухів тіла.

Інші люди радять включити ACL на файлової системи Linux і потім вказати ACL за замовчуванням для мережевої папки (зі значенням 777).

Налаштування сервера samba без пароля

Це працює, але тільки наполовину. Якщо локальний користувач сам створить новий файл, цей файл отримає атрибути 666. Але якщо локальний користувач скопіює файл з іншої папки, то файл збереже свої старі атрибути.

Однак є два способи які повністю вирішують проблему.

Перший спосіб, найпростіший.

Локальному користувачеві, потрібно заходити в мережеву папку теж через мережу! В цьому випадку всі його операції в папці будуть проходити через сервер Samba. А Самба налаштована на повний доступ.

Гідність цього способу в тому, що нічого не потрібно робити додатково. Нестачі два:

  1. Швидкість файлових операцій для локального користувача буде нижче ніж якби він зайшов в мережеву папку звичайним чином.
  2. Локальний користувач може забути і увійти в папку звичайним чином.

Другий спосіб - настройка мережевого доступу через bindfs

Використовувати bindfs. Для цього потрібно встановити цей пакет і потім вручну або автоматично змонтувати мережеву папку через bindfs.

Ось приклад автоматичного монтування через fstab:

bindfs # / home / user / lan / home / user / lan fuse perms = 0777 0 0

У прикладі папка монтується сама в себе, але можна вказати іншу точку монтування. Важливо вказати параметр монтування perms = 0777 - це повний доступ на всі файли і папки.

При використанні bindfs, спосіб доступу до папки вже не має значення, локально виконується операція або через мережу, в будь-якому випадку у об'єктів всередині цієї папки будуть атрибути повного доступу.

В цьому випадку параметри create mask і directory mask в файлі smb.conf вже не потрібні.

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

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

Налаштування доступу без пароля для інших ОС

Якщо ви живете в м Житомир і вам необхідно налаштувати локальну мережу в Linux

Замовте налаштування Linux, FreeBSD в Житомирі