Что-то постоянно меняется в этом мире, и это мне не нравится (c).
Понадобилось поставить 4 версию самбы и настроить, чтобы можно было подключаться с Win XP (да хоть NT) до Win 10. Взялся настраивать… И замучился! Всё постоянно меняется в Samba, старые конфиги не работают, примеры с «официальных» гайдов — аналогично. Гадость! Не люблю этого.
Кто будет читать в поиске решения, смотрите ниже, оно там есть. Собственно, уже здесь, с комментариями:
[global]
# рабочая группа и имя сервера
netbios name = SERVER
workgroup = WORKGROUP
# разрешённые версии протокола от и до.
client min protocol = NT1
client max protocol = SMB3
# здесь будет журнал и его опции. 2 - достаточная подробность журнала. Если вы параноик, ставьте 5 и более.
log file = /var/log/samba/log.%m
log level = 2
max log size = 1000
logging = file
# без этой штуки я даже не знаю, как вы будете авторизоваться на сервере:
ntlm auth = yes
# без этой штуки с сетевого пути или диска ничего не запустится:
acl allow execute always = True
# этим мы указываем с какими атрибутами должны создаваться файлы:
create mask = 0664
directory mask = 0775
# это как-то должно помочь отладке. Кто знает, что оно делает?
panic action = /usr/share/samba/panic-action %d
# сервер у меня будет одиноко стоящий. Если у вас нет - напишите здесь другие слова :)
server role = standalone server
obey pam restrictions = yes
# эта штука нужна для того, чтобы человек не поменял пароль пользователя системы через samba
unix password sync = no
# а это - чтобы можно было его поменять, если будет надо и выше поставите yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# это разрешит менять пароль пользователя samba
pam password change = yes
# неудачные коннекты будем отвергать
map to guest = bad user
# это стоит разрешить, если надо открыть публичный доступ к чему-либо на сервере без авторизации
usershare allow guests = yes
# пример ресурса, показывающего пользователю его домашнюю директорию в режиме только чтения
[homes]
comment = Home Directories
browseable = no
read only = yes
valid users = %S
# вместо этой секции сервер покажет установленные у него принтеры
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
# клиенты Windows будут смотреть сюда в поисках дровишек для принтеров
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# пример вполне рабочео ресурса для пользователя username
[user]
# это если no, то надо будет сначала снять readonly атрибут и только потом можно будет удалить
delete readonly = yes
# списки пользователей с режимами доступа
valid users = username
write list = username
# пользователь и группа, владеющие файлом в локальной файловой системе
force user = nobody
force group = sambashare
# местоположение ресурса в локальной файловой системе
path = /samba
# доступ гостю закрыт
guest ok = no
# режим доступа "вообще"
writeable = yes