Samba - установка и настройка
Samba - это программа работающая по протоколу smb или cifs, способная обеспечивать взаимодействие систем на базе Linux с системами гед стоит ОС от Microsoft.
Рассмотрим установку Samba и настройку серверной её части для работы в сети Microsoft. То есть мы имеем сервер с установленным на него ОС Gentoo куда и хотим поставить Samba, которая позволит всем компьютерам локальной сети видеть на сервере с ОС Gentoo "расшаренные" папки в стиле того как это делает ОС Windows.
Установка
Сперва вносим USE флаги в конфиг:
net-fs/samba acl aio netapi pam readline syslog winbind
При этом используются следующие USE флаги суммарно:
Use Flags: acl aio netapi pam readline winbind syslog (?)
- acl - Enables Access Control Lists. The ACL support in Samba uses a patched ext2/ext3, or SGI's XFS in order to function properly as it extends more detailed access to files or directories; much more so than typical *nix GID/UID schemas.
- aio - Enable asynchronous IO support
- netapi - Enable building of netapi bits
- pam - Include support for pluggable authentication modules (PAM). This provides the ability to authenticate users on the Samba Server, which is required if users have to login to your server. The kerberos USE flag is recommended along with this option.
- readline - Link Samba against libreadline. This is highly recommended and should probably not be disabled.
- server - Enables the server part
- syslog - для логирования
- winbind - Winbind allows for a unified logon within a Samba environment. It uses a Unix implementation of Windows RPC calls, PAM and the name service switch (supported by the c library) to enable Windows NT domain users to appear and work as Unix users on a Unix system.
Для установки в Gentoo воодим:
Настройка сервера
Для использования NetBIOS'а Windows'ом возможно имеет смысл поправить строку в файле
hosts: files dns wins
добавив туда слово wins
Для начала скопируем полностью пример конфигурационного файла с коментариями в папку, где должен находится рабочий конфиг.
или сразу создадим кофиг командой
В файле /etc/samba/smb.conf.example всё очень подробно прокоментированно, так что есть смысл дочитать его до конца. Если всё же что-то будет не ясно или не до конца понятно то милости просим в страницы мана:
После того, как файл настроен необходимо его сохранить в вашем любимом редакторе и запустить сервер самбы:
Кстати заметте, что при перезапуске сервера через консоль, он автоматически в дополнение к демону smbd перезапускает в качестве зависимости и демон nmbd
Далее добавляем сервер в автозагрузку:
Рассматривать весь файл конфигурации я не буду, а раскажу, как можно настроить сервер на работу в обычной домашней локальной сети для удобной организации файловой "свалки" с возможность полного доступа к ней всех членов домашней сети, включая выполнение файлов (к примеру удобно воспроизводить видео не скачивая как требует того протокол FTP)
Настройка на полный доступ для домашней сети
Приведу пример конфига уже с моими коментариями прямо в нём:
# Samba config file created using SWAT
# from 192.168.0.104 (192.168.0.104)
# Date: 2008/09/05 17:00:49
#Глобальные настройки
[global]
netbios name = Router_a
#рабочая группа домашней виндовой сети
workgroup = FRC
#Название которое отображается в заголовке окна при заходе на сервер (%v - версия самбы)
server string = Router_a
#Говорит о типе доступа на сервер. SHARE - это простая "шара", USER - для доступа по реквизитам логин/пароль
# security = SHARE
security = User
#Всех гостей интерпритируем как не верных юзеров
map to guest = Bad User
#Степень подробности логов (от 1 до 10)
log level = 3
#Путь куда логи сохраняем - %m это имя хоста зашедшего на сервер
log file = /var/log/samba/log.%m
#Максимальный размер лога в килобайтах
max log size = 10000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#Как я понял винда очень не любит когда кто-то выступает в роли мастера и завладевает конектом кроме неё самой
preferred master = No
local master = No
#Не использовать прокси
dns proxy = No
#Интерфейсы, которые слушает демон
interfaces = 192.168.0.0/24
#Разрешённые к коннекту подсети (отсутствие последней цифры означает что она может быть любой)
hosts allow = 192.168.0., 192.168.1.
#read / write share
[secret]
path = /path/to/secret/readwrite/share
read only = No
valid users = username
create mask = 0740
directory mask = 0750
guest ok = no
#only read share
[public]
path = /path/to/public/readable/share
read only = Yes
valid users = username
guest ok = no
И самое главное не забыть дать нужные права к папкам с шарами (учитывая группы и пользователей, а так же тот факт, что не все могут и должны читать и писать). Напрмер, вот такие права можно дать:
Добавляем польователя шары
Самба использует юзеров реально существующих в системе (файл /etc/passwd ), но при этом они должны быть занесены в собственную БД юезров самбы.
Поэтому создаём пользователя в ОС, но без права залогинится и использовать шел:
Тут создаётся пользователь с именем samba с первчиной (основной) группой primgrp и допольнительной группой secgrp
Далее даём ему любой сложности рандомный пароль, запоминать который не нужно. Чем сложнее тем лучше =)
Теперь добавляем в БД самбы нового юзера и попутно задаём ему тот пароль, который будет он использовать при подключении сетевого диска.
После чего рестартим самбу.
Чтобы всё работало как требуется, главное проследить права, которые мы имеем у пользователя и его групп на файлы и папки той директории, которую мы шарим через самбу.
Ссылки
- HOWTO Samba в Gentoo
- pdbedit]