Archivio per dicembre 2008

Post

Dettagli sulle condivisioni

In samba on dicembre 30, 2008 di poyblog Messo il tag: , ,

In samba è possibile trovare dei nomi speciali relativi a condivisioni. Per esempio la condivisione [IPC$], è fornita da tutti i server CIFS, quindi non solo samba, ed è utilizzata per certe operazioni di rete:

  • la gestione dell’elenco di file
  • la gestione delle stampanti condivise.

Tutte quelle condivisioni definite all’interno del file di configurazione smb.conf che terminano con $, non sono visibili agli utenti windows che sfruttano explorer; ecco un elenco delle più usate:

  • C$, il contenuto completo del disco c
  • ADMIN$, la SystemRoot, ovvero la directory di sistema di windows (Windows XP c:\windows\system32)
  • PRINT$, repository per i driver delle stampanti

Principali differenze tra un filesystem Windows FAT o NTFS e le tipologie di filesystem ospitate  in server Unix:

  • caratteri validi per i nomi dei file
  • lunghezza dei nomi dei file
  • sensibilità al maiuscolo e minuscolo
  • file locking a caching
  • permessi e attributi

La gestione dei nomi è un concetto poco banale, che rappresenta il processo di trasformazione dei nomi di file e cartelle perchè siamo comprensibili ai client. La gestione dei nomi deve considerare vari parametri coma la lunghezza massima di un nome file, la sensibilità alla lettera maiuscola o meno.

Una nota importante, i sistemi linux e unix hanno sempre sofferto cartelle che contengono un numero elevato di file, combinare questa caratteristica con dei controlli aggiuntivi sulla possibilità di non considerare la sensibilità alla lettera maiuscola o minuscola renderebbe la navigazione e l’accesso ai file su server molto lenta.

E’ bene considerare come trattare i link, nessuno vorrebbe che si possa inserire un link da una cartella condivisa al file /etc/passwd . Di default samba lascia la possibilità di inserire link a cartelle esterne non facenti parte del novero delle condivise. Questo comportamento lo si può bloccare con la direttiva wide links = no , l’unico problema è che inserendo tale direttiva il demone smbd deve controllare ogni accesso ad un file condiviso per verificare se è un link oppure no.

E’ possibile nascondere i file, impostando la direttiva hide file. In più tutti i file che cominciano con il . non vengono presentati in fase di condivisione. Ricordo che nascondere un file tramite samba non significa impostare l’attributo hidden dei filesystem windows, ma significa che tali file non vengono proprio condivisi.

La gestione dei lock è una delle motivazioni per cui ho scelto di approfondire Samba. Windows e Linux gestiscono in modo differente il lock dei file. In particolare windows blocca a livello di sistema operativo l’apertura contemporanea dei file, mentre sistemi linux-unix demandano all’applicativo esecutivo . Samba lascia la possibilità di gestire delle cartelle in sola lettura, ma per quelle accessibili in scrittura, viene lasciato al sistema operativo client  in questione l’applicazione dei lock ai file accessi in lettura.

Parlando di permission, samba deve cercare di far interagire il modulo di gestione delle permission Linux-Unix con il sistema ACL di windows. Le direttive create directory e mask servono per forzare i permssi linux a cartelle condivise.

Il problema è che il sistema ACL è molto più ricco di attributi rispetto al classico sistema ottale linux-unix. La tendenza è considerare che il supporto per la lettura, scrittura e accesso completo sia sufficiente per la maggior parte delle esigenze

Microsoft Distributed File Sytem è la capacità di sistemi Microsoft di raggiungere un pc in rete passando attraverso un terzo host. Samba è in grado di emulare tale comportamento grazie alla direttiva host msdfs.

Come ultimo argomento di questo capitolo perlerò di VFS. Virtual File System . Il demon smbd interagisce con il filesystem sottostante tramite il sopracitato VFS. In particolare con questa struttura è possibile gestire:

  • il cestino di rete
  • un metodo per ricordare il log di ogni utente su una singola risorsa.

Post

File di configurazione smb.conf

In samba on dicembre 2, 2008 di poyblog Messo il tag: ,

Il file di configurazione, smb.conf solitamente si trova in /etc/samba/smb.conf, ed è suddiviso in sezioni, ognuna delle quali specifica una condivisione.

Ci sono due tipi di parametri, globali e servizi o condivisione. I parametri globali stanno nella sezione global e si applicano al comportamento del server stesso e non alle condivisioni.

I servizi o condivisioni, possono essere specificati nella sezione global (ed hanno validità per tutte le altre sezioni) o nella specifica sezione.

I vecchi sistemi operativi windows (famiglia 9x) non supportano i nomi di cartelle condivise maggiori di 12 caratteri.

Una volta cambiato il contenuto del file smb.conf quando il server samba applica le modifiche? La risposta non è banale. Nel caso in cui si cambino il nome del server o i parametri di rete, è necessario riavviare il servizio smbd. Per tutti gli altri parametri valgono le seguenti considerazioni:

  • Quando il server samba riceve una nuova connessione , il demone smbd crea un processo figlio che legge il file di configurazione, e quindi anche le modifiche apportate

  • Una volta avviati i servizi samba leggono il file di configurazione ogni tre minuti

Buona pratica quando si cambia il file di configurazione è testarlo da errori di sintassi, grazie a testparm.

Per non rendere visibile ai servizi samba il file di configurazione in fase di aggiornamento è bene lavorare su un file di configurazione diverso da quello operativo e cambiarlo solo dopo che si è sicuri della sintassi del file aggiornato.

Attenzione se esiste una cartella home ed una stampante con il medesimo nome, samba visualizzerà sempre e solo la cartella home, dato che queste hanno precedenza sulle stampanti.

Una condivisione si basa su un percorso esistente, e di default è read-only. Se l’utente connesso non ha i permessi per vedere la cartella condivisa, viene generato un errore di rete.

Di default è meglio tenere il file di log a livello 0 per poi innalzarlo fino al livello 3 per verificare gli errori

Iscriviti

Get every new post delivered to your Inbox.