<Mr.ElectroNick>
/* personal website */

Установка и настройка Samba для расшаривания между Linux машинами

Учимся ставить, настраивать, запускать, останавливать, перезапускать, добавлять безопасность и вообще по всякому извращаться над Samba в командной строке…

Начало всех начал — установка

Для начала собственно нужно поставить саму Samba

Ставим так

sudo apt-get install samba

Configuring /etc/samba/smb.conf

Придется создать конфиг Samba по новой для своего же удобства.

Переименовываем /etc/samba/smb.conf в /etc/samba/smb.conf.old что в командной строке делается так:

mv /etc/samba/smb.conf /etc/samba/smb.conf.old

Открываем /etc/samba/smb.conf в любом текстовом редакторе

Копипастим всё что ниже:

[global]
; Uncomment this if you want a guest account
; guest account = nobody
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
share modes = yes

[homes]
comment = Home Directories
browseable = no
read only = no
create mode = 0750

[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes

Нужно перезапустить Samba после действий выше, что делается так:

/etc/rc.d/init.d/samba stop
/etc/rc.d/init.d/samba start

или так:

/etc/rc.d/init.d/samba restart

Если на сервере более чем один сетевой интерфес (2 сетевухи например) Samba может смотреть не туда куда нужно.
Если так — вы можете прикрепить Samba к одному конкретному интерфейсу добавив в секцию [global] строчку типа такой:

interfaces = 192.168.1.1/24

Замените IP на нужный и обратите внимание на /24 сразу за IP — это почти тоже самое что и маска подсети 255.255.255.0 — т.е. Самба будет видна для машин у которых IP начинаются с 192.168.1

Чтобы расшарить директорию для публичного доступа, создайте копию секции [tmp], поменяйте имя с tmp на public и добавте недостающие строки чтобы получилось следующее:

[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no

Чтобы сделать эту шару читабельной для всех, но доступной на запись только пользователям из группы ubuntu, поменяйте настройки чтобы получилось следующее:

[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
write list = @ubuntu ; Именно эта строка и определяет доступ на запись для группы

После этого я бы рекомендовал настроить Samba для работы с закодироваными (криптоваными) паролями.

В секции [global] файла /etc/smb.conf, добавляем следующие строки:

encrypt passwords = yes
smb passwd file = /etc/smbpasswd

Если машины которые будут подключаться к этой шаре и сервер на которой шары расположены используют крипченые пароли
у вас не получиться увидеть доступные шары без авторизации.

Вроде всё, сохраняемся и выходим.

Запуск SMB

sudo /usr/sbin/smbd -D && /usr/sbin/nmbd -D

Пробуем посмотреть доступные шары, для этого запускаем:

/usr/bin/smbclient -L host

Пример:

/usr/bin/smbclient -L ubuntuserver

Как видим ‘host’ именем сервера на котором запущена Samba. Если на Samba сервере настроена авторизация, будет запрошен пароль. Дальше система выдаст вам страницу информации о какие шары вам доступны.

Для того чтобы посмотреть шару ‘public’ на машине ‘ubuntuserver’ (//ubuntuserver/public) вам нужно следующее:

/usr/bin/smbclient service <password>

Пример:

/usr/bin/smbclient ////ubuntuserver/public mypwd

По причине ограничений оболочки (шЕла, консоли, командной строки) вам нужно дублировать обратные слешы, т.е. вместо \\ писать \\\\.

И так как только вы войдете в консоль ‘smb: \’. Вы можете набрать ‘h’ для менюхи помощи.

Подключение шары

Скажем мы хотим подключить директорию Ubuntu расшареную на ubuntuserver к директории /home/Ubuntu на локальной машине.
Типичная команда подключения (также часто звучит в оригинале как «маунт») следующая:

smbmount "\\\\ubuntuserver\\Ubuntu" -U rtg2t -c 'mount /home/Ubuntu -u 1000 -g 1000'

Обратите внимание на флажки -u и -g. UID и GID. Замените их на свои значения.

Надеюсь информация изложеная выше будет вам полезна!