Простейшая Samba на FreeBSD с авторизацией для доступа

Задача:
Дать доступ к ресурсам, расположенным на FreeBSD-сервере, клиентам с операционной системой от M$ посредством Samba-сервера (протокол SMB/CIFS). Доступ должен предоставляться по логину/паролю хранящихся в самой samb’e, а не в разных протоколах для доступа к службам каталогов.
Задача такого уровня, можно сказать, простая, но с ней сталкиваются довольно часто(особенно дома), тем более она актуально не только для FreeBSD, но и для других Unix-like систем.
Приступим.
Ставим samba34:
cd /usr/ports/net/samba34
make config

Выбираем опции:
Options for samba34 3.4.9
[ ] LDAP With LDAP support
[ ] ADS With Active Directory support
[ ] CUPS With CUPS printing support
[X] WINBIND With WinBIND support
[X] SWAT With SWAT WebGUI
[ ] ACL_SUPPORT With ACL support
[ ] AIO_SUPPORT With Asyncronous IO support
[ ] FAM_SUPPORT With File Alteration Monitor
[X] SYSLOG With Syslog support
[ ] QUOTAS With Disk quota support
[ ] UTMP With UTMP accounting support
[ ] PAM_SMBPASS With PAM authentication vs passdb backends
[ ] DNSUPDATE With dynamic DNS update(require ADS)
[ ] AVAHI With Bonjour service discovery support
[ ] EXP_MODULES With experimental modules
[X] POPT With system-wide POPT library
[ ] MAX_DEBUG With maximum debugging
[ ] SMBTORTURE With smbtorture

ставим:
make BATCH=yes -C/usr/ports/net/samba34 install clean
rehash

в /etc/rc.conf добавляем:
samba_enable="YES"

конфигурационный файл самбы /usr/local/etc/smb.conf:
#======================= Global Settings =====================================
[global]

# WORKGROUP - название рабочей группы
workgroup = WORKGROUP

# server string -комментарий к серверу, который будет
# виден клиентам, например в проводнике.
server string = vbpc003 smb

# security = user - включаем авторизацию по логину и паролю.
security = user

# hosts allow - разрешить доступ только в указаных подсетях
hosts allow = 10.36.1. 192.168.1. 127.

# load printers = no - не показывать принтеры
load printers = no

# log file - файл журнала
log file = /var/log/samba/log.%m

# max log size - максимальный размер журнала
max log size = 50

# local master = no - говорим демону nmbd не пытаться стать
# локальным мастер-браузером. Да и вообще, домена не будет, поэтому
local master = no
domain master = no

# Запрещаем nmbd делать запросы к DNS
dns proxy = no

#================== Открытые ресурсы ==================

# resurs_01 - название открываемого ресурса
[resurs_01]
# comment - комментарий к ресурсу, будет виден пользователям в проводнике m$
comment = resurs_01

# path - открываемая для доступа директория
path = /путь/до/resurs_01

# browseable = yes - отображать ресурс в списке доступных ресурсов.
browseable = yes

# writable = no - запретить запись в открытую директорию
writable = no

# guest ok = no - запретить гостям ходить в resurs_01
guest ok = no

# resurs_02 - не видим в проводнике, попасть туда можно
# явно написав полный путь (\\ip_pc\resurs_02).
# Запрещена запись в resurs_02
# и гостю в доступе отказано.
[resurs_02]
comment = resurs_02
path = /путь/до/resurs_02
browseable = no
writable = no
guest ok = no

# resurs_03 - виден в проводнике,
# запись разрешена
# гостям вход разрешён
[resurs_03]
comment = RW resurs_03
path = /путь/до/resurs_03
browseable = yes
writable = yes
guest ok = yes

стартуем самбу:
/usr/local/etc/rc.d/samba start

после внесения изменений в /usr/local/etc/smb.conf самбу надо всегда рестартовать:
/usr/local/etc/rc.d/samba restart

авторизация для доступа на ресурс samba будет производиться по логину и паролю.
создаём пользователей в самбе через smbpasswd (выполняем от root’a):
smbpasswd -a administrator
New SMB password:
Retype new SMB password:
Added user administrator.

Примечание:
Пользователь administrator должен присутствовать в системе (выполнить cat /etc/passwd для получения информации о имеющихся в системе пользователях)
Учётная запись с именем administrator будет внесена в базу пользователей самбы.

Для отключения учётной записи в самбе:
smbpasswd -d administrator
Disabled user administrator.

Для включения отключённой учётной записи:
smbpasswd -e administrator
Enabled user administrator.

Для удаления пользователя из базы samb’ы:
smbpasswd -x administrator
Deleted user administrator.

Посмотреть активные подключения:
smbstatus

Примечание:
1) не забываем про порты с 137 по 139 в фаерволе для samb’ы, они должны быть открыты.

2) и ещё не забываем про доступ на уровне файловой системы: Если вы открываете через samb’у, например, /путь/до/resurs_03 на запись для пользователя administrator, то этот же пользователь должен иметь права на запись в /путь/до/resurs_03 во FreeBSD. Так как пример наипростейший(домашний вариант, так сказать), то можно сделать в консоли:
chmod 0777 /путь/до/resurs_03
(тоесть дать полный доступ на /путь/до/resurs_03 всем пользователям freebsd) и раздавать права на уровне samb’ы.

Всё изложенное выше — это минимум для организации домашней файлопомойки клиентам с операционной системой от m$ с авторизацией для доступа.

Примечание:
Полезный ресурс со всеми опциями smb.conf

Добавить комментарий