Kdysi me nekdo pozadal o tipy a triky k TO. Mam to stale rozdelane a jeste jsem to nikde nesdilel. Tady je draft verze casti pro Sambu. Je to takove jak jsem to psal v texteditoru. A jelikoz se tu mnozi dotazy k sambe, tak snad to nekomu helfne.
## Zdroje : Samba.org , Archlinux wiki, OpenWRT wiki
## Dulezite soubory
## 1. /etc/config/samba ==> uci config
## 2. /etc/samba/smb.conf.template ==> uci samba template
## 3. /etc/samba/smb.conf -> /var/etc/smb.conf (resp. /tmp/etc/smb.conf) ==> fakticky config co je pouzit samba daemonem
## 4. /etc/samba/smbpasswd ==> databaze hesel
## 5. /var/log/log.smbd ==> samba log , byva prazdny pokud se loguje do syslogu
## 6. /var/log/log.nmbd ==> name-server log , byva prazdny pokud se loguje do syslogu
## Rychlonavod ....
## vytvorit uzivatele "samba_user" pomoci "useradd"/"adduser"
## pridelit mu unix heslo pomoci "passwd"
## vytvorit/synchronizovat samba a unix heslo pomoci "smbpasswd"
## vytvorit na vsech klient stanicich stejny ucet a se stejnym (samba) heslem
## --> resp. neni nutne vytvaret pokud staci jen pripojeni jako sdileny disk
## ==> ale je nutne zajistit prvotni zadani credentials a jejich zapamatovani pro kazdeho win-uzivatele
## --> v pripade, ze username(ci heslo) neni(nemuze byt) stejne, je potreba zajistit mapovani mezi unix a win svetem
## nastavit pristupova prava nad slozkou co se ma/bude sdilet pro prislusneho uzivatele/skupinu (samba_user:users)
## pripadne zajistit, ze mount daneho filesystemu pristup do slozky zajisti (velky rozdil je-li to ext3/4 nebo ntfs ...
## --> ntfs se mountuje pres user-space nikoliv primo pripade ze ma byt zapisovatelny a to prinasi problemy (unix vs samba prava)
## --> je lepsi nasdilet slozku z jineho filesystemu/mountu a overit funkcnost samby na nem
## --> (do ktereho pak prislusny jakykoliv obsah pridame pres symlink, link, mount, bind, rbind )
## ==> pouzivani ntfs na TO je tak trosku zadelavani si na neustsale problemy
## /mnt/
drwxr-xr-x 4 samba_user users 4096 May 14 20:46 MyShare
drwxr-xr-x 4 samba_user users 4096 May 14 20:46 MyData
## /mnt/MyShare ## sdileny adresar
lrwxrwxrwx 1 root root 33 Dec 8 2016 Torrents -> ../MyData/InBound/TorrentFiles/ ## symlink do slozky na jinem mountu (sledovana slozka pro torrenty)
lrwxrwxrwx 1 root root 27 Dec 8 2016 Upload -> ../MyData/InBound/Upload/ ## symlink do slozky na jinem mountu (upload slozka)
lrwxrwxrwx 1 root root 30 Dec 8 2016 Download -> ../MyData/OutBound/Download/ ## symlink do slozky na jinem mountu (download slozka)
drwxr-xr-x 5 samba_user users 4096 Mar 31 16:11 Video
## /mnt/MyData/ ## datovy adresar
drwxr-xr-x 5 samba_user users 4096 Oct 31 2016 Torrent ## hlavni slozka pro Transmission
drwxr-xr-x 3 samba_user users 4096 Oct 31 2016 InBound ## hlavni slozka pro prichozi data (ftp,smb,torrent,irc)
drwxr-xr-x 2 root root 4096 Dec 8 2016 Users ## symlinky nebo bind mounty od useru/pro usery
drwxr-xr-x 3 samba_user users 4096 Dec 8 2016 OutBound ## hlavni slozka pro odchozi data
drwxr-xr-x 7 root root 4096 Dec 8 2016 vsFtpRoot ## virtualni root/chroot slozka pro vsftpd
drwxr-xr-x 2 root root 4096 Dec 9 2016 ngIrcdRoot ## virtualni root/chroot slozka pro ngircd
## /etc/config/samba
config samba
option name 'XXXXX'
option workgroup 'XXXXXXX' ## pouziti WORKGROUP prinasi mene problemu na W8/W10 stanicich
## Pozn: ale je lepe si definovat vlastni (viz komentar ve vlakne)
option homes '0' ## automaticke sdileni domovskych adresaru
## pozn: v zakladu bez dodatecnych nastaveni (pokud nema samba_user definovan home a shell)
## je uzivatelum umozneno prislusny adresar opustit a v klidu si vylistovat cokoliv a kdekoliv
## bez zapnutych wide linku a podobne, proste puvodni template, definovan jeden share ...
## tehda me to dost prekvapilo a obratem jsem tuhle moznost vypnul.
option description 'XXXXXXX'
config sambashare
option name 'MyShare' ## sitove jmeno slozky >> \\192.168.1.1\MyShare
option path '/mnt/MyShare' ## cesta ke slozce
option read_only 'no' ## jinak receno writeable=yes
option guest_ok 'no' ## zakazani pristupu pres quest
option users 'samba_user' ## povoleni pristupu pro samba_user
option dir_mask '0775' ## maska z pohledu samby
option create_mask '0664' ## maska z pohledu unixu
## ./tmp/etc/smb.conf ## toto je fakticky pouzity konfig, vytvoreny z uci configu a template casti.
[global]
netbios name = XXXXXXXXX ## nazev sitoveho zdroje v "netview" --> \\XXXXXXX\MyShare
display charset = UTF-8
interfaces = 127.0.0.1/8 lo 192.168.1.1/24 br-lan ## na jakych intefejsech bude samba naslouchat
server string = XXXXXXXXXXXXXX ## popis serveru
unix charset = UTF-8
workgroup = XXXXXXXXXXXXX ## nazev skupiny, je dobre klienty pridat do prislusne skupiny
browseable = yes ## umoznuje zobrazovani sdilenych slozek v "netview"
deadtime = 30 ## session timeout
local master=yes ## chceme aby TO byl master
domain master = yes ## nechceme aby jiny Win stroj se pokousel ziskat status domain master (
## kdyz ma nekdo na svem laptopu vytvorenou homegroup s jinym jmenem nez ma turris muze to delat problemy v pripade ze win stroj se stane "master"
## a verte ze i v siti kde je AD/DC se muze nejake podradne PeCecko s Windows stat "masterem" a je zodpovedny za celkem dost veci
preferred master = yes ## pro pripady kdy by Win stroj vyhral elekci, vynuceni ze TO bude master
encrypt passwords = true ## zapnute sifrovani hesel
enable core files = no ## nezobrazovat dump soubory "core"
guest account = nobody ## ucet pro hosta
guest ok = yes ## povoleni pro hosta (lze pak zakazat pro jednotlive sdilene slozky)
invalid users = root ## zakazat pristup rootovi
load printers = no ## bez tiskarny
map to guest = Bad User ## uzivatele bez hesla budou brani jako hoste (user nobody)
max protocol = SMB2 ## zakazani protokolu smb3,4, povoleni 1,2
# mix protocol = SMB2 ## odkomentovani zpusobi vynuceni SMB2 , lze tak kombinaci min/max definovat range verzi
min receivefile size = 16384 ## velikost souboru, kdy jdou data primo ze socks do buffru, zrychluje zapis/cteni
null passwords = no ## zakazat prazdna hesla
obey pam restrictions = yes ## zapnout pokud je nastavneo encrypt-password=true
os level = 20 ## vyssi cislo vyhrava elekci na local master browser.
## Teoreticky staci dat napr os level=65 a nemusi se vynucovat "master" nastaveni co je o kus vys
passdb backend = smbpasswd ## utilitka na vytvoreni hesel --> dost dulezite kazdemu samba uzivateli udelat heslo :)
printable = no ## ne-povoleni zapisu do spoolu
security = user ## security level, user,share,domain
## je-li level user ocekava se, ze uzivatele maji unix/samba ucet, overeni je globalni
## je-li level share , je to podobne jako u 'user' s tim rozdilem, ze se overuje pro kazdou sdilenou slozku
## je-li level domain , to nechces...., to je jen kdyz mas v siti AD/DC
smb encrypt = disabled ## nesifrovat
smb passwd file = /etc/samba/smbpasswd ## soubor se samba hesly spravovany pres smbpasswd utilitku
socket options = TCP_NODELAY IPTOS_LOWDELAY ## nastaveni pro lokalni lan (zde lze nastavit buffer pro cteni a zapis)
syslog = 2 ## level logovani do syslogu
use sendfile = yes ## pro novejsi klienty kapanek zrychluje prenos souboru, pro starsi (win9x napr.) to muze zpusobovat problemy
writeable = yes ## povolit zapis (lze zmenit pro kazdou sdilenou slozku)
force user = samba_user ## vynutit vlastnika nahranych souboru
force directory mode = 0775 ## vynuceni prav na adresare (lze zmenit pro kazdou sdilenou slozku)
force create mode = 0664 ## vynuceni prav pro vytvorene slozky, soubory (lze zmenit pro kazdou sdilenou slozku)
## nasledujici neni uplne doporucovano pokud se linkuje mezi ruznymi mounty, pokud je to v ramci jednoho mountu, lze to pouzit
## pokud je prislusny mount pripojen pod stejnym uzivatelem pod kterym bezi samba nemelo by dojit, ze se nekdo dostane kam nema
allow insecure wide links = yes ## povoleni vytvareni symlinku mimo prislusny share
unix extensions = no ## pokud jsou zapnute wide-links , vypnout
wide links = yes ## povolene nasledovani symlinku
## pro vyssi bezpecnost, lze tyto tri parametry vypnout(pouzit default hodnoty)
## a namisto symlinku pouzit mount-bind/mount-rbind v pripade ze se sdileji data z ruznych zdroju.
[MyShare]
path = /mnt/MyShare ## mount point pripojeny pod samba_user (pripadne pripojit normalne a jen zajistit, ze samba_user ma prislusna unix prava)
valid users = samba_user ## seznam uzivatelu, kteri mohou pristupovat ke slozce
read only = no ## jinak receno "writeable=yes"
## pozn: nastaveni write/read v ramci samby nema vliv na fakticka unixova prava slozek, souboru, ty maji vzdy posledni slovo.
guest ok = no ## zakazat pristup pres hosta
create mask = 0664 ## vynuceni prav pro nove slozky a soubory (dedi se z global, ale neskodi nastavit pro kazdy share zvlast) (z pohledu unixu)
directory mask = 0775 ## vynuceni prav pro adresare (z pohledu samby)
### toto nastaveni umoznuje pripojit sdilenou slozku jako sitovy disk pod univerzalnim uctem (osx tiger, win10, rpi3, ubuntu)
### je umozneno prochazeni a cteni ze vsech slozek a i linkovanych zdroju
### pomoci unix prav se da nasimulovat sdileni domovskych adresaru, staci vytvorit patricny symlink a dat mu prislusna prava/vlastnika na cilove slozce
smb.conf.template
[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
browseable = yes
deadtime = 30
local master=yes
domain master = yes
preferred master = yes
encrypt passwords = true
enable core files = no
guest account = nobody
guest ok = yes
invalid users = root
local master = yes
load printers = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = no
obey pam restrictions = yes
os level = 20
passdb backend = smbpasswd
preferred master = yes
printable = no
security = user
smb encrypt = disabled
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
syslog = 2
use sendfile = yes
writeable = yes
force user = samba_user
force directory mode = 0775
force create mode = 0664
allow insecure wide links = yes
unix extensions = no
wide links = yes