Interactiunea cu sistemele Windows: Samba
Samba este un sistem care ofera servicii SMB (numit câteodata si Lan Manager) l CIFS (The Common Internet Filesystem), asigurând compatibilitatea cu sistemeley?/e sharing sau Microsoft Network (sistemul de partajare a resurselor în retea, transferul de fisiere între masini etc., utilizate de sistemele Windows) din MSCLIENT 3.00 pentru DOS, Windows for Workgroups, Windows 95/98/ME, Windows NT, Windows 2000/XP, OS/2, DAVE pentru Macintosh. Este alcatuit din doua parti, una de server, care permite folosirea sistemului Linux ca server SMB (adica masina va contine resurse - cum ar fi directoare, discuri, imprimante-care vor putea fi accesate de catre alte calculatoare), si una de client, care permite accesarea serviciilor SMB oferite de alte masini.
Pentru utilizarea clientilor SMB de pe masina Linux 23323i89x , trebuie ca nucleul sa fie compilat cu optiunea urmatoare activata:
- File systems
oSMB file system support (to mount Windows shares etc.)
Pentru ca serverul Samba sa functioneze, trebuie ca daemonii smbd si nmbd (serverul de nume NetBIOS, care furnizeaza serviciile de nume NetBIOS peste protocolul IP).
Pachetul samba-common trebuie obligatoriu instalat. De asemenea, pentru partea de server trebuie instalat si pachetul samba, iar pentru partea de client (dar nu obligatoriu), samba-clients.
Este important de semnalat faptul ca protocolul Samba este implementat peste protocolul TCP/IP - ca urmare, pe masinile Windows care acceseaza servere Samba trebuie instalat si suportul pentru protocolul TCP/IP.
Configurarea serverului Samba se face prin intermediul fisierului /etc/samba/smb.conf. Acesta poate fi administrat fie cu ajutorul interfetei Web numita swat (din pachetul samba-swaf), localizata la adresa https://localhost: 901 (meniul System :: Samba Configuration în Red Hat, respectiv Configuration :: Networking :: WizDrake în Mandrake), fie manual:
Setari avansate ale sistemului
.V- Samba Web Admlmatralion Tool - Komiunor '.. . . . : '" .'..'.' ''*'?.'.' -. |
.sBIffW^T"''^1*1*1 |
patton Łdil ^iew Qo flookmsrKs lools Settings &indow tleip |
|
Up Back Foivifard Horn» URL Rebad Stor) Cui '.'op/ Paste Print f',i;v F!,ii->e Find incrsase Font Sizes f ".>',<..?,:>.Ł« P>i! Ł^ |
Securit/ g |
Cltir bntton bar lacatton UffilîftpTi^f"^ITri-53i^ioMÎs*T~m*1' -""".T'"-'a""-*a .i&-'1 -.=»»'"'..---.*. -»«.-««... .^««sT.T^ "".,".,. 13« |
-r|GO |
Baae Opdon» i H8lp workgroup [bosfarw j Set Delajit j |
i p-i |
Heip nettto» name [ | Set Detault j |
i i |
Help «arvei string . samba 1 Set Default i Heip mtarîa^s ''. \ S«t DefaulI '! Socurltv Optlons |
i l s j: |
Help ««cuflt/ fsHARE ^ j stToetawit] Help enraypt patnnias j v*s .» Hset Delaull j Heip updat» encryp(«d | No v j Set Detault J |
l : i |
Haip guBstaccount |gu»st i Set Detaurt j |
i i: |
Help hottl «Itow ' { Set Detault | |
i ; |
Help nost» deny i Sat Detault j Logglng OpUora |
i 1 |
Help kjg tile AW,1og..'samba.^b(Ti.log j Set Detault j Help mau 109 sl2« 0 \ Set Defauil 1 |
! i ;! |
Heip so«*.Bl Opttons TCP_NODELAY SO_RCVBUF-8l92 3O_| Set Detault ] PrinMng OpOorrt Help prtnnn0 Ipfng w | s*t DetauT] httpj/127 0.0.1 «Ol/*watffielp/tmt)^on(Shtml#SERVERSTRINQ |
\ E |
Figura 5.1. Interfata Web Samba Swat
Fisierul de configurare este alcatuit din sectiuni si parametri. O sectiune începe cu numele sectiunii, încadrata de paranteze drepte, si se încheie în momentul declararii altei sectiuni. Sectiunile contin parametri de forma:
| parametru = valoare
Liniile prefixate cu "#" sau ",-" sunt considerate comentarii si sunt ignorate. Continuarea unei linii se poate realiza adaugând caracterul "\" la sfârsitul acesteia.
Exista trei sectiuni speciale, si anume [global], [homes] si [printers]. Celelalte sectiuni definesc o resursa partajata (sau serviciu), adica vizibila altor masini. Astfel, numele sectiunii constituie numele resursei, iar parametrii din cadrul acesteia îi stabilesc proprietatile. Aceste resurse partajate reprezinta fie directoare la care este permis accesul, fie imprimante la care se poate tipari. Utilizatorii care pot accesa resursele sunt fie utilizatorul anonim de tip guest, pentru care nu este necesara o parola, fie utilizatorii obisnuiti, autentificându-se prin intermediul numelui si parolei.
Administrarea si configurarea sistemelor Linux
Substituirea variabilelor
Majoritatea sirurilor de caractere din cadrul fisierului de configurare pot contine substitutii. De exemplu, /home/%u va fi interpretat ca /home/dragos daca numele utilizatorului este dragos. Sunt recunoscute urmatoarele substitutii:
%S numele serviciului curent
%u numele utilizatorului
%g grupul din care face parte utilizatorul de mai sus
%U numele de utilizator al sesiunii (cel furnizat de client)
%G grupul din care face parte utilizatorul de mai sus
%H directorul home al utilizatorului
%v versiunea Samba
%h numele masinii (Linux) pe care ruleaza serverul Samba
%nt numele NetBIOS al masinii-client
%L numele NetBIOS al serverului Samba
%M numele masinii-client
%d identificatorul procesului serverului Samba
%I adresa IP a masinii-client
%T timpul curent (data si ora)
%$(var) valoarea variabilei de mediu var.
Sectiunea [global]
Parametrii din aceasta sectiune se refera la configurarile serverului Samba si la alte optiuni implicite. Sunt recunoscuti urmatorii parametri:
allow trusted domains Daca este No, va fi refuzata conectarea de pe un domeniu sau workgroup altul decât cel a masinii. Are efect doar atunci când parametrul security are valoarea server sau domain (vezi infra). Implicit: Yes.
bind interfaces only Limiteaza interfetele prin care vor fi acceptate cererile SMB. Lista de interfete se stabileste cu parametrul interfaces. Implicit: No.
change notify timeout Stabileste intervalul de timp la care Samba va transmite clientilor notificarile de modificare a continutului directoarelor. Implicit: 60.
character set Permite utilizarea unor anumite seturi de caractere pentru translarea numelor de fisiere specificate de catre clienti. Poate lua una dintre valorile:
Setari avansate ale sistemului
ISO8859-J, setul de caractere
vest-european. Parametrul
client code page trebuie setat pe 850;
ISO8859-2, setul de caractere est-european (include si
România). Parametrul client code page trebuie
setat pe
ISO8859-5, setul de caractere rus (chirilic). Parametrul
client code page trebuie setat pe 866;
ISO8859-7, setul de caractere grecesc. Parametrul client
code page trebuie setat pe 737;
KOI8-R, setul de caractere rus. Parametrul client code
page trebuie setat pe
866.
Implicit: valoare vida.
client code page Stabileste codul de pagina utilizat de clientii Samba. Poate lua una dintre valorile:
MS-DOS Latin;
737, Windows 95 Greek;
MS-DOS Latin l;
552, MS-DOS Latin 2;
MS-DOS Icelandic;
" 866, MS-DOS
Cyrillic;
932, MS-DOS Japanese SJIS;
936, MS-DOS Simplified Chinese;
MS-DOS Korean Hangul;
" 950, MS-DOS Traditional Chinese.
Implicit: 550.
Deadtime default service dns proxy domain logons domain master |
Specifica numarul de minute de inactivitate (atunci când nu
sunt fisiere deschise) dupa care clientii vor fi deconectati.
Valoarea implicita este O si semnifica faptul ca valoarea este
infinita.
Specifica numele resursei la care se va face conectarea daca
resursa solicitata de un client nu este gasita.
Stabileste ca, în cazul functionarii nmbd ca server WINS, daca
numele NetBIOS al unei masini nu a fost gasit, sa se apeleze
la serverul DNS pentru rezolvarea numelui. Implicit: No.
Daca este setat pe Yes, serverul Samba va rezolva cereri de
nume pentru workgroup-ul din care face parte. Implicit: No.
Activeaza cumularea listelor de cautare în cadrul nmbd.
Acesta va defini un nume special de domeniu NetBIOS care îl
va identifica ca browser principal de domeniu pentru
workgroup-ul din care face parte. Toate browserele principale
din cadrul subretelelor vor trimite acestui nmbd toate listele de
cautare locale, apoi îi vor solicita lista completa de cautare.
Administrarea si configurarea sistemelor Linux
Astfel, clientii vor primi lista completa de cautare. Implicit:
No.
encryptpasswords Utilizeaza parole criptate. Implicit: No. hide local users Face utilizatorii sistemului Linux invizibili pentru clienti.
Implicit: No.
hosts allow Stabileste masinile care pot accesa resursele SMB.
hosts equiv Specifica numele unui fisier ce contine numele masinilor si
utilizatorilor carora le va fi permis accesul fara a specifica o
parola. Implicit: No. Nu se recomanda folosirea acestei
optiuni.
Include Include continutul fisierului de configurare specificat.
Interfaces Stabileste prin ce interfete vor fi acceptate cererile SMB (vezi
parametrul bind interfaces only). Interfetele pot fi de forma:
un nume de
interfata (e.g. etho). Pot fi folosite si caractere
wildcard (e.g. eth*);
o adresa IP;
o pereche adresa / masca_de_retea;
o
pereche broadcast / masca_de_retea.
loadprinters încarca toate imprimantele definite în /etc/printcap. Pentru
detalii, a se vedea sectiunea despre imprimante. Implicit: Yes.
logfile Specifica
numele fisierului în care se va face jurnalizarea
evenimentelor Samba.
log level Specifica nivelul de jurnalizare. Implicit: J.
map to guest Stabileste modul de tratare a cererilor de conectare pentru care
numele utilizatorului nu este cunoscut, dupa cum urmeaza:
Never. conectarea este refuzata. Este valoarea implicita;
Bad User. conectarea
utilizatorilor având parola gresita
este refuzata. Daca utilizatorul
nu exista, este considerat ca
fiind utilizatorul anonim, guest;
Bad Password: conectarea utilizatorilor având parola
gresita este considerata ca utilizator anonim. Aceasta
optiune nu este recomandata.
Acest parametru este functional doar atunci când security este
user, server sau domain.
minpassword length Specifica dimensiunea minima a parolei. Implicit: 5. name resolve order Stabileste modul de rezolvare a numelor, continând o lista
de metode de rezolvare, separate prin caracterul spatiu, ce vor
fi apelate în ordinea aparitiei, astfel:
Imhosts: cauta adresa în fisierul imhosts;
host: modul standard de rezolvare a adresei (cautare în
/etc/hosts, apoi apelarea la serverul DNS);
-wins: apeleaza la serviciile serverului WINS specificat cu
parametrul wins server,
Setari avansate ale sistemului
bcast:
trimite o cerere broadcast
catre toate interfetele de
retea specificate cu parametrul interfaces.
netbios aliases netbios name nuli passwords obey pam |
Implicit: Imhosts host wins bcast.
Specifica o lista de nume sub care va fi cunoscut serverul, în afara de numele sau. Vezi si netbios name. Specifica numele serverului. Implicit este numele UNIX al sistemului.
Permite accesul la utilizatori având parola vida. Implicit: No. restrictions Urmeaza directivele PAM privind autentificarea
utilizatorilor (pentru detalii, vezi cap. 12). Implicit: No.
restrict anonymous Retrage posibilitatea accesarii serverului cu utilizatorul anonim. Util pentru retele NT.
Security |
Stabileste modul de gestionare a resurselor si utilizatorilor. Poate fi:
share: clientii care se conecteaza nu trebuie sa specifice un
nume de utilizator si o parola înainte de a se
conecta la o
resursa partajata, ci în momentul în care încearca
conectarea la respectiva resursa;
user. clientii trebuie sa furnizeze un nume de utilizator si o
parola înainte de a putea accesa o resursa partajata. Este
optiunea implicita;
" server, validarea numelui de utilizator si a parolei se va face apelând la un alt server SMB, cum ar fi o masina NT. Daca aceasta validare nu este posibila (de exemplu, în cazul în care cealalta masina este deconectata), se va recurge la metoda user, descrisa mai sus;
domain:
validarea numelui de utilizator
si a parolei se va
face apelând la un alt server Windows NT, denumit
controler primar sau de
siguranta de domeniu. Parametrul
encryptedpasswords trebuie setat pe Yes.
syslog |
syslog only |
Stabileste nivelul de jurnalizare utilizat de syslog: O = LOG_ERR, l = LOG_WARNING, 2 = LOG_NOTICE, 3 = LOGJNFO, > 4 = LOG_DEBUG. Implicit: L Daca acest parametru este setat pe Yes, mesajele Samba vor fi trimise doar catre sistemul syslog si nu catre fisierele pentru jurnalizare obisnuite.
use rhosts |
username map |
Utilizeaza sistemul .rhosts pentru autentificare (vezi partea II, cap. 4). Nu se recomanda activarea sa. Implicit: No. Specifica un fisier continând mapari ale utilizatorilor de pe partea de client catre utilizatorii de pe server. Poate fi util pentru a crea corespendente între numele de utilizatori Windows si cei de pe masina Linux 23323i89x . Fiecare linie din acest fisier contine numele utilizatorului Linux, caracterul "=",
Administrarea si configurarea sistemelor Linux
urmat de lista de utilizatori corespondenti. Aceasta lista poate contine si nume de forma Qgrup, caz în care se refera la orice utilizator din cadrul grupului respectiv. De asemenea, numele "*" semnifica orice utilizator.
wins server Specifica numele sau adresa IP a serverului WINS la care se va înregistra nmbd.
wins support Permite functionarea nmbd ca server WINS. Nu trebuie setat decât pe o singura masina din retea. Implicit: No.
workgroup Specifica numele workgroup-ului din care face parte masina.
In cele ce urmeaza, prezentam ca exemplu o sectiune [global]:
[global]
numele
workgroup-ului
workgroup=biosfarm
numele
serverului
server string=zeus
masinile
care pot accesa serviciile serverului
hosts allow=10.0.0. 127.
încarca
toate imprimantele din /etc/printcap
load printers=yes
specifica
sistemul de tiparire
printing=lprng
stabileste
un utilizator anonim
guest account=nobody
foloseste
câte un fisier jurnal pentru fiecare masina în parte
log
file=/var/log/samba/%m.log
security=share
username map=/etc/samba/smbusers
Continutul unui fisier /etc/samba/smbusers este furnizat în continuare:
root = administrator admin
nobody = guest pcguest smbguest "Dragos Acostachioaie"
Sectiunea [homes]
Daca aceasta sectiune este prezenta în fisierul de configurare, utilizatorii conectati îsi pot accesa directorul home. Este important de notat faptul ca, daca în aceasta
Setari avansate ale sistemului
sectiune este permis accesul utilizatorului anonim (guest), toate directoarele home vor putea fi accesate fara a fi solicitata vreo parola. Iata o sectiune [home] tipica:
I |
[homes] writable=yes
Sectiunea [printers]
Aceasta sectiune functioneaza într-un mod similar cu [homes], dar pentru imprimante. Cu alte cuvinte, daca aceasta sectiune este prezenta în fisierul de configurare, utilizatorii conectati vor putea accesa toate imprimantele definite în /etc/printcap. Iata o sectiune [printers] uzuala:
[printers]
path=/var/spool/samba
guest ok=yes
printable=yes
Sectiunile pentru definirea resurselor partajate
Sunt recunoscuti urmatorii parametri:
admin users Specifica o lista de utilizatori carora li se vor acorda privilegii
administrative asupra resursei, ca root.
Available Specifica daca resursa este sau nu disponibila. Implicit: Yes.
browseable (sau browsable) Stabileste daca resursa este vizibila în lista de
resurse
disponibile. Implicit: Yes.
Comment Seteaza un comentariu al resursei, care va fi vizibil si
clientului în
lista de resurse disponibile.
copy Copiaza
parametrii altei resurse. Parametrii din sectiunea
curenta vor suprascrie pe cei copiati. Util pentru crearea de
resurse-macheta. create mode (sau create mask) Specifica masca cu care permisiunile fisierelor
nou-create va fi adunata (operatie and). Nu se aplica la^CZ-urile
(Access Control List) din Windows NT/2000. Implicit: 0744. delete readonly Permite stergerea fisierelor care au atributul read-only.
Implicit: No. directory mode (sau directory mask) Specifica masca cu care permisiunile
directoarelor nou-create va fi adunata (operatie and). Nu se
aplica la ^CZ,-urile (Access Control List) din Windows
NT/2000. Implicit: 0755.
Administrarea si configurarea sistemelor Linux
directory security mask Specifica masca cu care permisiunile modificate ale
directoarelor de pe o masina Windows NT/2000 va fi adunata
(operatie and). Implicit: 0777. guest ok (sau public) Permite accesarea resursei de catre utilizatorul anonim.
Implicit: No. hide dotfiles Ascunde fisierele care încep cu un punct (exemplu: .pinerc).
Implicit: Yes.
hidefdes Specifica o
lista de fisiere care vor fi ascunse, dar accesibile.
Pot fi utilizate si caracterele wildcard "*" si "?".
hosts allow Specifica o lista de masini carora le este permis
accesul la
resursa. Vezi formatul descris mai sus, la parametrul
interfaces.
hosts deny Specifica o
lista de masini carora nu le este permis accesul la
resursa. Vezi parametrul precedent. invalid mers Stabileste o lista de utilizatori care nu vor putea accesa
resursa. max connections Stabileste numarul maxim de conexiuni la resursa. Implicit
este O, care permite un numar nelimitat de conexiuni. max print jobs Stabileste numarul maxim de sarcini de tiparire care pot exista
în coada de tiparire Samba la un moment dat. Implicit: O,
adica
fara nelimitat.
only user Permite accesul utilizatorilor al caror nume
nu se afla în lista
username. Este util
doar în cazul security-share. Implicit: No.
path Specifica directorul la care se refera resursa, în cazul
imprimantelor, specifica directorul în care sunt localizate
sarcinile de tiparire.
Printable Specifica faptul ca resursa este o imprimanta. Implicit: No.
printername Specifica numele imprimantei spre care vor fi directionale
sarcinile de
tiparire.
Printing Stabileste sistemul de tiparire utilizat, în implementarea
actuala recunoaste optiunile: BSD, AIX, LPRNG, PIP, SYSV,
HPUX, QNX, SOFTQ, CUPS.
read list Specifica lista de utilizatori care au posibilitatea de citire a
resursei. Poate fi folosita si expresia @grup pentru a specifica
toti utilizatorii dintr-un grup. security mask Specifica masca cu care permisiunile modificate ale fisierelor
de pe o masina Windows NT/2000 va fi adunata (operatie
and). Implicit: 0777. username (sau user, users) Specifica o lista de utilizatori cu a caror parola va fi
comparata parola furnizata, atunci când numele utilizatorului
nu poate fi furnizat de catre client. Este bine sa nu se recurga
la aceasta lista, întrucât reduce atât timpul de validare a
parolei, cât si securitatea sistemului.
Setari avansate ale sistemului
valid users Stabileste o lista de utilizatori care pot accesa resursa.
vetoftles Specifica o lista de fisiere care vor fi ascunse si inaccesibile,
separate prin caracterul ,/". Pot fi utilizate si caracterele wildcard "*" si "?". Numele de fisiere nu pot contine caracterul,/'.
Volume Specifica eticheta de volum a resursei.
writable (sau writeable) Permite crearea si modificarea fisierelor din cadrul resursei. Implicit: No.
write list Specifica lista de utilizatori care au posibilitatea de scriere în
cadrul resursei. Dreptul de scriere este acordat numai daca utilizatorul apare si în lista read list. Poate fi folosita si expresia @grup pentru a specifica toti utilizatorii dintr-un grup.
Mai multe informatii privind fisierul de configurare Samba pot fi obtinute din pagina de manual, cu mân smb_conf.
permite accesul read-only, cu exceptia utilizatorilor din grupul
doc
[documente]
path=/home/biosfarm/doc public=yes writable=yes
write list=@doc
un director
accesibil doar de catre utilizatorul dragos
[work]
path=/home/dragos/work
writable=yes
valid users=dragos
Gestionarea utilizatorilor Samba
Parolele Samba criptate sunt stocate în fisierul /etc/samba/smbpasswd. Ele pot fi modificate cu ajutorul programului smbpasswd. Acesta nu acceseaza direct fisierul de parole, ci prin intermediul smbd. Sintaxa smbpasswd este:
| smbpasswd [ optiuni ] [ utilizator ]
unde optiuni pot fi:
adauga utilizatorul specificat, daca acesta nu exista; -a: sterge utilizatorul specificat;
-d dezactiveaza utilizatorul specificat; cu alte cuvinte, respectivului utilizator i se va respinge accesul la serverul Samba;
Administrarea si configurarea sistemelor Linux
-e reactiveaza utilizatorul specificat;
-n seteaza parola vida pentru utilizatorul specificat. Pentru ca acesta sa poata
accesa serverul Samba, trebuie ca parametrul nuli passwords sa fie setat
pe Yes. -r specifica numele NetBIOS al masinii pe care se afla utilizatorul a carui
parola va fi schimbata (nu are efect daca masina ruleaza Windows for
Workgroups sau Windows 95/98, întrucât acestea nu au o baza de date de
parole); -U utilizator stabileste numele utilizatorului pentru optiunea -r.
Informatii privind alte optiuni pot fi obtinute apelând mân smbpasswd.
Client SMB
Pentru a monta o resursa SMB, se utilizeaza comanda mount cu parametrul -t smbf s. Aceasta apeleaza practic daemonul smbmount:
| smbmount [ -o optiuni ] specificatie_resursa punct_de_montare unde specificatie_resursa este de tip URI, de forma:
smb://server/director
smb://workgroup/server/director
smb://utilizator:parola@server/director
smb://utilizator:parola@workgroup/server/director
Spre exemplu, comanda urmatoare monteaza resursa biosfarm/ hercules/biosfarmîn directorul /mnt/win:
| mount -t smbfs smb://biosfarm/hercules/biosfarm /mnt/win
Pentru tiparirea de fisiere la o imprimanta SMB, se foloseste comanda smbspool având sintaxa:
| smbspool imprimanta_SMB fisier
unde imprimanta_SMB este de tip URI, similar cu specificatia de resursa URI descrisa mai sus.
Ca exemplu, comanda urmatoare tipareste fisierul smbmount. ps la imprimanta laser de pe masina peak:
| smbspool smb://biosfarm/peak/laser smbmount.ps
|