В настоящий момент, пакеты Samba для Debian включают в себя:

samba — файл- и принт- сервер для UNIX.

samba-common — общие файлы Samba, используемые как сервером, так и клиентом.

smbclient — простой клиент для Unix.

swat — Samba Web Administration Tool, веб-клиент.

samba-doc — документация по Samba.

smbfs — команды монтирования и отмонтирования для smbfs (ядра версий 2.2.x и выше)

libpam-smbpass — подключаемый модуль авторизации для базы паролей SMB.

libsmbclient — разделяемая библиотека, которая позволяет приложением общаться с SMB серверами.

libsmbclient-dev — разделяемые библиотеки libsmbclient.

 

winbind — служба для получения информации о пользователях и группах от серверов на Windows NT.

python2.3-samba — модуль для python, дающий доступ к различным аспектам Samba.

 

Порт Протокол Служба Демон Описание

137 UDP netbios-ns nmbd служба имен NetBIOS

138 UDP netbios-dgm nmbd служба датаграмм NetBIOS

139 TCP netbios-ssn smbd NetBIOS over TCP (служба сеансов)

445 TCP microsoft-ds smbd NetBIOS over TCP (служба сеансов)

 

Установка Samba в Debian.

#apt-get install samba samba4-clients

Правим конфигурационный файл samba с помощью команды:

#nano /etc/samba/smb.conf

 

Ниже приведен простой рабочий конфиг global

[global]

 

workgroup = WORKGROUP

hosts allow = 192.168.0.0/24

interfaces = eth0

log file = /var/log/samba/log.%m

max log size = 1000

syslog = 0

guest account = nobody

security = share

dos charset = cp866

unix charset = UTF-8

 

workgroup — записываем имя нашей рабочей группы или домена

hosts allow — описываем подсеть, которая будет иметь доступ к нашему серверу

interfaces — перечисляем сетевые интерфейсы, на которых будут приниматься соединения (возможно значение all)

log file = /var/log/samba/log.%m

max log size = 1000

syslog = 0

В этих переменных описываются параметры ведения логов нашего Samba-сервера

guest account — задаем соответствие между пользователем Гость и системным пользователем

security = share — используется в случае настройки беспарольного доступа.

dos charset — указывает кодировку, в которой Samba будет общаться с клиентами, не поддерживающими Unicode

unix charset — указывает кодировку компьютера на котором работает Samba

 

Далее описываются отдельно все директории, к которым открыт доступ

Пример безпарольного доступа

 

[test]

path = /home/test

comment = test

printable = no

writable = yes

guest ok = yes

create mask = 0666

directory mask = 0777

 

comment — сетевое имя папки

writable — разрешена ли запись в папку общего доступа

guest ok — разрешен ли гостевой доступ

create mask — описываются права для вновь созданного файла

directory mask — описываются права для вновь созданного каталога

 

Пример доступа для указанных пользователей

Изменим некоторые параметры в секции Global.

А точнее, вместо security = share напишем security = user

Так же следует внести изменения в секцию описания папки общего доступа. Удалим строку guest ok = yes

и добавим строку

write list = user1

Где user1 пользователь, который имеет полный доступ к папке.

Теперь нужно создать пользователя user1 в системе

#adduser user1

и добавить системного пользователя в пользователи самбы

#smbpasswd -a user1

Обратите внимание! Пароль пользователя в системе и пароль пользователя к ресурсам Samba могут быть разными.

Теперь доступ к нашей папки общего доступа будет с паролем.

Если завести аналогичным образом второго пользователя, то у него доступ к данной папке будет только для чтения.

Можно полностью ограничить доступ пользователя user2 к нашей папке общего доступа. Для этого на сервере создается группа, например, share

#addgroup share

И в эту группу добавляется пользователь user1

#addgroup user1 share

Далее на папку в системе выставляются права 770

#chmod 770 /var/local

И изменяется владелец папки

#chgrp share /var/local/

Теперь пользователь user2 вообще не сможет зайти в нашу папку общего доступа.

Проверить правильность конфигурационного файла можно командой:

#testparm -S

После настройки необходимо перезапустить samba:

#/etc/init.d/samba restart

Просмотр общих ресурсов компьютера

#smbclient -L 127.0.0.1 -U%

Еще один способ подключения для анонимного пользователя с командной строкой

#smbclient -U nobody //127.0.0.1/test

Монтирование samba-ресурса

для анонимного пользователя nobody

#mount -t cifs //127.0.0.1/home /mnt/ -o user=nobody,password=,workgroup=WORKGROUP,ip=127.0.0.1,utf8

для пользователя user1

#mount -t cifs //127.0.0.1/home /mnt/ -o user=user1,password=1,workgroup=WORKGROUP,ip=127.0.0.1,utf8