Samba (Српски)

From ArchWiki
Jump to: navigation, search
Кратак преглед help replacing me
Инсталација, конфигурисање и решавање проблема Samba протокола
Слично
NFS
Samba/Active Directory domain controller

Samba је реимплементација SMB/CIFS мрежног протокола, који олакшава дељење фајлова и штампача међу Linux и Windows системима као алтернатива за NFS. Неки корисници кажу да се Samba лако конфигурише и да је рад веома једноставан. Али, многи корисници наиђу на проблеме са његовим комплексним и неинтуитивним механизмом. Препорука је да се корисници држе следећих упутстава.

Contents

Инсталација

Инсталација само client програма је сувишна за ститеме који не деле фајлове, само приступају дељеним фајловима:

# pacman -S smbclient

Да би дељене фајлове учинили доступним, потребно је инсталирати Samba server пакет (који ће такође инсталирати и smbclient):

# pacman -S samba

Daemon је инсталиран са сервереом и мора се покренути да би Samba радила. Samba користи FAM за надгледанје промена у фајл систему, а може да користи и Gamin, али Gamin је скоро у потпуности замењен FAM, углваном зато што је FAM лоше одржаван и генерално инфериоран, непопуларан избор.

Gamin се инсталира на следеђи начин:

# pacman -S gamin

Конфигурација

/etc/samba/smb.conf фајл мора се креирати пре него што се daemon покрене. Кад је подешен, корисници могу да се одлуче за коришћење напредних конфигурационих интерфејса као што је SWAT.

smb.conf

Као root, копирати подразумевану Samba конфигурацију у /etc/samba/smb.conf:

# cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Отворити smb.conf у изменити конфигурациони фајл да одговара нашим потребама. Подразумевани фајл прави дељење за сваки home директоријум сваког корисника. Такође креира и дељење за штампаче.

Више информација о доступним опцијама може се наћи у man smb.conf

Покретање и аутоматизација daemona

Ако се користи FAM, потребно је покренути fam daemon пре samba. Gamin не захтева daemon пошто се аутоматски покреће кад је то неопходно.

Без ресетовања, FAM и Samba могу се поркенути следећим командама:

# /etc/rc.d/fam start
# /etc/rc.d/samba start

Додати fam и samba у DAEMONS линију rc.conf фајла за аутоматско поркетање daemona приликом бутовања.

SWAT: Samba веб административна алатка

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Samba (Српски)#)

SWAT је способност Samba сервиса. Главни извршни фајл се зове swat и покреће га eXtended InterNET Daemon, xinetd.

Постоји много различитих мишљења о корисности SWAT алата. Колико год неко покушавао да направи савшени конфигурациони алат, он остаје објекат личног укуса. SWAT је алат који дозвољава веб засновану конфигурацију Samba сервиса. Поседује чаробњака који помаже у брзом конфигурисању Samba сервиса, има помоћ за сваки smb.conf параметар, пружа надгледање тренутног стања информација о вези, и дозвоњава MS Windows мрежно управљање лозинкама. [1]

Note: Ако имате проблема са овим упутствима, може се користити и Webmin алат, и лако учитати SWAT модул овде.
Warning: Пре коришћења SWAT алата, SWAT ће у потпуности заменити smb.conf са потпуно оптимизованим фајлом који има уклоњене коментаре, и неподразумевана подешавања ће бити уписана.

Да би користили SWAT, прво треба инсталирати xinetd:

# pacman -S xinetd

Треба изменити /etc/xinetd.d/swat коришћењем неког од текстуалних едитора. Да би се омогућио SWAT, треба променити disable = yes линију у disable = no.

service swat
{
        type                    = UNLISTED
        protocol                = tcp
        port                    = 901
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/swat
        log_on_success          += HOST DURATION
        log_on_failure          += HOST
        disable                 = no
}

Алтернатива је додавање уноса за swat у /etc/services и изоствављање прве три линије конфигурације. Ако је xinetd компајлиран са tcp_wrappers подршком (то је подразумевано код Arch-a), потребно је изменити /etc/hosts.allow додавањем следећие линије:

swat:127.0.0.1

Покретање xinetd daemoa:

# /etc/rc.d/xinetd start

Веб интерфејсу се може приступити преко порта 901,

http://localhost:901/

Додавање корисника

Да би се пријавили на Samba дељени фајл морамо додати корисника:

# smbpasswd -a <user>

Корисник већ мора имати налог на серверу. Ако корисник не постоји стићи ће следећа порука упозорења:

Failed to modify password entry for user "<user>"

Може се додати нови корисник у Linux хост командом adduser. Овај чланак не покрива додавање корисника у Windows системе.

Note: smbpasswd се не користи од Samba version 3.4.0

