Samba - deljenje fajlova (jednostavno deljenje i domen)

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Elitni član
Elitni član
offline
User avatar

Posts: 204
Joined: 07 Mar 2007, 13:34

Post Napisano: 18 Sep 2013, 14:39


Pošto sam stari komp pretvorio u server za igranje/učenje, a trenutno sam namestio Sambu za file share i evo kratkog tutorijala za to.
Sambu je konfigurisana kao jednostavan file share, a par varijacija ću objasniti kroz smb.conf fajl.

Glavni konfiguracioni fajl za sambu je /etc/samba/smb.conf, njega nema po defaultu pa možete kopirati i preimenovati smb.conf-sample ili sa touch napraviti novi.


Evo primera smb.conf fajla:

Code: Select all

[global]
workgroup = WORKGROUP		# podesite vaš workgroup
netbios name = Samba			# ime servera
server string = Samba File Server
security = user				        # dodatno objašnjenje ispod
encrypt passwords = Yes
invalid users = root bin daemon adm sync shutdown halt mail news uucp operator
log file = /mnt/sda6/samba/samba.log.%m
log level = 3
max log size = 1000
debug timestamp = yes

# hosts allow = 127.0.0.1 192.168.1.0/24 192.168.2.0/24	# određujete sa kojih IP adresa može da se prstupi Sambi
# hosts deny = 0.0.0.0/0 					# blokirate određene IP adrese

# interfaces = eth* lo		# Samba po defaltu radi na svim interfejsima, a drugačija podešavanja određujete ovde
# bind interfaces only = yes


[homes]			
comment = Home Directories
valid users = %S
read only = No
browseable = No		# ako želite da pristupite svom home direktorijumu stavite ovde Yes


# share folderi

[test]			# primer test foldera, ime koje stavite između [] će se prikazivati kao ime fodlera na winu
comment = Test Folder
path = /mnt/sda6/samba/test	
valid users = user1, user2	# Sa valid users određujete pravo pristupa 
read only = Yes			# ako read only opcija podešena sa Yes, samo korisnici sa 
write list = user2		# write list-e će imati prava pisanja
guest ok = no
create mask = 0770		# chmod podešavanja prilikom pravljenja fajla
force create mode = 0770
locking = Yes			# zaključavanje fajlova prilikom korišćenja kako ne bi dolazilo 
			         	# do istovremenog menjanja fajla od strane više korisnika

[tmp]				#primer  tmp foldera namenjenog za rw
path = /mnt/sda6/samba/tmp
comment = Temporary Folder
create mask = 0777
force create mode = 0777
read only = no
guest ok = yes

Sa opcijom security = user prilikom pristupa serveru biće traženi username i pass. Da biste mogli da pristupite serveru prvo morate dodati korsnike za Sambu sa komandom:

Code: Select all

smbpasswd -a user1
posle čega će biti traženo da unesete šifru za tog korisnika. Sa tom šifrom pristupate serveru, a da bi se dodao neki koirsnik za sambu, on pre toga mora postojati na linuxu.


Postoji i opcija security = share, tada serveru možete pristupiti bez šifre, osim ako sa valid users ne definišete korisnike za pojedinačne share-ove.
Za ostale security, a i ostale opcije, konsultujte man.

Da napomenem da samba nije "jača" od privilegija sistema. Ako korisnički nalog nema prava čitanja/pisanja samba mu ih ne može dodeliti, ali ako ih ima onda ih može ograničiti.

Ukoliko imate firewall na linux mašini otvorite portove 137 i 138 UDP, kao i 139 i 445 TCP.

A da bi se Samba startovala prilikom boota napravite /etc/rc.d/rc.samba fajl izvršnim.

Sa win mašine serveru pristupate preko IP adrese ili netbios imena u win exploreru. Npr. \\192.168.1.1 ili sa \\samba (proverite samo da vam firewall(/antivirus) na winu ne blokira sherovanje, meni nije hteo da pristupi serveru po imenu, nego samo po IP adresi dok nisam provalio šta je :P )



Administrator
Administrator
offline
User avatar

Posts: 3451
Joined: 01 Apr 2012, 13:50
Location: Mlečni put

Post Napisano: 18 Sep 2013, 15:33


Fino fino, hvala za uputstvo. Nikad ne znam kad bi moglo da zatreba ;)
Use the source, Luke
SSZ irc kanal
Spread the Word, “CHOOSE SLACK! and Don’t look back.”



Elitni član
Elitni član
offline
User avatar

Posts: 204
Joined: 07 Mar 2007, 13:34

Post Napisano: 18 Sep 2013, 21:53


Nije samba teška koliko se na prvi pogled čini i brzo se skapira za prostija podešavanja.
Mada za neke naprednije stvari treba se ipak malo više udubiti.

Videću da se prisetim šta sam sve radio za varijantu kada je samba na domenu pa ću dopisati i to.
A onda bi mogao neko da preimenuje ime teme samo u Samba.



Elitni član
Elitni član
offline
User avatar

Posts: 204
Joined: 07 Mar 2007, 13:34

Post Napisano: 19 Sep 2013, 18:52


Evo i upustva za pridruživanje Sambe windows domenu (u principu to je ovo uputstvo uz par napomena, sitnih izmena i dodatnij objašnjenja stvari koja su mene mučila u početku).

