У меня есть машина с Windows 10 (последнее обновление от 2016-10-10), которая абсолютно отказывается получить доступ к общедоступному ресурсу Samba на сервере Linux (Raspbian - производный от Debian) без предварительного ввода учетных данных в Windows.
Клиент Windows 10
IP-адрес: 10.0.0.184
Не в домене.
Raspbian (Debian) Samba сервер:
IP-адрес: 10.0.0.2
Не в домене.
smb.conf:
[global]
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = share
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
[public]
path = /home/public
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
Это должно быть примерно на 100% простым и понятным, верно?
Сценарий:
С компьютера с Windows 10 я пытаюсь получить доступ к серверу Samba:
\\10.0.0.2
Я получаю следующее сообщение об ошибке:
\\10.0.0.2 is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have access permissions.
A specified login session does not exist. It may already have been terminated.
Довольно обманчиво и совершенно нелепо.
В журнале самбы говорится:
[2016/10/14 19:10:55.209107, 0] smbd/service.c:995(make_connection_snum)
Can't become connected user!
Итак, поскольку в прошлом у меня было много плохого опыта (более или менее только) с общим доступом к файлам Windows, я открываю диспетчер учетных данных в Windows 10. Там я вставляю следующую новую запись в Windows Credentials:
Интернет или сетевой адрес: 10.0.0.2
Имя пользователя: пи
Пароль: [правильный пароль]
Теперь, когда я пытаюсь получить доступ к серверу Samba с \10.0.0.2, открывается окно проводника с видимой папкой "public", как указано в спецификации файла smb.conf
.
И когда я пытаюсь открыть (публичный) общий ресурс, я могу открыть его, сохранить и удалить файлы и т.д. (Если я пытаюсь создать новую папку, пять новых папок создаются в секунду, но это проблема для другого дня.)
Тем не менее, это полностью противоречит цели общего ресурса, так как я должен ввести действительные учетные данные в диспетчере учетных данных, чтобы он работал. Если учетные данные отсутствуют, не только общий ресурс не работает, но Windows даже не может подключиться к серверу.
У кого-нибудь есть идеи? Это только одна из нескольких проблем с общим доступом к файлам в Windows 10, но, возможно, если я получу эту возможность, некоторые другие проблемы будут решены в процессе.
Так как я люблю мучить себя и тратить часы своей жизни, я удалил и очистил Samba, перезагрузил (да, я знаю) и переустановил его. Затем я удалил все общие ресурсы из файла по умолчанию и добавил только это:
[share_name]
browseable = yes
path = /home/public
guest ok = yes
read only = no
create mask = 777
Теперь, с (или без) (ненужными) учетными данными, хранящимися в Credential Manager, я могу даже получить доступ к серверу Samba с той же ошибкой:
\\10.0.0.2 is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have access permissions.
A specified login session does not exist. It may already have been terminated.
Вот что говорит файл log.smbd
:
[2016/10/14 21:06:27.956914, 0] lib/util_sock.c:605(open_socket_in)
open_socket_in(): socket() call failed: Address family not supported by protocol
[2016/10/14 21:06:27.958765, 0] smbd/server.c:578(smbd_open_one_socket)
smbd_open_once_socket: open_socket_in: Address family not supported by protocol
[2016/10/14 21:06:27.997747, 0] printing/print_cups.c:110(cups_connect)
Unable to connect to CUPS server localhost:631 - Connection refused
[2016/10/14 21:06:28.011317, 0] lib/util_sock.c:605(open_socket_in)
open_socket_in(): socket() call failed: Address family not supported by protocol
[2016/10/14 21:06:28.012127, 0] smbd/server.c:578(smbd_open_one_socket)
smbd_open_once_socket: open_socket_in: Address family not supported by protocol
[2016/10/14 21:06:28.015107, 0] printing/print_cups.c:487(cups_async_callback)
failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
Я знаю, что Samba используется во многих профессиональных деловых организациях. Как, черт возьми, они заставляют его работать? Эти ошибки являются полностью ложными и не поддаются разуму!