В настройках общего ресурса 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
сделало работу за меня.