У меня есть путь на компьютере с Linux (Debian 8), которым я хочу поделиться с Samba 4 на компьютерах с Windows (Win7 и 8 в домене). По моему smb.conf
я сделал следующее:
[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes
У меня есть отличный доступ для чтения из Windows. Но для того, чтобы иметь доступ для записи, мне нужно сделать chmod -R 777 /path/to/share
, чтобы иметь возможность записи в него из Windows.
Я хочу получить доступ на запись из Windows после того, как предоставлю учетные данные Linux владельца Linux /path/to/share
.
Я уже попробовал:
[myshare]
path = /path/to/share
writeable = yes
browseable = yes
Затем Windows запрашивает учетные данные, но независимо от того, что я ввожу, это всегда отрицается.
Как правильно получить доступ на запись к общим ресурсам Samba с компьютера домена Windows без предоставления 777?
force user = defaultUser
сделало работу за меня.smb.conf
. Google и даже документация sambas говорят, что файл должен быть в,/usr/local/samba/lib
но на самом деле он находится/etc/samba
В настройках общего ресурса
smb.conf
вам необходимо указать имена пользователей и / или групп, которым разрешено писать в общий ресурс, используяwrite list = ...
строку.Пример:
Затем вам нужно будет использовать
smbpasswd
команду для установки пароля для аутентификацииmy_linux_username
для Samba:Этот шаг необходим, потому что стандартные системные пароли в нем
/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 , это может быть полезно еще.)
источник
Я искал это, потому что я спешил и даже не имел времени сосредоточиться на создании пользователей и так ...
Просто нужно было как можно быстрее извлечь данные с машины Debian 9, и это был самый быстрый способ, о котором я подумал. Если вы хотите избежать пропуска команд, вы также можете сделать это, но это явно не рекомендуется, если вы не в спешить .
источник