Mòdul 6
Serveis de xarxa amb GNU/Linux
Exercici 123

 
Personalització del servei
 

Introducció 

En aquest apartat descriurem els paràmetres que composen la configuració mínima del Samba de manera que, cada administrador pugui personalitzar al màxim els recursos compartits, crear grups de treball i deixar-la amb els valors mes òptims, tenint en compte les característiques de l'equip on estigui instal·lat i els clients a qui ha de donar servei.

Els paràmetres que governen el Samba apareixen tots dins un únic fitxer de text anomenat smb.conf desat normalment al directori /etc

De forma automàtica els processos smbd van repassant aquest fitxer per incorporar els canvis més recents. No cal aturar expressament totes les connexions dels usuaris, normalment, si un d'ells té problemes i ens cal modificar la configuració, reiniciant la sessió d'aquest ja ens permet sortir del pas.
 

Format del fitxer de configuració smb.conf

El fitxer de configuració del Samba va encapçalat per una secció general, etiquetada de forma obligatòria com a [global], que afecta a tot el servei, cal tenir cura de no renombrar-la o eliminar-la.

Els paràmetres mínims recomanables per aquesta secció són:

#======================= Parametres Globals =================================
[global]

# Nom del grup de treball
#
   workgroup = DELCENTRE

# Descripció del servidor dins l'explorador de la xarxa
#
   server string = Servidor Linux amb Samba

# Xarxes que tenen permís per accedir als serveis del Samba
#
   hosts allow = 192.168. 127.

# Captura automàtica de les impressores del servidor
#
   printcap name = /etc/printcap
   load printers = no

# Registre de funcionament personalitzat per màquina
# %m = nom del host del client que fa les peticions
#
   log file = /var/log/samba/log.%m

# Mida màxima del registre en Kbytes
#
   max log size = 50

# Requeriments de seguretat per a l'accés als recursos
#
   security = user
   encrypt passwords = yes
   smb passwd file = /etc/smbpasswd

# Optimització dels paràmetres TCP per aconseguir la màxima velocitat
#
  socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# Obligatorietat de resoldre per DNS el nom dels equips
#
   dns proxy = no

A partir d'aquest punt es declaren els recursos a compartir, tant si són espais de disc com impressores. 
 

Exemples de configuracions típiques

El paquet Samba ofereix un nivell de personalització molt elevat i intentar fer un recull de totes les opcions quedaria molt extens pel temps que podem dedicar a aquest tema. Per això, i en pro de la didàctica, comentarem els aspectes més importants utilitzant possibles propostes adreçades a l'entorn de treball.

És força important també poder 'limitar' l'espai màxim d'aquests espais compartits que es volen posar a disposició dels usuaris. Dins l'últim mòdul veurem com aplicar 'quotes' de disc per 'dosificar' els recursos del servidor, tasca que realitza directament el sistema operatiu.


- Accés a l'espai personal de treball
- Espai compartit per un grup d'usuaris
- Espai de només lectura per un grup d'usuaris i drets totals per a un responsable
- Espai comú per a tots els usuaris de la xarxa
- Impressió en xarxa, cada grup de treball té assignada una impressora
 

Accés a l'espai personal de treball

Disposar d'un espai personal per a cada usuari és molt simple, només cal donar-los d'alta dins el servidor Linux i aquest ofereix aquesta funcionalitat, doncs és un sistema operatiu que ja va nèixer multiusuari.

L'accés a aquest espai personal des de qualsevol estació client (Windows) de la xarxa, es pot materialitzar utilitzant el compartit 'especial' anomenat [homes]que ja apareix inicialment en la configuració per defecte.

Recordeu que cal 'habilitar' els usuaris per al treball amb al Samba amb l'ordre smbpasswd, per exemple, en el cas de l'usuari jmarti:

# smbpasswd -a jmarti 
passwd : (contrasenya de l'usuari) 
retype : 

El fet d'haver de donar d'alta l'usuari dues vegades (primer al Linux i després al Samba) ho evitarem amb les eines avançades d'administració, com per exemple WebMin, habilitant l'opció que genera automàticament les altes 'Samba' quan es fa un nou usuari al sistema.

Anem a comentar com està implementat a nivell de configuració i l'accés des dels clients.

1) Recurs definit dins el fitxer de configuració, un cop acaba la declaració [global]

[homes]
   comment = Espai personal de l'usuari %u
   browseable = no
   writable = yes

la variable %u es substitueix pel nom de l'usuari que accedeix al recurs quan es consulta els detalls del compartit dins els exploradors de la xarxa Windows.

2) L'accés des dels clients normalment es fa 'mapejant' una unitat (per exemple la U:) al recurs homes, així sempre hi apareixerà l'espai personal de l'usuari que hagi iniciat la sessió en el Windows.


Figura 7.- Accés a l'espai personal de forma independent a l'usuari
 

Espai compartit per un grup d'usuaris

