У налаштуваннях спільного доступу в smb.conf
потрібно вказати імена користувачів та / або груп, яким дозволено записувати на спільний доступ, використовуючи write list = ...
рядок.
Приклад:
[myshare]
...
write list = my_linux_username
Тоді вам потрібно буде скористатися smbpasswd
командою, щоб встановити пароль для автентифікації my_linux_username
для Samba:
sudo smbpasswd -a my_linux_username
Цей крок необхідний, оскільки стандартні системні паролі в /etc/shadow
хешируються в алгоритмах, несумісних з алгоритмами хешування паролів, що використовуються в протоколі SMB. Коли клієнт надсилає пакет автентифікації SMB, він включає хешований пароль. Його можна порівняти лише з іншим хешем пароля, який використовує той самий алгоритм.
(Дуже старі інструкції попереднього тисячоліття можуть рекомендувати вимкнути шифрування паролем у Samba та використовувати певні хаки реєстру, щоб Windows могла надсилати незашифровані паролі в мережу. Ця порада: застаріла : ці зловми реєстру можуть більше не працювати в поточних версіях Windows, і дозволити всім, хто може стежити за вашим мережевим трафіком, тривіально захоплювати ваш пароль.)
Є ще одна річ, яку вам, можливо, доведеться зробити на стороні клієнта. Коли ваша клієнтська система Windows приєднається до домену Active Directory і ви ввійшли в обліковий запис AD, він автоматично встановлює всі некваліфіковані імена користувачів з іменем домену AD користувача, тобто ви будете автентифіковані якAD_DOMAIN\your_username
, а не просто your_username
.
Якщо ви ввійшли в систему за допомогою локального облікового запису (або ваша клієнтська система не приєднана до домену AD), Windows може автоматично встановити префікс імені користувача хоста клієнта, якщо не вказати інше ім'я домену.
Для успішного входу на автономний сервер Samba від автономного клієнта Windows, можливо, доведеться вказати своє ім’я користувача як SAMBA_SERVER_HOSTNAME\your_username
.
Інакше Samba побачить ім'я користувача як WINDOWS_CLIENT_HOSTNAME\your_username
, висновок, що він не може перевірити будь-яких користувачів, що належать домену, іменованому WINDOWS_CLIENT_HOSTNAME
, і відхилить логін.
(Більш новітні версії Samba можуть мати вбудовану перевірку на цю конкретну ситуацію, і вони, тим не менш, можуть дозволити вам отримати доступ. Але це в основному, як автентифікація SMB працює "під капотом", і якщо вам потрібно мати справу зі старими версіями Samba , це може бути корисним.)
force user = defaultUser
зробило роботу для мене.