Приступ дељеним фајловима

Дељеним ресурсима са других рачунара на локалној мрежи може се приступити и монтирати локано коришћењем корисничког интерфејса (GUI) или конзонлог приступа (CLI). Графички приступ је ограничен. Нека десктоп окружења имају начине олакшавањна приступа дељеним ресурсима. Тачније, већина десктоп окружења и управљача прозора имају неки свој метод.

Постоје два дела дељења приступа. Први је основни механизам фајл система, а други је интерфејс који дозвољава кориснику да изабере дељене ресурсе. Нека окружења први део уграђен у себе.

Како користите KDE, постоји могућност претраге Samba дељених фолдера/фајлова. Нису потребни додатни пакети. (Али, за GUI у KDE системским подешавањима потребно је инсталирати kdenetwork-filesharing пакет из [extra] репозиторијума. Други програм је SMB4K.) Ако, ипак, планирате да делите у Gnome окружењу или из шкољке, потребно је инсталирати додатне пакете.

Приступ Samba дељеним фолдерима из Gnome окружења

За Gnome, постоји Nautilus. Да би приступили дељеним фајловима преко Nautilusа, неопходно је инсталирати gvfs-smb пакет:

# pacman -S gvfs-smb

За Nautilus/Dolphin/Konqueror прозоре, притиснути Ctrl+L или ићи у "Go" мени и изабрати "Location..." -- обе акције ће дозволити да упишете у "Go to:" празно. Унети:

smb://servername/share
Note: Ако немате име сервера у /etc/hosts, треба користити IP адресу сервера уместо servername.

Други Gnome претраживач је програм Gnomba.

Приступ дељеним фајловима из другог графичког окружења

Постоји доста корисних програма, али неопходно је имати пакете направљене за њих. Ово се може урадити коришћењем Arch package build system. Добра ствар је што не захтевају одређено окружење да би се инсталирали, и зато доносе мање пртљага.

LinNeighborhood је неспецифичан кад су у питању десктоп окружење и управњач прозора. То је једноставан генерички X-заснован претраживач локалне мреже. Није леп, али је ефективан.

Други могући програми укључују pyneighborhood и RUmba, као и xffm-samba додатак за Xffm.

Приступ Samba дељеном фајлу из шкољке

Дељеним фолдерима може се приступити коришћењем аутоматском монтера или коришћењем manual method.

Аутоматско монтирањеAutomatic

Постоји неколико алтернатива за лако претраживање дељених фолдера.

smbnetfs

1. Инталирати smbnetfs:

# pacman -S smbnetfs

2. Додати следећу линију у /etc/fuse.conf:

user_allow_other

3. Учитати fuse кернел модул:

# modprobe fuse

4. Покренути smbnetfs daemon:

# /etc/rc.d/smbnetfs start

Ако је неопходна конфигурација правилно истражена, тврди се да су сви дељени фолдери у мрежи аутоматски монтирани у /mnt/smbnet.

Додати следеће у /etc/rc.conf за приступ дељеним фолдерима при бутовању:

MODULES=(... fuse ...)
DAEMONS=(... smbnetfs ...)

Ако су корисничко име и лозинка неопходни за приступ неким фолдерима, потребно је изменити /etc/smbnetfs/.smb/smbnetfs.conf уклањањем коментара који почињу са "auth" и подесити их за своје потребе:

auth			"hostname" "username" "password"

Онда, можда је неопходно променити дозволе на /etc/smbnetfs/.smb/smbnetfs.conf и свим осталим фајловима које smbnetfs укључује да би радило нормално:

# chmod 600 /etc/smbnetfs/.smb/smbnetfs.conf
fusesmb
Note: Пошто smbclient 3.2.X не функционише са fusesmb, вратити се на старију верзију ако је неопходно. Погледати relevant forum topic за више информација.

1. Инсталирати fusesmbAUR пакет из AUR репозиторијума.

2. Креирати тачку монтирања:

# mkdir /mnt/fusesmb

3. Учитати fuse модул:

# modprobe fuse

4. Монтирати дељени фолдер:

# fusesmb -o allow_other /mnt/fusesmb

За монтирање приликом бутовања, додати команду изнад у /etc/rc.local и додати fuse модул у /etc/rc.conf:

MODULES=(... fuse ...)
Autofs

Погледати Autofs за информације о кернел-заснованом аутомонтеру за Linux.

Ручно монтирање

1. Користити smbclient за претраживање из шкољке. Да би излистали јавне дељене фолдере на серверу користимо команду:

$ smbclient -L <hostname> -U%

2. Креирање тачке монтирања:

# mkdir /mnt/MOUNTPOINT