1) Per aconseguir compartir un espai del disc, començarem creant un grup d'usuaris al Linux, per exemple amb el nom grupa:

# groupadd grupa

afegint seguidament tots els usuaris que han de pertànyer a aquest grup, per exemple:

# usermod -G grupa usuari1 
# usermod -G grupa usuari2 
# usermod -G grupa usuari3

2) Preparem un directori per poder-lo utilitzar com arrel de la nostra estructura de xarxa local, amb el nom de xal, aconseguint tenir "endreçats" tots els directoris a compartir, facilitant-ne la localització i còpia de seguretat del seu contigut,

# mkdir /home/xal
# chmod ug=rwx,o=rx /home/xal

3) Preparem l'espai compartit per treballar amb el grup,

# mkdir /home/xal/grupa
# chgrp grupa /home/xal/grupa
# chmod ug=rwx,o-rwx /home/xal/grupa

deixant l'accés barrat a nivell Unix per altres usuaris o grups, tot i que no és del tot necessari doncs el Samba només hi donarà accés des de les estacions de treball als usuaris del grup grupa.

3) Afegim aquest espai compartit a la configuració del Samba per poder-hi accedir de forma còmode des de la xarxa Windows, creant l'entrada [GrupA] dins l'espai de recursos compartits del fitxer smb.conf, amb els següents paràmetres:

[GrupA]
comment = Espai compartit per al Grup A
path = /home/xal/grupa
valid users = @grupa
create mode = 0660
directory mode = 0770
writable = yes

4) Habilitarem els usuaris per treballar amb el Samba (si no ho havíem fet ja):

# smbpasswd -a usuari1
# smbpasswd -a usuari2
# smbpasswd -a usuari3

A partir d'aquest moment ja poden iniciar la sessió des d'una estació Windows i accedir a l'espai compartit GrupA.


Fig 5.- Recursos de xarxa per l'usuari usuari1

Per fer més senzill l'accés als recursos d'usuari es poden mapejar les unitats, per exemple:

U: -> Unitat personal d'usuari mapejada del recurs de xarxa \\Linux\homes o \\Linux\usuari1
G: -> Unitat personal de grup mapejada de \\Linux\GrupA

<-

Espai de només lectura per un grup d'usuaris i drets totals per a un responsable

El propòsit d'aquest recurs compartit és aconseguir un espai en xarxa perquè el professorat pugui fer arribar fitxers amb documentació, exercicis o qualsevol material als alumnes al seu càrrec, sense que ells puguin esborrar o modificar-ne l'original. 

Per exemple, el professor/a responsable col·loca un fitxer base per un exercici concret, els alumnes del seu grup poden recollir-lo, i amb la còpia del fitxer en el seu espai personal, comencen a treballar amb ell. 
 

1) Donem d'alta el professor/ora responsable del Grup A (si no el teníem al sistema),

# useradd profgrupa
# passwd profgrupa

el fem del mateix grup de treball Unix que els seus alumnes,

# usermod -G grupa profgrupa

i l'habilitem per poder treballar amb el Samba des de qualsevol estació client.

# smbpasswd -a profgrupa

2) Preparem un directori per crear l'espai compartit,

# mkdir /home/xal/material-grupa
# chmod g+w /home/xal/material-grupa
# chgrp profgrupa /home/xal/material-grupa

deixant els drets retallats per evitar que pugui esborrar-se, de forma accidental (o intencionada) des d'altres usuaris via UNIX, quedant propietat de l'usuari root i amb el grup de treball profgrupa del qual només és membre per defecte l'usuari responsable.

3) Afegim el recurs compartit dins la configuració del Samba,

[MatGrupA]
comment = Material per al Grup A
path = /home/xal/material-grupa
valid users = @grupa
write list = profgrupa
read list = @grupa
writable = no

de manera que el professor/a responsable ja pot connectar-se a l'espai MatGrupA i desar-hi els exercicis o materials per als alumnes, sense haver de preocupar-se per si seran esborrats o modificats.


Figura 6.- Exemple de material posat a disposició de l'alumnat dins el nou espai de xarxa

<-

Espai comú per a tots els usuaris de la xarxa

Un cop vist com podem assignar a cada grup de treball el seu espai propi, crearem una safata d'intercanvi per a tots els usuaris de la nostra xarxa. 

Per accedir a aquest recurs només caldrà iniciar la sessió Windows amb un usuari donat d'alta dins el servidor Linux que estigui habilitat per treballar amb el Samba.

1) Donem d'alta l'usuari que utilitzarem de 'comodí' per aquest espai públic, i aprofitem per crear el directori, que serà directament el seu 'home',

# useradd -d /home/xal/safata-publica usafata
# passwd usafata

2) Afegim a la configuració del Samba l'entrada que ens farà visible el nou espai de lectura-escriptura per a tots els usuaris de la xarxa,

[SafataP]
comment = Espai public
path = /home/xal/safata-publica
force user = usafata
writable = yes

