Лабораторна робота 8: Samba¶
Завдання¶
Виконавши цю лабораторну роботу, ви зможете
- встановити та налаштувати Samba
- обмінюватися файлами та каталогами між системами Linux за допомогою Samba
- використовувати звичайні утиліти Samba
Приблизний час виконання цієї лабораторної роботи: 40 хвилин
Вступ¶
Samba дозволяє обмінюватися файлами та виконувати служби друку між системами Unix/Linux і Windows.
Samba — це реалізація «Загальної файлової системи Інтернету» (CIFS) із відкритим кодом. CIFS також називають серверним блоком повідомлень (SMB), менеджером локальної мережі або протоколом NetBIOS. Сервер Samba складається з двох основних демонов – smbd і nmbd.
smbd: цей демон надає служби файлів і друку клієнтам SMB, таким як комп’ютери з різними операційними системами Microsoft.
nmbd: цей демон забезпечує обслуговування імен NETBIOS і підтримку перегляду.
Вправи в цій лабораторній роботі зосереджені на налаштуванні Samba як сервера та клієнта на сервері Rocky Linux.
Завдання 1¶
Встановіть Samba та налаштуйте базовий спільний каталог¶
Щоб встановити серверну програму Samba¶
- Використовуйте утиліту dnf, щоб установити сервер Samba та пакет клієнта на вашому сервері.
Впишіть:
sudo dnf install -y samba
Щоб налаштувати Samba¶
- Створіть каталог під назвою samba-share у папці /tmp, до якої потрібно надати спільний доступ. Впишіть:
mkdir /tmp/samba-share
- Давайте створимо базову конфігурацію Samba для спільного використання папки /tmp/samba-share. Зробіть це, створивши нове визначення спільного ресурсу у файлі конфігурації Samba:
sudo tee -a /etc/samba/smb.conf << 'EOF'
[Shared]
path = /tmp/samba-share
browsable = yes
writable = yes
EOF
Щоб запустити та включити службу Samba¶
- Запустіть і ввімкніть служби Samba:
sudo systemctl start smb nmb
sudo systemctl enable smb nmb
- Переконайтеся, що демони, які використовує служба Samba, запущені:
sudo systemctl status smb nmb
Завдання 2¶
Користувачі Samba¶
Важливим і поширеним адміністративним завданням для керування сервером Samba є створення користувачів і паролів для користувачів, яким потрібен доступ до спільних ресурсів.
Ця вправа показує, як створювати користувачів Samba та налаштовувати облікові дані доступу для користувачів.
Щоб створити користувача Samba та пароль Samba¶
- Спочатку створіть звичайного системного користувача з іменем sambarockstar. Впишіть:
sudo useradd sambarockstar
-
Переконайтеся, що користувача було створено правильно. Впишіть:
id sambarockstar
-
Додайте нового користувача системи sambarockstar до бази даних користувачів Samba та одночасно встановіть пароль для користувача Samba:
sudo smbpasswd -a sambarockstar
Коли буде запропоновано, введіть вибраний пароль і натисніть ENTER після кожного введення.
- Перезапустіть служби Samba:
sudo systemctl restart smb nmb
Завдання 3¶
Доступ до Samba Share (локальний тест)¶
У цій вправі ми спробуємо отримати доступ до нового ресурсу Samba з тієї ж системи. Це означає, що ми будемо використовувати той самий хост як сервер і клієнт.
Для встановлення клієнтських інструментів Samba¶
- Встановіть клієнтські утиліти, запустивши:
sudo dnf -y install cifs-utils
Щоб створити точку монтування Samba¶
- Створіть точку монтування:
mkdir ~/samba-client
Для локального монтування файлової системи SMB¶
- Встановіть Samba Share локально:
sudo mount -t cifs //localhost/Shared ~/samba-client -o user=sambarockstar
-
Використовуйте команду
mount
, щоб отримати список усіх змонтованих файлових систем типу CIFS. Впишіть:Вихідmount -t cifs
//localhost/Shared on ~/samba-client type cifs (rw,relatime,vers=3.1.1,cache=strict,username=sambarockstar.... ...<SNIP>...
-
Подібним чином скористайтеся командою
df
, щоб переконатися, що змонтований спільний ресурс доступний. Впишіть:
df -t cifs
Вихід
Filesystem 1K-blocks Used Available Use% Mounted on
//localhost/Shared 73364480 17524224 55840256 24% ~/samba-client
- Далі перелічіть вміст підключеного спільного ресурсу. Впишіть:
ls ~/samba-client
- Створіть тестовий файл у Share:
touch ~/samba-client/testfile.txt
Завдання 4¶
Змінення дозволів на спільний доступ¶
Щоб налаштувати дозволи на спільний доступ¶
- Зробити визначення спільних ресурсів samba «Shared» доступним лише для читання. Це можна зробити, змінивши значення параметра для запису з «так» на «ні» у файлі конфігурації smb.con. Давайте використаємо
sed
onliner, щоб виконати це, виконавши:
sudo sed -i'' -E \
'/\[Shared\]/,+3 s/writable =.*$/writable = no/' /etc/samba/smb.conf
-
Перезапустіть служби Samba:
sudo systemctl restart smb nmb
-
Тепер перевірте запис до спільного ресурсу, спробувавши створити файл на змонтованому спільному ресурсі:
touch ~/samba-client/testfile2.txt
Завдання 5¶
Використання Samba для певних груп користувачів¶
У цій вправі описано обмеження доступу до спільних ресурсів Samba через членство користувача в локальній групі. Це забезпечує зручний механізм для того, щоб зробити спільні ресурси доступними лише для певних груп користувачів.
Щоб створити нову групу для користувача Samba¶
- Скористайтеся утилітою groupadd, щоб створити нову системну групу під назвою rockstars. Ми будемо використовувати цю групу в нашому прикладі для користувачів житлової системи, які мають доступ до певного ресурсу. Впишіть:
sudo groupadd rockstars
- Додайте існуючого користувача системи/Samba до групи. Впишіть:
sudo usermod -aG rockstars sambarockstar
Щоб налаштувати дійсних користувачів у конфігурації Samba¶
- Скористайтеся утилітою sed, щоб додати новий дійсний параметр користувача до визначення спільного доступу у файлі конфігурації Samba. Впишіть:
sudo sed -i '/\[Shared\]/a valid users = @sambagroup' /etc/samba/smb.conf
- Перезапустіть служби Samba:
sudo systemctl restart smb nmb
- Тепер протестуйте доступ до спільного ресурсу за допомогою sambarockstar і перевірте доступ.
Завдання 6¶
Ця вправа імітує реальний сценарій, у якому ви діятимете як адміністратор клієнтської системи, а потім тестуватимете доступ до служби Samba на віддаленій системі (serverHQ), до якої у вас немає адміністративного доступу чи привілеїв. Будучи студентом, ви налаштуєте клієнт Samba на своїй машині (serverXY) для доступу до служби Samba, розміщеної на іншій машині (serverHQ). Це відображає стандартні налаштування робочого місця.
Припущення:
- Ви не маєте кореневого доступу до serverHQ.
- Спільний ресурс Samba на serverHQ уже налаштований і доступний.
Щоб налаштувати клієнт Samba на сервері XY¶
Налаштуйте свою машину (serverXY) як клієнт Samba для доступу до спільного каталогу на окремому хості (serverHQ).
- Переконайтеся, що необхідні утиліти клієнта Samba встановлені у вашій локальній системі. За потреби встановіть їх, виконавши:
sudo dnf install samba-client cifs-utils -y
- Створіть точку монтування на serverXY:
mkdir ~/serverHQ-share
Щоб підключити Samba Share із serverHQ¶
Вам знадобиться IP-адреса або ім’я хоста serverHQ, ім’я спільного доступу та ваші облікові дані Samba.
Замініть serverHQ, sharedFolder і yourUsername на фактичні значення.
```bash
sudo mount -t cifs //serverHQ/sharedFolder ~/serverHQ-share -o user=yourUsername
```
Для перевірки та доступу до змонтованого спільного ресурсу¶
- Перевірте, чи спільний каталог із serverHQ успішно змонтовано на вашій машині:
ls ~/serverHQ-share
- Спробуйте отримати доступ і змінити файли в підключеному спільному ресурсі. Наприклад, щоб створити новий файл:
touch ~/serverHQ-share/newfile.txt
Щоб відключити віддалений спільний доступ¶
Після цього відключіть спільний доступ:
```bash
sudo umount ~/serverHQ-share
```
Author: Wale Soyinka
Contributors: Ganna Zhyrnova