3. Монтирамо дељени фолдер коришћењем mount.cifs. Држите до знања да неће све опције бити потребне и пожељне, као што је password:

# mount -t cifs //SERVER/SHARENAME MOUNTPOINT -o user=USERNAME,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP
SERVER
Име Windows система
SHARENAME
Дељени директоријум
MOUNTPOINT
Локални директоријум у којем је монтиран дељени фолдер
-o [options]
Спецификација опција за mount.cifs
user
Корисничко име које се користило за монтирање
password
Лозинка дељеног директоријума
workgroup
Користи се за спецификацију радне групе
ip
IP адреса сервера -- ако систем није у могућности да нађе Windows рачунар на основу имена (DNS, WINS, hosts унос, итд.)
Note: Суздржати се од коришћења (/) карактера. Коришћење //SERVER/SHARENAME/ неће радити.

4. Демонтирање се врши на следећи начин:

# umount /mnt/MOUNTPOINT
Додавање дељеног фолдера у fstab

Додати следеће у /etc/fstab за лако монтирање:

//SERVER/SHARENAME /mnt/MOUNTPOINT cifs noauto,noatime,username=USER,password=PASSWORD,workgroup=WORKGROUP 0 0

noauto опција онемогућава аутоматско монтирање приликом бутовања система и noatime повећава перформансе прескакањем inode времена приступа.

После додавања претходне линије, синтакса за монтирање фајлова постаје једноставнија:

# mount /mnt/MOUNTPOINT

Ако се Samba дељени фолдер додаје у fstab, netfs daemon треба додати у rc.conf, негде после network daemonа. netfs daemon ће монтирати мрежне партиције приликом бутовања и, најважније, демонтирати мрежне партиције при гашењу. Чак и коришћење noauto опције у fstab, netfs daemon се треба користити. Без тога било који мрежни дељени фолдер који је монтиран приликом гашења ће изазвати да network daemon чека да веза истекне, и тако повећати време гашења рачунара.

Дозвољавање корисницима да монтирају

Пре омогућавања приступа командама за монтирање, fstab се мора изменити. Додати users опцију за сваки унос у /etc/fstab:

//SERVER/SHARENAME /path/to/SHAREMOUNT cifs users,noauto,noatime,username=USER,password=PASSWORD,workgroup=WORKGROUP 0 0
Note: Опција је users (з множини). За друге фајл системе, ова опција је углавном user; без "s".

Ово ће дозволити корисницима да монтирају док год постоји тачка монтирања у директоријуму који контролише корисник; нпр. корисников home директоријум. Да би дозволили корисницима да монтирају и демонтирају без тачака монтирања које они не поседују користи се #smbnetfs, или се додељују sudo привилегије.

Савети и трикови

Дељење фајлова у локалној мрежи без корисничког имена и лозинке

Опција 1 - Форсирање гост веза

Изменити /etc/samba/smb.conf и изменити следећу линију:

security = user

з

security = share

Опција 2 - Дозволити готи и корисник везе

Изменити /etc/samba/smb.conf и додати следећу линију:

map to guest = Bad User

после ове линије

security = user

Ако желите да ограничите дељене податке на специфични интерфејс заменити:

;   interfaces = 192.168.12.2/24 192.168.13.2/24

са:

interfaces = lo eth0
bind interfaces only = true

(мењање eth0 у локалну мрежу са којом желите да делите.)

Ако желите да измените налог који приступа дељеним фолдерима изменити следеће линије:

;   guest account = nobody

Последњи корак је креирање директоријума (за дозволу уписа користити променљиву = yes):

[Public Share]
path = /path/to/public/share
available = yes
browsable = yes
public = yes
writable = no

Једноставан конфигурациони фајл

[global]
workgroup = WORKGROUP
server string = Samba Server
netbios name = PC_NAME
security = share
; the line below is important! If you have permission issues make
; sure the user here is the same as the user of the folder you
; want to share
guest account = mark
username map = /etc/samba/smbusers
name resolve order = hosts wins bcast
wins support = no
[public] comment = Public Share path = /path/to/public/share available = yes browsable = yes public = yes writable = no

Откривање мрежних дељених фолдера

Ако ништа ије познато о другим системима на локалној мрежи, и аутоматски алат као што је #smbnetfs није доступан, следеће методе дозвољавају ручно истраживање дељених фолдера.

1. Прво, инсталирати nmap и smbclient користећи pacman:

# pacman -S nmap smbclient

2. nmap проверава који су портови отворени:

# nmap -p 139 -sT 192.168.1.*

У овом случају, претраживање 192.168.1.* IP адресног опсега и порта 139, резултује:

