Site Tools


samba

Книга

Изучение проходит по переводу Сергей Тренина за что ему, отдельное спасибо за огромную, проделанную работу. http://samba-doc.ru/samba3example/index.html
Поскольку в книги огромное колличество конфигов, я вынес это на отдельную страницу SMB готовые конфиги

official doc

Английский(актуальный) мануал по smb.conf http://us3.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
и его русский анналог http://smb-conf.ru/

Еще куча каких то мануалов в числе которых выше приведенный smb.conf. Судя по всему тут обсуждается применение http://us3.samba.org/samba/docs/man/manpages-3/
Samba how-to на английском. Она огромно и врятли я ее буду читать, но пусть полежит тут http://samba.org/samba/docs/man/Samba-HOWTO-Collection/

smb.conf

Все их я сюда не умещю, так как их слишком много, но запишу всякие вкусности на будущее

security = USER

Один из главных параметров самбы. Дает клиенту знать, о том каких действий от него ждут. AHTUNG! При USER или SERVER в сети рабочей группы имеется глюк. Ручной ввод логин-пароль будет игнорироваться и использоваться логин-пароль который использовался при входе.

SHARE - Вы спокойно заходите на сервер, но во время запроса папки будте добры послать логин-пароль.
USER - Гостевые учетки не работают. При заходе на сервер сначала нужно подтвердить свой логин-пароль а потом вы у него можете запрашивать.
DOMAIN - Для клиента равносильно USER, но сервер будет проверять пароль на контроллере домена, при этом пользователь должен быть как на контроллере, так и в нашей unix. Гости вроде доступны при помощи guest account
SERVER - Для клиента равносильно USER. Отправленный серверу логин-пароль перенаправляется другому SMB серверу и пытается провериться там. Если это не выйдет, перейдет в режим USER. Может шифроваться.
ADS - Заставляет Самбу работать как член AD. На борту должна быть Kerberos. Этот пораметр невкоем случае не создает доменную сеть.

map to guest = Never (G)

Что делать с запросами, которые не удалось аутентифицировать в UNIX
Never Если пользователь не ввел свой логин-пароль корректно, то шлем его подальше.
Bad User Если пользователь существует то проверяется пароль. Если не существует, то заходим как гость.
Bad Password Если при вводе правельного логина введен не действительный пароль, то заходим как гость. DANGER! пользователи не поймут что неправильно зашли.
Bad Uid Только для security = {domain|ads} . Если пользователь прошол аутентификацию, но не имеют действительной учетки Unix, то заходим под гостем

guest account = nobody (G)

Задаем учетную запись UNIX для гостевого входа

force user = some_user(S)

Все пользователи используют эту UNIX учетку. Полезно тем, что при совместной работе в расшаренной папке, не будет конфликтов разрешений.

read only = yes(s)

Само сабой понятно, но хочется удилить внимание, что этот пораметр по дефаулт стоит в yes и чтобы разрешить запись необходимо сделать запись read only = no

nt acl support = yes (S)

yes - приобразовывать в права формата WIN
no - оставлять права формата UNIX

smbclient

smbclient -L localhost -U%

Обращаемся к локальной самбе не используя логина(гость)

Ошибки:

# smbclient -L serverwork -U%
Conversion error: Incomplete multibyte sequence()
protocol negotiation failed: NT_STATUS_INVALID_PARAMETER

Означает, что где то затисалась кодировка не в UTF-8
Правильный вариант решения проблемы: найти и устранить все кодировки кроме арийско верной UTF-8
Забавный вариант решения проблемы: откатиться на ту версию smbclient где небыло таких проблем:

apt-get purge smbclient
wget http://launchpadlibrarian.net/101581986/smbclient_3.6.3-2ubuntu2_i386.deb
dpkg -i ./smbclient_3.6.3-2ubuntu2_i386.deb
smbclient -L serverwork -U%
all worked fine

Но это не означает, что smb заработает в других программах, которые используют свои библиотеки для подкчлючения

Discussion

Constantin Conovaloff, 2017/11/15 15:41

https://askubuntu.com/questions/781963/simple-samba-share-no-password

Yes, Samba can be a pain. I use it for my home as well as work.

The first thing you should do is start over from scratch to make troubleshooting easier. You can do this by runing the commands below in the terminal.

sudo apt-get purge samba
sudo rm -rf /etc/samba/ /etc/default/samba
sudo apt-get install samba
Then go to the folder on the samba server that you want to share, and make sure that the user nobody can read and write to the share. This is because the user nobody is the username windows clients use. I usually just make a folder in the / directory just to keep things simple. If you have not modified the permissions already, use the commands below.

sudo chown -R nobody.nogroup the_folder
sudo chmod -R 777 the_folder
You can also test to see if nobody can write to the directory by running the following command as root.

sudo -u nobody vi test_file
Edit your /etc/samba/smb.conf and add the lines below the [printers] share definition.

[share_name]              ;the share name can be what ever you want
browseable = yes
path = the_complete_path_to_the_shared_folder
guest ok = yes
read only = no
create mask = 777
Then when you are done save it and run the following.

testparm
This will will warn you if you made any typos. Next, you just need to restart the samba services.

sudo systemctl restart smbd
sudo systemctl restart nmbd
You could leave a comment if you were logged in.
samba.txt · Last modified: 2016/03/11 15:27 by conovaloff

Page Tools