Раздача файлов по сети(samba)

21.01.2010 от admin 0

Продолжаю не большой цикл статей о том как настроить свой домашний сервер. В предыдущих статьях я рассказал о настройке своего хостинга, сегодня же мы узнаем как настроить раздачу файлов по сети, с нашего не большого сервера.

Так как сервер у нас стоит Linux(Ubuntu Server), настраивать мы будем SAMBA.

Описание из wiki:

Samba — программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Начиная с третьей версии Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows, и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.

Samba работает на большинстве Unix-подобных систем, таких как GNU/Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы GNU/Linux.

Ну что же, начнем устанавливать. Открываем консоль(или удаленно через putty(под windows)) и набираем команды:

Что бы все последущие команды производились по root

sudo su

Устанавливаем SAMBA:

aptitude install libcupsys2 samba samba-common

После установки нужно настроить наш сервер Samba, для этого мы отредактируем файл настроек:

nano /etc/samba/smb.conf

И увидим конфиг нашего сервера samba. Ниже я преведу свой конфиг с некоторыми комментариями. Если вам не охота самим копаться как и что настроить, можете использовать мой конфиг:

; Глобальные настройки сервера
[global] ; General server settings
; Имя компа, как будет видно в сетевом окружении
netbios name = Home-Server
server string =
; Рабочая группа клиентов
workgroup = WORKGROUP
announce version = 5.0
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
passdb backend = tdbsam
security = user
null passwords = true
; Файл для альясов имен юзеров
username map = /etc/samba/smbusers
name resolve order = hosts wins bcast
wins support = yes
; Поддержка принтеров
printing = CUPS
printcap name = CUPS
; Логи
log file = /var/log/samba/log.%m
syslog = 0
syslog only = no
; Настройка привязки к интерфейсам, на каких слушать, если не указано слушает на все интерфейсах
; interfaces = lo, eth0
; bind interfaces only = true
;
;[print$] ; path = /var/lib/samba/printers
; browseable = yes
; guest ok = yes
; read only = yes
; write list = root
; create mask = 0664
; directory mask = 0775
;
;[printers] ; path = /tmp
; printable = yes
; guest ok = yes
; browseable = no
;
;[DVD-ROM Drive] ;path = /media/cdrom
;browseable = yes
;read only = yes
;guest ok = yes
; Шара жесткого дискапапки
; Имя шары, видно у пользователей
[POPSA] ; Путь к расшариваемому дискупапке
path = /media/sda1
; Можно ли просматривать
browseable = yes
; Можно только читать
read only = no
;Гостевой вход
guest ok = no
;Права доступа на создаваемые файлы
create mask = 0644
;Права доступа на создаваемые папки
directory mask = 0755
; Привязка к определенному имени пользователя или группе, имена через пробел
; force user = user1 user2
; force group = group1 group2

После того как мы закончим с настройкой конфига, нужно разобраться с пользователями, так как Samba работает с уже имеющимеся пользователями в системе. Предположим что у нас уже есть пользователь user1, нам нужно внести этого пользователя в базу Samba и назначить ему пароль для доступа к ресурсам нашего сервера:

smbpasswd -a user

После будет предложено ввести пароль, ввели? Отлично, продолжаем, нужно включить пользователя, для этого пишем:

smbpasswd -e user

Далее создадим альяс для имени пользователя user1 что бы облегчить себе доступ с Windows машины на которой у нас например пользователь с именем User, для этого создадим и отредактируем файл /etc/samba/smbusers:


nano /etc/samba/smbusers

И добавим в файл следущее:

# Unix_name = SMB_name1 SMB_name2
user1 = User

На этом настройка закончена, необходимо перезапустить сервер Samba:

/etc/init.d/samba restart

После перезапуска можно начинать использовать расшаренные ресурсы нашего сервера.