en aquest espai físic ( /home/xal/safata-publica ), malgrat sigui utilitzat des de qualsevol identificador, hi escriurà sempre l'usuari 'comodi' usafata, estalviant la creació d'un grup general on hi hauríem d'incloure tots els usuaris de la xarxa.

<-

Impressió en xarxa, cada grup de treball té assignada una impressora

Per defecte qualsevol impressora instal·lada en el servidor, abans de posar en marxa els serveis Samba, queda accessible als usuaris per defecte, segons la configuració inicial que conté l'entrada específica [ printers ].

Aquest espai és molt semblant al compartit específic dels usuaris [ homes ] però per impressores.

Instal·lar una impressora directament connectada al Linux, via línia de comandes, no és gens trivial. Si us cal fer-ho, podeu trobar tota l'ajuda necessària dins el fitxer 'HOWTO' següent:

http://www.insflug.org/COMOs/Configuracion-Impresion-Como/Configuracion-Impresion-Como.html

També cal dir que ho podrem fer més endavant, d'una manera molt més simple, utilitzant una eina d'administració via Web, com per exemple la que es comenta dins el mòdul d'Eines, anomenada Webmin.

Abans de fer cap prova d'instal·lació d'una impressora, cal tenir en compte quines 'suporta' actualment el Linux. Consulteu el llistat de les que són compatibles actualment:

http://www.linuxprinting.org/printer_list.cgi

En aquest cas, per treballar una mica en la configuració del Samba, el farem 'gobernar' les cues d'impressió, de manera que cada grup de treball tingui una impressora associada. Per aconseguir-ho comentarem l'entrada genèrica [ printers ] i configurarem cada impressora per separat.

Suposarem que tenim dues impressores, una HP 550 connectada a la xarxa amb un 'jetdirect' i una Xerox 4030 (treballant com a HP LaserJet) compartida per un Windows 95/98 de nom estacio100, amb un usuari i contrasenya conegut només per l'administrador. 

Utilitzant el programari Webmin, comentat dins el mòdul 7, deixarem les impressores configurades, especificant fins i tot el 'driver' corresponent per a cadascuna.
 

Compartiment de les impressores dins el Samba

Tenim dos grups de treball A i B, i volem assignar a cada grup una impressora. El primer treballarà amb l'HP del 'jetdirect' i l'altre amb la Làser via Windows.

El professor/a responsable (en aquest cas amb l'usuari 'profgrupa') podrà imprimir amb qualsevol de les dues.

Les impressores s'han afegit al sistema anteriorment, l'HP amb el nom hpdesk i la que tenim connectada a una estació Windows (impressora SMB) com a hplaser.

Per poder 'compartir' les impressores per a totes les estacions de la xarxa cal verificar primer que des del servidor es pot imprimir sense problemes. 

Podeu observar l'estat de les impressores amb l'eina lpc, demant l'opció 'status'

i fer una prova d'impressió des de la línia de comandes executant:

# lpr -Phplaser < /etc/passwd

De manera que enviem el fitxer passwd a la impressora Làser compartida amb Windows.

Si no apareix la tasca impresa podem utilitzar l'eina lpc per saber què pot estar passant:

Sembla que la impressora es troba fora de línia o desconnectada... però la feina ha quedat emmagazemada per quan es posi en marxa.

Si la impressora està averiada i volem eliminar la tasca (o tasques) de la 'cua' (spool) ho podem fer utilitzant lpq, per llistar el contingut de la cua i lprm per eliminar-ne les feines pendents.

Amb l'eina gràfica WebMin també podreu gestionar les cues d'impressió, directament des de qualsevol navegador.
 

Afegim finalment les impressores compartides a la configuració del Samba, assignant l'HP per al grup A, la Làser per al B i garantint el servei al professor responsable,

[Deskj550]
    comment = Impressora Deskjet Grup A
    path = /var/spool/lpd/hpdesk
    printable = yes
    print command = /usr/bin/lpr -Phpdesk
    printer = hpdesk
    printing = BSD
    valid users = profgrupa 
    valid users = @grupa
    printer driver = HP Deskjet 550C Printer

[Laser]
    comment = Impressora Laser Grup B
    path = /var/spool/lpd/hplaser
    printable = yes
    print command = /usr/bin/lpr -Phplaser
    printer = hplaser
    printing = BSD
    valid users = profgrupa
    valid users = @grupb
    printer driver = HP LaserJet Series II
 

Accés a les impressores des dels clients

Per accedir-hi des dels Windows les configurarem com a impressores de xarxa, per exemple, fent doble clic sobre les icones que ofereix el servidor Linux des de l'explorador.


Figura 7.- Impressores al servei de la xarxa vistes des de l'explorador.

Si es vol fer manualment, les impressores es troben a:

\\Linux\Deskj550
\\Linux\Laser

Gràcies a les entrades printer driver de la configuració, el Windows cercarà aquest 'driver' per deixar la impressora instal·lada de forma òptima en cadascun dels casos.

<-