2010-07-05

Файлообменник на samba. Часть 1

Возникла необходимость создать файлообменник из одной сети в другую, с запретом удаления передаваемых файлов, чтобы контролировать, что гуляет из сети в сеть. В последнее время в деле создания критически важных сервисов мой выбор падает на Arch. Вот и в этот раз мой выбор пал не него :)
После некоторых экспериментов со схемами передачи файлов, остановился на следующей: вводим Samba-сервер в домен, после чего доступ будет организовываться только через доменные учетные записи. Каждому пользователю при входе создается домашняя папка по его логину в домене. Попутно можно создать общие папки для всех пользователей.
Процедура настройки линуксового сервера с samba в домен Windows расписана достаточно подробно в журналах (LXF200910) и сети Интернет, поэтому смысла перетирать все это заново нет. Технология создания домашних папок пользователей описана здесь.
В процессе настройки доступа к домашней папке наступил на грабли. Прописав в smb.conf заменитель (separator) обратного слэша, я безуспешно пытался войти в созданную папку. Оказалось, заменитель надо ставить везде в конфиге (например, YOUDOMAIN+%S). После этого все заработало.
Ниже привожу свой smb.conf:
#======================= Global Settings =====
[global]

workgroup = YOUDOMAIN

server string = Samba Server

security = ads

netbios name = SHARE

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

max log size = 50

realm = YOUDOMAIN.LOCAL

auth methods = winbind

idmap uid = 10000-20000
idmap gid = 10000-20000

winbind separator = +

winbind enum users = Yes
winbind enum groups = Yes

winbind use default domain = Yes

;winbind offline logon = Yes

preferred master = No

panic action =

log file = /var/log/samba/log.%m
debug level = 0
syslog = 0

interfaces = 10.10.0.0/24 10.11.0.0/16

obey pam restrictions = Yes

#======================= Share Definitions ===
[homes]
valid users = YOUDOMAIN+%S
browseable = no
writable = yes
create mode = 0400
directory mode = 0700
read list = YOUDOMAIN+%S
write list = YOUDOMAIN+%S

;[data]
; path = /media/data
; valid users = Administrator, @"Domain Users"
; admin users = Administrator
; write list = @"Domain Users"
;; read list = @"Domain Users"
; inherit permissions = yes
; inherit owner = yes

Комментариев нет: