Sei sulla pagina 1di 4

Samba Linux-Windows “advanced”: differenziazione utenti

& cartelle
abbiamo già visto nel post “simple” precedente come ottenere una configurazione di base  di
condivisione di una singola cartella in una minirete LAN avente come server il nostro sistema
GNU/Linux in condivisione con il Pc Windows. In questo post, invece, vedremo come differenziare
le cartelle condivise su di un server ospitante Samba.

Il vecchio config /etc/samba/smb.conf, risultava essere:

[global]
workgroup = WORKGROUP
netbios name = SLACKWARE
server string = SLACKWARE SERVER
security = USER
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = YES
log file = /var/log/samba/%m.log
max log size = 100
log level = 1
[public]
comment = cartella condivisa
path = /home/utente/cartella-condivisa
public = YES
writable = YES

NB: I parametri (per chi non li conosca già) sono spiegati nel post “simple” precedente.

Questa configurazione di base ci permetteva appunto di dare le direttive fondamentali a Samba


partendo dalla condivisione di una cartella singola su di un singolo utente. E se avessimo più utenti
sul server Linux? E se volessimo dire a samba quali sono le cartelle relative ad un utente anzichè un
altro ? E se volessimo specificare l’accesso e le restrizioni delle stesse ?

Facciamo un esempio creando due utenti di prova (pippo, pluto):

~# adduser pippo
~# adduser pluto

Addati gli utenti e settate le password di shell login per gli stessi al sistema dobbiamo logicamente
dire a samba quali sono gli utenti addati ad accedere alle sue risorse e quindi provvederemo a
settare la password per entrambi gli utenti creati,così come avveniva per il primo utente:

~# smbpasswd -a pippo
~# smbpasswd -a pluto

NB: Se si creano gli stessi utenti con relative password anche sul Pc Windows si evita la richiesta di
nome utente e password ogni volta che si tenta di accedere alle risorse di un utente nella
condivisione. In specifico se l’user pippo loggato nel pc Windows, cerchera di accedere al server
Linux mediante Samba non avrà alcun bisogno di specificare nome utente e password, ed avrà
acceso libero alle cartelle ad egli assegnate.

Per prima cosa abilitiamo samba alla visualizzazione di una cartella  accessibile solo agli utenti
proprietari.
NB: Questa direttiva fa in modo che l’utente pippo condivida la sua home utente se sul pc Windows
ci loggeremo con lo stesso user.

Per questo samba dispone della direttiva: homes

[homes]
comment = cartella utente
writable = YES
browsable = NO
valid users = %S

Dove i parametri risultano essere:

[homes] indica la configurazione delle directory utente (/home/utente_loggato).


comment = cartella utente è solo un commento.
writable = YES indica che la cartella è accessibile in scrittura.
browsable = NO indica che la cartella è visibile solo dagli utenti propietari.
valid users = %S indica che la cartella è accesibile solo dagli utenti propietari.Questa variabile
permette di settare per ogni singola home utente i permessi giusti evitandone il setting manuale.

Adesso passiamo alla creazione delle cartelle dedite alla condivisione, esempio:

~# mkdir /home/public
~# mkdir /home/private
~# mkdir /home/pluto_private

Diamo i permessi relativi alle cartelle di esempio create seguendo criteri di differenziazione:

~# chmod 777 /home/public

NB: In questo modo la cartella public sarà accessibile in lettura,scrittura ed esecuzione da tutti gli
utenti avente accesso a samba. Mentre sulla cartella private non verranno effettuate modifiche.

~# chown pluto /home/pluto_private/


~# chgrp pluto /home/pluto_private/

NB: Abbiamo deciso che la cartella pluto_private sia accessibile in lettura,scrittura ed esecuzione
solo dall’utente “pluto”.

Definiti i parametri passiamo le direttive a samba:

[public]
comment = cartella pubblica
path = /home/public
public = YES
writable = YES

Dove i parametri sono:

[public] indica il nome con cui sarà visualizzata la cartella nel Workgroup.
comment = cartella pubblica indica un commento.
path = /home/public indica il percorso su Linux della cartella.
public = YES indica che l’ accesso alla cartella è libero.
writable = YES indica che la cartella è accessibile in scrittura.
[private]
comment = cartella ristretta in scrittura
path = /home/private
public = YES
writable = NO

Dove i parametri sono:

[software] indica il nome con cui sarà visualizzata la cartella nel Workgroup.
comment = cartella ristretta in scrittura indica un commento.
path = /home/private indica il percorso su Linux della cartella.
public = YES indica che l’ accesso alla cartella è libero.
writable = NO indica che la cartella non è accessibile in scrittura, ma solo in lettura.

[pluto]
comment = cartella pluto
path = /home/pluto_private
valid users = pluto
writable = YES

Dove i parametri sono:

[pluto] indica il nome con cui sarà visualizzata la cartella nel Workgroup.
comment = cartella pluto indica un commento.
path = /home/pluto_private indica il percorso su Linux della cartella.
valid users = pluto indica che l’ utente autorizzato ad accedere alla cartella è l’ utente pluto.
writable = YES indica che la cartella è accessibile in scrittura.

NB: E’ solo un esempio di differenziazione delle cartelle, poteva essere necessario magari, abilitare
anche l’utente pippo ad essere proprietario di una cartella etc…Spazio alla fantasia in base alle
esigenze.

Definiti i vari parametri il file config di samba /etc/samba/smb.conf diventerà ricapitolando il tutto:

[global]
workgroup = WORKGROUP
netbios name = SLACKWARE
server string = SLACKWARE SERVER
security = USER
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = YES
log file = /var/log/samba/%m.log
max log size = 100
log level = 1

[homes]
comment = cartella generica
writable = YES
browsable = NO
valid users = %S

[public]
comment = cartella pubblica
path = /home/public
public = YES
writable = YES
[private]
comment = cartella ristretta in scrittura
path = /home/private
public = YES
writable = NO

[pluto]
comment = cartella pluto
path = /home/pluto_private
valid users = pluto
writable = YES

Cosa abbiamo fatto con queste direttive?

Se proviamo ad accedere da Windows alle risorse di rete “loggandoci con uno degli utenti creati in
ugual modo sulla box linux (pippo,pluto)”, noteremo che:

 L’utente Pippo (loggato sulla macchina Win) vede le cartelle: public, pippo, private e
pluto_private. Su di esse avrà accesso libero alle prime tre, di cui su cartella private solo in
lettura. In più gli sarà negato l’accesso su pluto_private (garantito solo in caso di
immissione di utente e password).

Se usciamo e ci rilogghiamo da Windows con utente pluto noteremo che:

 La cartelle visibili adesso sono: public,pluto,private e pluto_private. In specifico la cartella


dell’utente pippo di prima è diventata la cartella pluto proprietaria del nuovo utente. I
permessi per le altre cartelle restano gli stessi, con la differenza che se cerchiamo di
accedere a pluto_private, samba riconoscerà l’utente pluto come proprietario evitandoci di
immettere la password, e dandoci su di essa i pieni diritti in scrittura,lettura ed esecuzione.

Definito il nuovo config, avviamo l’utility di test per verificare che tutto sia apposto:

~# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Processing section "[brother]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Quindi restartiamo Samba:

~# /etc/rc.d/rc.samba restart
Starting Samba:  /usr/sbin/smbd -D
                 /usr/sbin/nmbd -D

# End

Potrebbero piacerti anche