Як настроїти спільну папку на ubuntu. Чому не Samba, NFS і таке інше? Як працює SSHFS

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- якщо встановлено yes, то папка буде доступна лише гостям;
  • 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

Щоб користувач міг працювати з розшарованими папками в Ubuntu, він має бути в базі даних Samba. Тому створимо для нього пароль Samba.

Загальні ресурси в локальної мережідуже важливі оскільки вони полегшують роботу, з їх допомогою можна ділитися різними файламита папками з іншими користувачами мережі. Погодьтеся набагато простіше зробити спільну папку ніж щоразу бігати з флешкою ​​від комп'ютера до комп'ютера. Це дуже популярна тематому практично кожен користувач знає як створити спільну папку. Це щодо Windows там все просто і зрозуміло. А як це зробити в Linux знає далеко не кожен. Сьогодні поговоримо про те, як створити спільну папку в Ubuntu і дати необхідні правана читання чи запис.

Як створити спільну папку в Ubuntu

І так необхідно створити спільну папку в Ubuntu та надати права користувачам. Для початку створити папку та дамо права на читання та зміну всім користувачам. Спочатку створюємо порожню папку. Правою кнопкоюСтворити папку вводимо ім'я папки.

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

У вікні нас цікавить пункт Інші. Виставляємо у файлах Читання та запис у Папках створення та видалення файлів.

Тепер пробуємо підключитися до створеної спільної папки, наприклад з Windows. Відкриваємо провідники та вводимо IP адресу та дивимося що вийшло.

Якщо все зробили правильно, то має відкритися спільна папка. Можете поекспериментувати з налаштуваннями прав. Так само створити папку і налаштувати права можна і через термінал, але це вже для досвідченіших користувачів.

Потрібно примонтувати задану директорію на ньому до локальному комп'ютеру. Має бути можливість редагування великих файлівбез відправки файлу туди-сюди повністю, тобто FTP відпадає. Що вибрати? Нижче найпростіший спосіб якісно розшарити директорію в Linux всього в один рядок.

Sshfs user@ example.com:/path/to/directory/local/path

Все – директорія розшарована. Найдивовижніше, що для налаштування не довелося навіть заходити на сервер. З'єднання надійно зашифроване. Робота з файлами виглядає для користувача абсолютно прозорою. Якщо користувачеві не сказати, що це примонтована директорія, що знаходиться на сервері за тисячі кілометрів, він ні про що і не здогадається. SSHFS- Вибір професіоналів.

Як працює SSHFS

Як можна здогадатися з назви, ця віртуальна файлова системагармонійно поєднує разом дві успішні та популярні технології - FUSE та SSH. Від SSH береться безпека та міць віддаленого адміністрування, а FUSE прозоро інтегрує ці можливості лише на рівні файлової системи.

Чому не Samba, NFS і таке інше?

FTP.Треба піднімати та налаштовувати сервер. Пароль пролітає відкритим текстомна радість каккерам. Вміє завантажувати і закачувати файли повністю, але з вміє виправити кілька байт у великому файлі без передачі спочатку на клієнт, потім назад.

Samba.Тяжка система із заплутаним налаштуванням. Прийшла з світу Windows, Притягнувши за собою всі болячки і додавши нові. Використовувати Самбу для розшарування 1 директорії – як стріляти по горобцях з гармати.

WebDAV.Потрібно ставити важкий та неповороткий Apache. Проблема із власником файлів. Стандартний сервер працює від імені користувача www-data з групи www-data. Якщо директорія, що вмонтовується, належить іншому користувачеві, то потрібно правити конфігураційний файл і перезапускати Apache.

NFS.Як би рідна система для Linux, але чомусь все одно вимагає до встановлення на клієнт і сервер купи пакетів. Мудрена настройка, плутанина з правами.

Якщо немає SSHFS на клієнті

То його легко встановити. Залежностей немає.

Apt-get install sshfs

На сервер взагалі нічого не потрібно встановлювати – використовується стандартний ssh.