$ nmap -sT 192.168.1.*
Starting nmap 3.78 ( http://www.insecure.org/nmap/ ) at 2005-02-15 11:45 PHT
Interesting ports on 192.168.1.1:
(The 1661 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
139/tcp  open  netbios-ssn
5000/tcp open  UPnP

Interesting ports on 192.168.1.5:
(The 1662 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
6000/tcp open  X11

Nmap run completed -- 256 IP addresses (2 hosts up) scanned in 7.255 seconds

Први резултат је други систем; други је клијент са ког је претраживање обављено.

3. Сад кад су системи са отвореним портом 139 откривени, користимо nmblookup да проверимо NetBIOS имена:

$ nmblookup -A 192.168.1.1
Looking up status of 192.168.1.1
        PUTER           <00> -         B <ACTIVE>
        HOMENET         <00> - <GROUP> B <ACTIVE>
        PUTER           <03> -         B <ACTIVE>
        PUTER           <20> -         B <ACTIVE>
        HOMENET         <1e> - <GROUP> B <ACTIVE>
        USERNAME        <03> -         B <ACTIVE>
        HOMENET         <1d> -         B <ACTIVE>
        MSBROWSE        <01> - <GROUP> B <ACTIVE>

Без обзира на излаз, потражити <20>, који показује хоста са отвореним услугама.

4. Користити smbclient да излистамо услуге дељене на PUTER. Ако тражи лозинку, пристиском на тастер ентер би требало да се прикаже следећа листа:

$ smbclient -L \\PUTER
Sharename       Type      Comment
---------       ----      -------
MY_MUSIC        Disk
SHAREDDOCS      Disk
PRINTER$        Disk
PRINTER         Printer
IPC$            IPC       Remote Inter Process Communication

Server               Comment
---------            -------
PUTER

Workgroup            Master
---------            -------
HOMENET               PUTER

Ово приказује који фолдери су дељени и који се могу монтирати локално. Погледати: #Accessing Samba shares

Удаљена контрола Windows рачунара

Samba нуди групу алата за комуникацију са Windows системима. Ови алати могу бити корисни у случају да не можете да приступите Windows рачунару коришћењем удаљеног радног окружења, као што је приказано у неким примерима.

Послати команду за гашење са коментаром:

$ net rpc shutdown -C "comment" -I IPADDRESS -U USERNAME%PASSWORD

Ако преферирате принудно гашење уместо тога промените -C са коментаром на једно -f. За ресетовање додати -r, праћено -C или -f.

Заустављање и покретање услуге:

$ net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

Да видимо све могуће net rpc команде:

$ net rpc

Решавање проблема

Проблем са приступом фолдеру који је заштићен лозинком из Windows система

Ако имате проблема са приступом фолдеру који је заштићен лозинком из Windows система, пробајте да додате ово у /etc/samba/smb.conf:[2]

Обратите пажњи да ово додате у ваш локални smb.conf, не на smb.conf сервера

[global]
# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Дијалог прозору треба доста времена да се појави

Имао сам проблем да је дијалог прозору потребно око 30 секунди да се појави при покушају да се повежем на Windows XP/Windows 7 систем. Анализирањем error.log на серверу приметио сам следеће:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Пошто немам штампач на серверу, додао сам следеће у глобални део конфигурације:

load printers = no
printing = bsd
disable spoolss = yes
printcap name = /dev/null

Промене у Samba верзији 3.4.0

Веће промене у Samba 3.4.0 укључују:

Подразумевана passdb грешка је промењена на 'tdbsam'! То прекида постојећа подешавања која користе 'smbpasswd' грешку без експлицитне декларације!

Ако желите да се држите 'smbpasswd' грешке пробајте да промените ово у /etc/samba/smb.conf:

passdb backend = smbpasswd

или конвертујте ваше smbpasswd уносе коришћењем:

sudo pdbedit -i smbpasswd -e tdbsam

Грешка: Вредност превелика за дефинисани тип податка

Са неким апликацијама можете добити ову грешку кад покушате да отворите монтирани фајл у smbfs/cifs:

 Value too large for defined data type

Решење[3] је додати ову опцију у ваше smbfs/cifs опције за монтирање (у /etc/fstab на пример):

 ,nounix,noserverino

Ради на Arch Linux систему закључно са датумом (2009-12-02)

Морам да ресетујем samba протокола да би моји дељени фолдери видели остали

Ако приликом покретања рачунара, samba дељеним фолдерима не може приступити, проверити следеће:

  • Уверите се да нисте заборавили да додате samba daemon у DAEMONS одељак /etc/rc.conf фајла (после 'network' daemona)
  • network услуга није покренута у позадити (са префиксом @ ). Уклањање '@' испред 'network' може да среди овај проблем. Ресетовати рачунар да проверите.

Ресурси