Samba se konfiguriše da čita korisnike i grupe iz Active Directory (to može biti druga Samba konfigurisana kao ADC, ne mora biti neki win server), tako da se korisnici ne dodaju na lokalnoj linux/samba mašini, sve ide preko AD-a. To podrazumeva da ukoliko su korisniku dodeljena prava čitanja/pisanja nekom folderu on će moći da mu pristupi bez kucanja korisničkog imena i lozinke, a ukoliko ih nema biće zatraženi ovi podaci (isto kao u slučaju security = user opcije)



1. [global] sekcija smb.conf fajla treba da izgleda ovako:

Code: Select all

[global]
workgroup = IMEDOMENA	# ime domena može da bude u formatu IMEDOMENA.local i tada upisujete bez ovoga .local
netbios name = FileServer
server string = Samba File Server
security = domain
idmap uid = 15000-20000	# služi za mapiranje windows i samba korisnika
idmap gid = 15000-20000
winbind use default domain = Yes
invalid users = root bin daemon adm sync shutdown halt mail news uucp operator
log file = /mnt/sda6/samba/samba.log.%m
log level = 3
max log size = 1000
debug timestamp = yes

# ispod dodajete podešavanja za share foldere slično kao u prvom postu
2. Pridružite se domenu sa komandom (pre toga isključite Sambu):

Code: Select all

net rpc join -UAdminLogInName%AdminPassword
3. Pre nego što pokrenete Sambu proverite da li je isključen nscd, on nije potreban ukoliko se koristi winbind.


4. Pokrenite Sambu i winbindd sa komandama:

Code: Select all

/etc/rc.d/rc.samba start
winbindd
5. Edituje fajl /etc/nsswitch.conf, u njemu treba da stoje sledeće linije:

Code: Select all

passwd: files winbind
group:  files winbind
hosts:  files dns winbind
6. I podesite šifru za wbinfo sa komandom:

Code: Select all

wbinfo --set-auth-user=AdminLogInName%AdminPassword
7. Sa komandama wbinfo -u i wbinfo -g proverićete da li je spisak korisnika i grupa sa domena dostupan.


8. Pošto se pridruživanje domenu i startovanje winbindd-a ne radi automatski prilikom starta sistema, editujte /etc/rc.d/rc.local fajl i u njega upišite:

Code: Select all

net rpc join -UAdminLogInName%AdminPassword
winbindd
Imajte u vidu da se administratorska šifra domena može pročitati iz rc.local ukoliko privilegije nisu postavljene kako treba.




Što se tiče podešavanja prava pristupa postoje dve varijante:

1. da foldere koje šerujete podesite sa chmod 777, a da prava pristupa ograničavate preko smb.conf fajla.

2. ili da folderu koji sherujete sa komandama

Code: Select all

chown DomainUser:DomainGroup
chmod 770
uz opcije u smb.conf fajlu

Code: Select all

create mask = 0770
force create mode = 0770
fino naštimujete prava pristupa.

Pojasniću ovo malo.
Pošto je linux pridružen domenu, vi prava nad nekim direktorijumom možete dodeliti korisnicima i grupama sa domena iako ti korisnici/grupe nisu pravljene lokalno. Sa chmod 770 osiguravate da svi korisnici koji pripadaju grupi DomainGroup mogu da čitaju/pišu u taj direktorijum, a sa create mask i force create mode osiguravate da fajlovi koji se naprave preko Sambe imaju odogovarajući chmod.

Glavni nedostatak prve varijante je ugrožena sigurnost. Ukoliko neko upadne na linux on sa bilo kojim nalogom on ima puna prava pristupa tim fajlovima.
Druga stvar, ona koja meni najviše smeta, ne možete da kreirate jedan šerovan folder, pa da subfolderi imaju svoja posebna podešavanja. Ono što podesite kroz valid users, write list, read list to vam je to za taj folder i subfoldere.
Ovo je dodatno iritirajuće kada želite da uradite Map Network Drive. Ne možete mapirati ceo fajl server, nego se svaka [] sekcija za folder mora posebno mapirati. Pa onda My Computer izgleda pretrpano :D Ali možete ubaciti shortcut do fileserver-a, što je neko obilazno rešenje, ali može da posluži.

Sa drugom varijantom ovo bi trebalo da može da se izvede. Znači samo jedna [] sekcija u smb.conf fajlu gde je svima dozvoljen pristup, a onda se sistemu ostavi da odredi da li da dozvoli pristup ili ne (na osnovu već ranije urađenog chown DomainUser:DomainGroup, naravno za svaki folder druga grupa).
Lično ovo nisam probao, stavljeno je u to-do listu, ali negde pri kraju, i ko zna kad će doći na red. Opredelio sam se za prvu varijantu iz jednog prostog razloga: preglednosti. Sva prava pristupa su mi u smb.conf fajlu i lako mi je da dodam/oduzmem korisnike. Ovako bih se zamrsio u grupama sa domena i ne bih znao ko, šta, gde, kada, kako i čemu može da pristupi :grin: A i sam taj hard mi je NTFS, pa i ne podržava linux privilegije, tako da je mountovan sa umask=0000. I onako je taj fajl server bio više za probu kako radi pod linuxom uz domen nego što mi je pravi file server, i uglavnom ga ja najviše koristim da ne vucaram USB :)
Za neku ozbiljniju varijantu mora tu i RAID da padne, a tada ću to nameštati na teži način :P


Post Reply

Who is online

Users browsing this forum: No registered users and 16 guests