Понадобилось мне сделать домашнее хранилище для музыки, фильмов и всякой разнородной инфы. Итак, на сегодня задача следующая - настроить самбу, сделать шары и авторизацию пользователей. Настройка будет проводиться на ОС FreeBSD :).
Версия FreeBSD у меня следующая:
# uname -a
FreeBSD srv-home 6.4-RELEASE-p7 FreeBSD 6.4-RELEASE-p7 #0: Sat Oct 3 20:59:38 YEKST 2009 root@home.ru:/usr/obj/usr/src/sys/HAUNTED i386Идем в порты (обновляем их если нужно) и ставим самбу:
# cd /usr/ports/net/samba32
# make install cleanЯ выбрал следующие опции:
- CUPS
- WINBIND
- ACL_SUPPORT
- QUOTAS
- UTMP
- POPT
После установки правим конфиг /usr/local/etc/smb.conf. У меня получился такой:
#======================= Global Settings =====================================
[global]
# Имя рабочей группы
workgroup = HOME
# Имя сервера в сети
server string = Documents
# NetBIOS имя
netbios name = srv-home
# Режим работы самбы. Возможные значения - share, user, server, domain и ads.
# Многим пользователям обычно хватает режима - user
security = user
# Подсети, которым разрешен доступ к самбе
hosts allow = 192.168.7. 127.
# Загружать принтеры? Мне принтеры не нужны, я выключил эту опцию
load printers = no
printing = bsd
#guest account = nobody
# Путь к лог файлу. Я все отправляю в /dev/null, так samba работает чуток быстрее. Но для отладки логи нужны.
#log file = /var/log/samba/log.%m
log file = /dev/null
log level = 0
max log size = 50
# Шифровать пароли
encrypt passwords = yes
# Определяем в каком хранилище будут хранится пароли
passdb backend = tdbsam
include = /usr/local/etc/smb.conf.%m
# Оптимизация работы самбы, чуток добавляет скорости
max xmit = 65535
socket options = TCP_NODELAY SO_SNDBUF=32768 SO_RCVBUF=32768 SO_KEEPALIVE
# Интерфейс, на котором будет работать самба
interfaces = 192.168.7.250/24
local master = yes
domain master = yes
preferred master = yes
# Уровень ОС
os level = 65
# Разрешить netlogons?
domain logons = no
# Включить поддержку wins
wins support = yes
# Включить сервер времени
time server = yes
# Кодировка, в которой будут выводиться сообщения самбы в stdout и stderr
display charset = cp866
# Системная кодировка
unix charset = koi8-r
# Кодировка для DOS клиентов
dos charset = cp866
# Чувствительность к регистру
case sensitive = no
# Читать DOS атрибуты первыми?
#store dos attributes = yes
# Эти скрипты используются контроллером домена для работы с машинами, пользователями и группами
#add machine script = /usr/local/bin/ldapaddmachine '%u' computers
#add user script = /usr/local/bin/ldapadduser '%u' people
#add group script = /usr/local/bin/ldapaddgroup '%g'
#add user to group script = /usr/local/bin/ldapaddusertogroup '%u' '%g'
#delete user script = /usr/local/bin/ldapdeleteuser '%u'
#delete group script = /usr/local/bin/ldapdeletegroup '%g'
#delete user from group script = /usr/local/bin/ldapdeleteuserfromgroup '%u' '%g'
#set primary group script = /usr/local/bin/ldapsetprimarygroup '%u' '%g'
#rename user script = /usr/local/bin/ldaprenameuser '%uold' '%unew'
#============================ Share Definitions ==============================
[homes]
comment = Home Directories
browseable = no
writable = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
[Video]
comment = Video
path = /mnt/media/samba/video
browseable = yes
public = no
writable = yes
force user = smb_user
force group = smb_read
valid users = @smb_read, @smb_write
write list = @smb_write
read list = @smb_read
[Music]
comment = Music
path = /mnt/media/samba/music
browseable = yes
public = no
writable = yes
force user = smb_user
force group = smb_read
valid users = @smb_read, @smb_write
write list = @smb_write
read list = @smb_read
[Distrib]
comment = Distrib
path = /mnt/media/samba/distrib
browseable = yes
public = no
writable = yes
force user = smb_user
force group = smb_read
valid users = @smb_read, @smb_write
write list = @smb_write
read list = @smb_read
[Wallpapers]
comment = Wallpapers
path = /mnt/media/samba/wallpapers
browseable = yes
public = no
writable = yes
force user = smb_user
force group = smb_read
valid users = @smb_read, @smb_write
write list = @smb_write
read list = @smb_readНекоторые пояснения к конфигу:
- force user - это пользователь, под которым samba будет записывать данные в шары
- force group - тоже самое, только для группы
- valid users - пользователи и/или группы, которым разрешен доступ
- write list - пользователи и/или группы, которым разрешена запись в папку
- read list - пользователи и/или группы, которым разрешено чтение
В строках, где значение параметра начинается с @, это значит, что это правило применяется не к одному пользователю, а к группе.
Так же нужно создать сами папки и дать нужные права на них:
# mkdir /mnt/media/samba/video
# mkdir /mnt/media/samba/music
# mkdir /mnt/media/samba/distrib
# mkdir /mnt/media/samba/wallpapers
# chown smb_user:smb_write /mnt/media/samba/*
# chmod 750 /mnt/media/samba/*Когда все готово, то можно добавить самбу в автозагрузку и запустить ее.
# echo 'smbd_enable="YES"' >> /etc/rc.conf
# echo 'nmbd_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/samba startПроверяем работоспособность
# sockstat | grep -E "smbd|nmbd"В итоге должны получить что-то подобное:
root smbd 967 20 tcp4 *:445 *:*
root smbd 967 21 tcp4 *:139 *:*
root nmbd 962 9 udp4 *:137 *:*
root nmbd 962 10 udp4 *:138 *:*Как видно все работает. Можно пользоваться :)
чт, 27/08/2020 - 21:28
Добрый день. А можете пояснить, для чего в указанном примере нужен параметр "force group = smb_read" ?
Спасибо.
пт, 28/08/2020 - 08:19
Данная директива необходима, чтобы владелец (групповой) записанных файлов и папок был smb_read
пт, 28/08/2020 - 12:07
Да, это я понял.Получается, на все расшаренные папки сначала ставим владельца @smb_write, а потом то, что создается через самбу - имеет владельца @smb_read, так?
Я вот и пытаюсь понять - зачем? Что это дает? Почему не делается Force group - @smb_write ?
Спасибо.
PS. Ваша Капча - просто космос. =)
пт, 28/08/2020 - 21:42
Не совсем так. Раньше идея была в том, чтобы файлы шар на сервере принадлежали отдельному пользователю (думалось, что так безопаснее). То есть все файлы и директории имели владельца smb_user:smb_read. Этот пользователь и группа создавались руками и никак не использовались для авторизации на сервере.. Сейчас я от этого ушел, и везде ставлю root:wheel.
Сами же пользователи - создаются на сервере и включаются в группу smb_read, чтобы они имели право доступа к шаре (задано в директивах - valid users и read list). Если же нужно разрешить пользователю запись, то на сервере этот пользователь включался в группу smb_write (директива - write list).
Такая запись директивы не корректна. Здесь нужно указывать конкретного пользователя, который будет владельцем файлов.
В настоящее время настройки шар у меня выглядят так (может понятнее будет):
В данном случае, чтобы юзер имел доступ к этим шарам, его нужно добавить в группу smb_video_read или smb_music_read, либо в обе для доступа к обоим шарам. Для записи пользователь добавляется в соответствующие группы.
Неужели вопросы сложные ))).
вс, 30/08/2020 - 01:39
Да, спасибо за уточнение про права - теперь понял.
Про Капчу: да нет, я не про сложность, а просто приятно видеть нормальные человеческие вопросы. =)
вт, 09/06/2026 - 17:00
Excellent article! I appreciated reading this. As a betting enthusiast based in Nigeria, I
usually search for The Verified BET9ja promo code this 2026 is Yohaig best promotions before joining.
For anyone looking to get started, quick note, the Legally
Validated Bet9ja promo code for 2026 is YOHAIG, and it unlocks an extra bonus when creating an account.
Looking forward to more posts!
ср, 10/06/2026 - 00:44
Fantastic write-up! Thanks for sharing this.
Being a punter from Nigeria, I tend to look out for
the most rewarding deals before joining. If you're looking to get
started, here's a tip, The Active Bet9JA promo code 2026 is YOHAIG Active Bet9ja
Promo Code this 2026 is yohaig, which gives you an extra
boost when creating an account. Bookmarking this
for later!
ср, 10/06/2026 - 02:58
Really helpful article! I found value in this information. Being a sports betting fan based
in Nigeria, I tend to search for The Mandatory Bet 9ja Promo Code 2026 is Yohaig top promotions before registering.
For anyone interested, just so you know, the Accredited
Bet9ja Promo Code for 2026 is Yohaig, which gets you
an extra boost when you sign up. Looking forward to more posts!