(dettagli relativi a FreeBSD)
Antonio Bonifati http://ninuzzo.freehostia.comLo scopo di questo articolo è di introdurre l'uso di Samba, un potente tool che permette di integrare il mondo UNIX con Windows implementando il protocollo di condivisione di file e stampanti SMB, ora chiamato anche CIFS (Common Internet Filesystem). Samba è un programma molto complesso ed altamente configurabile. Esistono interi libri devoti all'argomento. Questo articolo rappresenta solo una prima introduzione e contiene una spiegazione dettagliata solo della configurazione di default, quella più comune e semplice. Tuttavia samba può fare molto di più, persino agire come un controllore primario di un dominio WinNT.
# /stand/sysinstall configPackagesselezionare
net
/samba-2.2.8
e confermare
l'installazione.
Usando pkg_add(1) dalla directory /cdrom/packages/All:
# pkg_add samba-2.2.8.tgz ===> Stopping cupsd ... No matching processes were found ********************************************************************** ********************************************************************** NOTE FOR PACKAGE USERS ONLY: ============================ This package does not create the spool directory, due to limitations in the packaging mechanism, or my knowledge of it. Once the package is installed, please do the following (as root): cd /var/spool mkdir -p cups/tmp chown -R root:daemon cups Thanks. -- AlanE, your friendly neighborhood cups maintainer and all around wild and crazy (ok, well just crazy) guy. ********************************************************************** ********************************************************************** ======================================================================= WARNING: In FreeBSD, it's known that compiling samba with any kind of optimization flags might cause problems under certain circumstance. If you caught any show stopper, please try taking optimization flag(s) out of your CFLAGS and recompile/reinstall samba. =======================================================================
/usr/local/etc/smb.conf.default
oppure
/usr/local/share/examples/samba/smb.conf.default
,
/usr/local/share/examples/samba/simple/smb.conf
./etc/passwd
si trova in
/usr/local/private/smbpasswd
.
/usr/local/sbin/
e sono smbd(8)
e
nmbd(8)
./usr/local/bin/smbclient
./usr/local/bin/testparm
.# cd /usr/local/etc/rc.d/ # mv samba.sh.sample samba.shNon è necessario riavviare, potete eseguire lo script samba.sh manualmente da root per questa volta. Prima però predisponete il file di configurazione di default:
# cd /usr/local/etc # cp smb.conf.default smb.conf
smbd
si trova in
/var/log/log.smbd
e similmente quello di
nmbd
in /var/log/log.nmbd
.
/usr/local/share/swat/using_samba/index.html
# pkg_info -L 'samba*' | grep -w manLe FAQ in formato HTML sono in
/usr/local/share/doc/samba/faq/sambafaq.html
# less /usr/local/share/doc/samba/faq/sambafaq.txtInformazioni su come testare il server in
/usr/local/share/doc/samba/textdocs/DIAGNOSIS.txt
/usr/local/etc/smb.conf
che abbiamo messo in
produzione poco prima contiene i seguenti settaggi, escludendo
quegli esempi che sono commentati:
[global] # workgroup = NT-Domain-Name or Workgroup-Name, eg: REDHAT4 workgroup = MYGROUP # server string is the equivalent of the NT Description field server string = Samba Server # If you want to automatically load your printer list rather # than setting them up individually then you'll need this load printers = yes # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/log.%m # Put a capping on the size of the log files (in Kb). max log size = 50 # Security mode. Most people will want user level security. See # security_level.txt for details. security = user # Most people will find that this option gives better performance. # See speed.txt and the manual pages for details # You may want to add the following on a Linux system: # SO_RCVBUF=8192 SO_SNDBUF=8192 socket options = TCP_NODELAY # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The built-in default for versions 1.9.17 is yes, # this has been changed in version 1.9.18 to no. dns proxy = no #============================ Share Definitions ============================== [homes] comment = Home Directories browseable = no writeable = yes # NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = no writeable = no printable = yesIl formato di questo file è molto semplice: è costituito da una serie di sezioni, ciascuna contenente l'impostazione di un certo numero di parametri. L'inizio di una sezione è contrassegnato dal nome della sezione racchiuso tra parentesi quadre (il tutto deve stare su una linea a se stante). Una sezione si estende fino al prossimo identificatore di sezione. I parametri vengono assegnati tramite il formato
name = value
(il tutto deve stare su una linea a se
stante; tuttavia se una linea termina con \ la prossima linea viene
considerata la continuazione della precedente). I nomi delle
sezioni e dei parametri possono essere scritti indifferentemente in
maiuscolo o minuscolo. Le linee che iniziano con # o ;
rappresentano commenti. Per convenzione si è scelto di
utilizzare # per i commenti in lingua naturale, mentre ; viene
utilizzato per commentare direttive che non si vogliono utilizzare.
Ogni sezione rappresenta una risorsa da condividere (in gergo detta
share) eccetto le tre sezioni speciali [global]
,
[homes]
e [printers]
. Nel file precedente
ci sono solo queste sezioni speciali che adesso descriveremo. Per
maggiori informazioni vedere smb.conf(5)
.
[global]
# workgroup = NT-Domain-Name or Workgroup-Name, eg: REDHAT4 workgroup = MYGROUPIl valore di default dell'opzione
workgroup
è
WORKGROUP
. Cambiate questo valore con quello del
vostro gruppo di lavoro. Lo stesso valore deve essere impostato per
i client Windows, tramite il Pannello di controllo/Rete per Win9X,
o nel caso di Win2k tramite Pannello di
controllo/Sistema/Identificazione rete.# server string is the equivalent of the NT Description field server string = Samba ServerIl valore di default è
Samba %v
. %v viene
sostituito con il numero di versione di Samba, mentre un %h viene
sostituito con il nome dell'host. Questa stringa appare quando
è selezionata l'icona che rappresenta il server samba in
"Risorse di rete".# If you want to automatically load your printer list rather # than setting them up individually then you'll need this load printers = yesSe questa variabile booleana vale yes, tutte le stampanti configurate in /etc/printcap verranno listate come printer share. Se esiste una sezione speciale [printers] nel file di configurazione, ed in quello di default esiste, gli utenti saranno in grado di connettersi a qualsiasi stampante configurata nel file printcap(5) del server Samba. Se volete che gli utenti possano utilizzare tutte le stampanti o avete una sola stampante da condividere questo è il modo più semplice.
# this tells Samba to use a separate log file for each machine # that connects log file = /var/log/log.%mControllate il file /var/log/log.%m quando avete problemi di connessione da un determinato client. %m rappresenta il nome NetBIOS del client. Se invece usate %u avrete un file di log separato per ogni utente anziché per ogni macchina.
# Put a capping on the size of the log files (in Kb). max log size = 50Il valore di questo parametro, che deve essere un intero e va inteso espresso in kilobyte, specifica la massima dimensione che può assumere il file di log (o ciascuno dei file di log, se si usa un file di log separato per ogni macchina). Samba controlla periodicamente la dimensione dei file di log: se trova che un file eccede questo valore lo rinomina aggiungendo una estensione .old e ne crea uno nuovo inizialmente vuoto.
# Security mode. Most people will want user level security. See # security_level.txt for details. security = userCi sono diverse modalità di autenticazione. La user è la più comune, quella di default in samba, ed implica che per accedere alle share tutti i client devono fornire una combinazione nome utente/password valida. Poichè Windows 2k tenta dapprima di usare lo stesso nome utente e la stessa password che si è utilizzata per il login per autenticarsi quando si accede alle risorse sulla rete, se queste sono valide anche per accedere alla risorsa messa a disposizione da Samba, l'utente non dovrà ridigitare niente. Windows 95/98 non hanno password per il login, tuttavia all'avvio i driver della rete richiederanno un nome utente ed una password che useranno poi in automatico quando ci si connette alle risorse di rete, esattamente come fa Windows 2k con i dati di login. Affinché questo meccanismo di autenticazione "automatica" funzioni sempre occorre che i client Windows e samba utilizzino gli stessi dati di account (nomi utenti e password).
Naturalmente per ogni share è possibile restringerne
l'utilizzo solo a certi utenti, anziché permetterne l'uso a
tutti gli utenti che sono correttamente autenticati. Vedere a
proposito la direttiva valid users (S)
in
smb.conf(5).
# Most people will find that this option gives better performance. # See speed.txt and the manual pages for details socket options = TCP_NODELAYsamba usa il protocollo di Internet TCP. Questo parametro permette di settare i parametri dei socket usati per comunicare con il client. Per fare questo samba utilizza la system call setsockopt(2). Occorre essere esperti per capire come settare al meglio questa opzione e comunque il settaggio ottimale dipende dal sistema operativo che si ha e dalla rete locale. L'unico modo per essere sicuri della efficia di una impostazione è fare dei test. Alcuni consigli su come settare questa opzione vengono dati in anche in smb.conf(5). Nella maggior parte dei casi l'opzione TCP_NODELAY per i socket TCP, che indica di non ritardare l'invio allo scopo di fondere i pacchetti, sembra che all'incirca raddoppi la velocità di lettura da un server samba perchè l'implementazione dello stack TCP/IP di Microsoft pare sia lenta nel mandare i pacchetti tcp di acknowledge.
Ci sono due documenti che descrivono rispettivamente l'ottimizzazione lato server e lato client:
/usr/local/share/doc/samba/textdocs/Speed.txt /usr/local/share/doc/samba/textdocs/Speed2.txt
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The built-in default for versions 1.9.17 is yes, # this has been changed in version 1.9.18 to no. dns proxy = noQuesta opzione ha effetto solo se samba agisce da server WINS (per default non vi agisce, occorre settare a yes il parametro globale
wins support
). Un WINS server è necessario nel
caso si abbiano più sottoreti e si vuole abilitare il
browsing attraverso le sottoreti. Si tratta di una
funzionalità avanzata. Vedere a proposito
/usr/local/share/doc/samba/textdocs/BROWSING.txt.
L'opzione dns proxy
specifica, quando nmbd(8)
agisce da wins server, e trova che un nome NetBIOS di cui il client
gli chiede risoluzione non è stato registrato, se deve
essere fatto il lookup del nome NetBIOS nel DNS (trattando il nome
NetBIOS letteralmente come un nome DNS). Il valore di default
è yes.
[homes]
path
esplicito, il
path della share viene impostato uguale alla home directory
dell'utente individuato prima.
comment = Home DirectoriesStringa di commento da associare alla nuova share, sia alla share homes se visibile, che alle nuove share che sono create clonando e modificando la homes. Per default la stringa di commento è vuota. La stringa appare vicino al nome della share quando si usa il comando
net view \\host
(MS-DOS) oppure si naviga
in Risorse di rete, oppure si usa il comando smbclient -NL
//host
(UNIX), per mostrare la lista delle share
disponibili.browseable = noSe viene settato a no ed utilizzate l'opzione
-L host
di smbclient(1) da UNIX, oppure il comando net view
\\host
da una shell MS-DOS, per ottenere la lista delle
share disponibili sull'host, la share speciale homes non
sarà visibile. Questo valore riguarda solo la share speciale
homes: le share clonate a partire da homes ereditano il valore del
flag browseable dalla sezione global, e quindi non ereditano il
valore browseable della sezione homes. In altri termini settando a
no il flag browseable per la share homes, questo ha l'effetto di
nascondere la share homes, ma ogni share automatica creata a
partire da homes per accedere alle home directory rimane visibile.
Indipendentemente dal fatto che la share homes sia visibile o meno,
essa esiste e ci si può connettere. Quando ci si connette
alla share homes avviene lo stesso processo di clonazione descritto
prima, eccetto che il nome della share homes non viene cambiato: si
accede quindi lo stesso alla propria home directory.writeable = yesIl parametro
writeable
è il sinonimo inverso
del parametro read only
. Poichè l'accesso come
guest per la sezione homes è disabilitato di default,
l'utente guest non potrà scrivere (creare e modificare file)
in una home directory e nemmeno leggerla. Quindi in questo caso
questa opzione non significa consenti la scrittura a tutti e non
è pericolosa. Tuttavia un altro utente autenticato, diverso
da quello a cui appartiene la home directory, potrà leggere
e scrivere se si connette alla home directory di un altro utente
specificandone il nome, se i permessi di UNIX lo consentono.[printers]
Nella sezione precedente abbiamo visto l'algoritmo di ricerca dei servizi. Questo si completa come segue: se non può essere usata la sezione homes, ed esiste la sezione printers, samba tratta il nome della sezione richiesta come un nome di stampante. Lo cerca nel file printcap(5) (fa match anche con gli alias del nome della stampante definiti in questo file). Se lo trova crea una nuova share di tipo stampante clonando la sezione printers e connette il client a questa share. Le modifiche che vengono fatte alla nuova share creata includono naturalmente il cambiamento del nome da printers al nome della stampante individuato.
comment = All PrintersQuesto parametro ha significato analogo a quello descritto per la share homes.
path = /var/spool/sambaPercorso della directory di spool. Questa deve essere accessibile in scrittura a tutti gli utenti e deve avere lo sticky bit settato:
$ ls -ld /var/spool/samba drwxrwxrwt 2 root wheel 512 May 24 18:28 /var/spool/sambaLo sticky bit è un permesso speciale di UNIX che migliora la sicurezza in questo caso: quando su una directory viene settato questo bit, un utente non privilegiato non può cancellare o rinominare dei file di altri utenti in quella directory, anche se l'utente ha il permesso di scrittura in quella directory. Lo sticky bit può essere impostato su una directory. Vedere chmod(2) e sticky(8) in FreeBSD per maggiori dettagli.
browseable = noCome visto prima a proposito della share speciale homes, questo parametro stabilisce se la share è visibile nella lista delle share disponibili quando si esegue il comando MS-DOS
net view
o si clicca su un computer in Risorse di
rete. Il valore di default è yes. Le varie stampanti
condivise avranno ciascuna un'icona, che corrisponde ad una share
separata anche se questo parametro è settato a no.# Set public = yes to allow user 'guest account' to print guest ok = noDecide se permettere l'accesso all'utente anonimo di default (guest). Questo utente può accedere senza fornire una password, a meno che non sia bloccato a monte in base al suo indirizzo IP da eventuali firewall oppure dalla direttiva
hosts allow
descritta in seguito. La direttiva
guest account
stabilisce quale utente UNIX deve
corrispondere all'utente guest di samba (e questo definisce i
privilegi di accesso in questo caso). Il default specificato a
tempo di compilazione di samba per FreeBSD è l'utente nobody
per cui per default il login è disabilitato e i privilegi
sono molto limitati.writeable = noUna share per le stampanti dovrebbe essere a sola lettura ma printable (vedi sotto). Infatti dovrebbe essere possibile l'accesso in scrittura solo per poter trasferire nello spooler i file che devono essere stampati. La risorsa non dovrebbe essere accessibile in scrittura per scopi diversi da quello della stampa, perciò conviene settare questo parametro come no.
printable = yesIl servizio printers deve essere printable, altrimenti il servizio printers sarebbe inutile. Questo flag permette di scrivere nel path del servizio (privilegi dell'utente permettendo, vedere a proposito come sono stati impostati i privilegi nella directory di spool), ma solo per scrivere e sottomettere file allo spooler di stampa. Il default è no quindi occorre settare esplicitamente a yes questo flag.
# smbpasswd -a user
-a
sta per "add user", mentre user
è il nome utente. Questo comando aggiorna il file
/usr/local/private/smbpasswd
con il nome utente e la
password richiesta (da digitare due volte). Se l'utente esiste
già non viene aggiunto e viene solamente aggiornata la
password. Attenzione che un account utente unix con lo stesso nome
utente deve esistere per ogni account samba, mentre la password
può anche essere diversa, o l'account unix potrebbe essere
disabilitato (ma deve esserci).
Per provare da unix, dopo essersi loggati con lo stesso nome
utente user
, fare:
$ smbclient //localhost/userinserire poi la password di samba dell'utente
user
. Se
si usa il client smb da un altro host, sostituire localhost con il
nome del server samba. Se si è loggati con un altro utente
aggiungere alla fine del comando precedente l'opzione
-U user
.
# You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yesin questo modo le password sono conservate nel server in forma di hash (dall'hash non si può più risalire alla password in chiaro). Cosa ancora più importante la password e nemmeno il suo hash vengono mai mandate in chiaro attraverso la rete. Il meccanismo che viene usato per l'autenticazione, nonchè l'uso di smbpasswd(8) è spiegato in dettaglio in
/usr/local/share/doc/samba/htmldocs/ENCRYPTION.html
.
L'abilitazione di questa direttiva in combinazione con
l'impostazione security = user richiede però la gestione di
un file delle password di Samba (smbpasswd(5)) separato da quello
di sistema di UNIX ed occorre mantenerli sincronizzati. Purtroppo
infatti l'hash unidirezionale di UNIX e quello usato da Samba sono
differenti.
Come ulteriore livello di protezione oltre le password di utente, si può limitare l'accesso a tutti i servizi di samba. Per default l'accesso è permesso a tutti gli host (naturalmente anche in quest'ultimo caso occorre sempre fornire una password per le risorse che lo richiedono):
# This option is important for security. It allows you to restrict # connections to machines which are on your local network. The # following example restricts access to two C class networks and # the "loopback" interface. For more examples of the syntax see # the smb.conf man page hosts allow = 192.168.1. 192.168.2. 127.
Questo esempio non permette di fare nulla, nemmeno ottenere l'elenco delle share o degli host del gruppo di lavoro se samba è il local master browser agli host a cui non è permesso l'accesso.
Non è necessario riavviare samba dopo una modifica a smb.conf, se siete disposti ad aspettare un minuto, il file di configurazione verrà automaticamente ricaricato dopo un minuto. Se invece non volete aspettare allora si può forzare il reload mandando un segnale SIGHUP al server smbd(8), utilizzando il comando kill(1). Le connessioni che sono già stabilite non saranno influenzate da cambi di configurazione quando si ricarica il file di configurazione. Per testare questi cambi o l'utente deve disconnettersi e poi riconnettersi (usando il menu Start o Avvio di Windows e scegliendo "Disconnetti utente..."), oppure fermate e poi avviate il server smbd.
Per la sicurezza date molta attenzione ai permessi del file smbpasswd(8) e della directory che lo contiene, che dovrebbero essere molto restrittivi come segue:
# ls -ld /usr/local/private/ dr-x------ 2 root wheel 512 May 22 20:24 /usr/local/private/ # ls -l /usr/local/private/ total 16 -rw------- 1 root wheel 8192 Jun 20 23:14 secrets.tdb -rw------- 1 root wheel 2643 Jun 20 17:40 smbpasswd -rw------- 1 root wheel 2643 May 22 19:03 smbpasswd.default
Per i backup/restore dei file TDB (Trivial Database) di samba si può utilizzare l'utility tdbbackup.
Se avete interfaccie di rete multiple, potete restringere la
lista delle interfaccie usate da samba con il parametro
interfaces
.
Ogni tanto consultate i log, perchè contengono informazioni utili o segnalazioni di eventuali problemi. Ad esempio potete sapere se il vostro server Samba ha vinto le elezioni ed è diventato local master browser. In tal caso nel file di log /var/log/log.nmbd ci sarà scritto qualcosa del tipo:
***** Samba name server NINUZZO is now a local master browser for workgroup HOME on subnet 1 92.168.1.1 *****
Altro esempio: quando riavviate smbd mandando con kill(1) il segnale SIGHUP, verrà indicato in /var/log/log.smbd con una linea "Got SIGHUP".
Se volete utilizzare Samba per condividere delle stampanti,
leggete /usr/local/share/doc/samba/textdocs/Printing.txt. Io lo uso
per condividere una stampante USB. Ho attivato il supporto per
stampanti USB nel kernel, e il demone usbd(8) inserendo la linea
usbd_enable="YES"
in rc.conf(5) ed ho configurato la
stampante in modalità raw con cups, The Common UNIX Printing
System, attraverso la sua interfaccia web di amministrazione.
L'utility smbstatus(1) riporta le connessione correnti di Samba. Se non ce n'è nessuna stampa:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- No locked filesSupponendo ci sia una connessione al server samba per recuperare l'elenco degli host della LAN (la cosa avviene quando si clicca una volta sull'icona Risorse di rete) si ha qualcosa di simile a:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- IPC$ nobody nobody 419 dolly (192.168.1.3) Fri Jun 20 22:31:54 2003 No locked files
Qui dolly è il nome della macchina client e 192.168.1.3 il suo indirizzo IP. Poco tempo dopo aver recuperato la lista la connessione viene chiusa. Supponiamo poi che l'utente ant su dolly clicchi sul computer che rappresenta il server samba:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- IPC$ ant ant 426 dolly (192.168.1.3) Fri Jun 20 22:34:50 2003 No locked files
Questa connessione recupera l'elenco delle share sul server samba e viene chiusa dopo un po'. Cliccando sulla share che rappresenta la home directory si ha:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- ant ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 IPC$ ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 No locked filese dopo un po' permane solo questa:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- ant ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 No locked filesIl formato breve si ottiene con l'opzione -b:
$ smbstatus -b Samba version 2.2.8 PID Username Machine Time logged in ------------------------------------------------------------------- 434 ant dolly Fri Jun 20 22:36:27 2003Supponiamo poi l'utente ant apra con Blocco note il file /home/ant/.bashrc:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- ant ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 IPC$ ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:42:55 2003 Locked files: Pid DenyMode Access R/W Oplock Name -------------------------------------------------------------- 434 DENY_NONE 0x1 RDONLY EXCLUSIVE+BATCH /home/ant/.bashrc Fri Jun 20 22:42:36 2003 $ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- ant ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 Locked files: Pid DenyMode Access R/W Oplock Name -------------------------------------------------------------- 434 DENY_NONE 0x1 RDONLY EXCLUSIVE+BATCH /home/ant/.bashrc Fri Jun 20 22:42:36 2003L'utente salva le modifiche e chiude il Blocco note e il lock viene rilasciato:
$ smbstatus Samba version 2.2.8 Service uid gid pid machine ---------------------------------------------- ant ant ant 434 dolly (192.168.1.3) Fri Jun 20 22:36:27 2003 No locked filesOltre alle share homes e printers potete creare altre share non speciali utili. Alcuni esempi commentati sono forniti nel file smb.conf di default, occorre solo toglierli dal commento. Eccone uno che consente agli utenti di avere un'area di appoggio in cui scambiarsi temporaneamente dei file, senza ricorrere ad esempio a mezzi più lenti e poco pratici, quali i dischetti o la email:
# This one is useful for people to share files [tmp] comment = Temporary file space path = /tmp read only = no public = yesGuardare la lista dei file in questa share tmp è concesso a tutti, anche dall'utente guest per effetto di
public =
yes
(se non è questo quello che desiderate,
commentate o cancellate la riga or ora citata). Tuttavia per poter
leggere i file che vi sono memorizzati occorre che l'utente
connesso abbia i corrispondenti permessi di UNIX, altrimenti il
client Windows visualizzerà un errore di autorizzazione
negata se si tenta di aprire un file. Chiunque può creare
dei file in questa cartella. La maschera dei permessi di default
con cui vengono creati permette la lettura da parte di tutti e il
pieno controllo solo all'utente proprietario. Sulla /tmp in UNIX di
solito è settato lo sticky bit già descritto prima a
proposito del parametro path nella sezione printers ed impone lo
stesso tipo di restrizioni già viste.
Un altro esempio molto semplice potrebbe essere quello di una share per condividere la documentazione locale installata sul server samba. Supponiamo che questa venga gestita dall'amministratore e gli utenti generalmente abbiano bisogno solo di un accesso in lettura:
[doc] comment = Local documentation path = /usr/local/doc read only = yes public = yes