Я только что установил Debian 8 (Jessie) на виртуальную машину. Я установил сервер Samba 4.1.17, чтобы иметь общие папки в моей сети. Я ничего не менял в конфигурации, кроме того, что следующие строки были добавлены в конец /etc/samba/smb.conf
файл:
[public]
comment = HTTPD public directory
read only = no
locking = no
path = /var/www
guest ok = no
Я добавил своих пользователей с помощью smbpasswd
и убедился, что у пользователей есть 777 привилегий на /var/www
каталог.
Я могу перечислить акции с smbclient -L \\\\debian64-plankje
как с локального хоста, так и удаленно с моей старой виртуальной машины Debian 7. (debian64-plankje
это имя хоста сервера)
Если я установлю guest ok = yes
тогда я могу анонимно подключиться к общему ресурсу с smbclient \\\\debian64-public\\public
, но с guest ok = no
установить я получаю ошибку tree connect failed: NT_STATUS_ACCESS_DENIED
.
Обширный поиск в Google не дал мне никаких подсказок для решения этой проблемы, которую я пытался решить последние несколько часов. Как и в случае с моим старым сервером, я использовал конфигурацию по умолчанию, к которой я добавил только упомянутые выше.
Ниже приведено содержание моих smb.conf
файл, надеюсь, вы поможете мне понять, почему я получаю NT_STATUS_ACCESS_DENIED
ошибка.
[global]
workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
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
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[public]
comment = HTTPD public directory
read only = no
locking = no
path = /var/www
guest ok = no
После проверки вывода smbtree -d3
, мое внимание привлекла следующая строка: resolve_lmhosts: Attempting lmhosts lookup for name DEBIAN64-PLANKJ<0x20>
. Оказывается, поскольку мое имя хоста анализируется как имя NETBIOS, я ограничен 15 символами. Мое исходное имя хоста debian64-plankje
было 16. Это привело к некоторому неожиданному поведению сервера Samba, когда анонимное соединение было успешным, а соединение с необходимыми учетными данными - нет.
Переименование имени хоста моего сервера на deb64-plankje
путем редактирования /etc/hostname
и /etc/hosts
, а затем перезагрузка (чтобы убедиться, что новое имя хоста было принято) решила проблему для меня :).