Manpages

NOME

smbclient − programma client simile ad ftp per Lan Manager.

SINTASSI

smbclient nome_servizio [ password ] ] [ −A ] [ −E ] [ −L computer ] [ −M computer ] [ −I numero IP ] [ −N ] [ −P ] [ −U username ] [ −d livello di diagnosi ] [ −l nome base per log ] [ −n nome netbios ] [ −W workgroup ] [ −O opzioni socket ] [ −p numero della porta ] [ −c stringa di comando ] [ −T opzioni tar ] [ −D directory iniziale ]

DESCRIZIONE

Questo programma è parte del pacchetto Samba

smbclient client che ’colloquia’ con un server Lan Manager. Offre un’interfaccia simile a quella del programma ftp (vedi ftp(1)). Le operazioni consentono di prendere file dal server per la macchina locale, lasciare file dalla macchina locale al server, recuperare informazioni su directory dal server e cosi via.

OPZIONI

nome servizio

nome servizio indica il servizio del server a cui si desidera accedere. Ha la forma \\server\servizio dove server è il nome netbios del server Lan Manager che offre la risorsa condivisa desiderata e servizio è la risorsa offerta. Quindi per connettersi al servizio "printer" sul Lan Manager server "lanman" è necessario utilizzare:

\\lanman\printer

Da notare che il nome del server richiesto NON è necessariamente quello del computer server. Si richiede il nome di un server Lan Manager che può − o meno − essere lo stesso dell’hostname della macchina che esegue il server.

password

password è la password richiesta per accedere al servizio sul server indicato. Se viene fornita una password si attiva implicitamente l’opzione −N (disattiva la richiesta di password).

Non c’è valore predefinito per password. Se non è fornita alcuna password nella linea di comando (sia qui o usando l’opzione −U - si veda oltre) e −N non è specificata, il client chiederà una password, anche se non necessaria per il servizio desiderato (se la password non è richiesta, premendo semplicemente ENTER se ne fornisce una nulla).

Nota: Alcuni server (incluso OS/2 e Windows for Workgroups) insistono per avere una password in lettere maiuscole. Password composte di lettere minuscole o miste vengono rifiutate da questi server.

Fare attenzione nell’includere password in script.

−A

Parametro che, quando specificato, seleziona il massimo livello di diagnosi. È necessario fare attenzione in quanto si genera un’enorme quantità di dati diagnostici. Inoltre, per quanto riguarda la sicurezza, si noti che il massimo livello di diagnosi provoca la scrittura di password come testo in chiaro in alcuni file di registrazione.

−L

L’opzione consente di elencare i servizi disponibili su un server. È possibile usarla come "smbclient -L computer" ed appare una lista. L’opzione −I può essere utile se il nome netbios non corrisponde al proprio host name tcp/ip o se si sta cercando di raggiungere un computer su un’altra rete. Ad esempio:

smbclient -L ftp -I ftp.microsoft.com

elencherà tutte le condivisioni disponibili sul server pubblico Microsoft.

−M

Questa opzione consente di spedire messaggi ad un altro computer, usando il protocollo "WinPopup". A connessione stabilita è possibile digitare il proprio messaggio terminandolo con ^D (control-D).

Se il computer destinatario sta eseguendo WinPopup l’utente riceverà il messaggio e probabilmente anche un beep. Se WinPopup non è in esecuzione il messaggio andrà perso e non verrà riportata alcuna segnalazione di errore.

Se il messaggio supera i 1600 byte - limite del protocollo - sarà automaticamente troncato.

Una tecnica utile è usare cat con smbclient. Per esempio:

cat messaggio.txt | smbclient -M FRED

spedisce il contenuto del file "messaggio.txt" alla macchina FRED.

È possibile anche usare le opzioni −U e −I che consentono di controllare le intestazioni FROM e TO del messaggio.

Altre informazioni alla sezione comandi di messaggio di smb.conf(5) per una descrizione su come manipolare i messaggi WinPopup in Samba.

Nota: Per essere in grado di ricevere sempre i messaggi è sufficiente copiare WinPopup nel gruppo di avvio di WfWg del PC.

−E

Se specificato, questo parametro consente di stampare i messaggi di errore del client su stderr piuttosto che su stdout.

Normalmente, il client scrive i propri messaggi di errore nello standard output - tipicamente il tty dell’utente.

−I numero IP

numero IP rappresenta l’indirizzo IP a cui connettersi. Dovrebbe essere specificato nella consueta notazione "a.b.c.d".

Normalmente il client tenterà di localizzare uno specifico server Lan Manager cercandolo, cioè indirizzando una richiesta a tutta la rete per il server affinché si identifichi. Usando questo parametro si forza il client a supporre che il server sia sulla macchina con l’indirizzo IP indicato.

Non c’è valore di default per questo parametro. Se non disponibile, sarà determinato automaticamente dal client come indicato precedentemente.

−N

Se specificato, questo parametro sopprime la normale richiesta dal client di password per l’utente. Utile quando si accede ad un servizio che non richiede una password.

A meno che una password non venga specificata nella linea di comando o questo parametro sia specificato, il client richiederà una password.

−O opzioni di socket

Per maggiori dettagli vedere la sezione opzioni di socket di smb.conf(39

−P

Se specificato, il servizio richiesto sarà connesso come un servizio di stampa piuttosto che come un normale servizio di file. Operazioni come put e get non saranno disponibili per tale connessione.

Per default, i servizi vengono connessi come connessioni NON-stampante.

−U username

username è il nome dell’utente che sarà usato dal client per effettuare la connessione, supponendo che il server stia usando un protocollo che consente i nomi degli utenti.

Alcuni server sono confusi a proposito delle maiuscole e minuscole nel nome ed altri insistono che sia un nome netbios valido.

Se nessun username è fornito sarà usata, come valore predefinito, una versione in maiuscole delle variabili d’ambiente USER o LOGNAME in questo ordine. Se nessun username è fornito e non esiste alcuna variabile d’ambiente il nome dell’utente sarà vuoto.

Se il servizio a cui ci si connette richiede un password può essere fornito usando l’opzione −U aggiungendo alla fine di username il simbolo percento ("%") e poi il password. Ad esempio, per connettersi ad un servizio come utente "fred" con password "secret", si dovrà indicare: −U fred%secret sulla linea di comando. Da notare che non ci sono spazi attorno al simbolo di percento.

Se si fornisce un password come parte di username allora si suppone l’opzione −N (sopprimi la richiesta di password).

Se si specifica password come parametro ED ANCHE come parte di username allora il password parte di username ha la precedenza. Non mettere nulla prima o dopo il simbolo di percento avrà come conseguenza rispettivamente username o password vuoti.

Nota: Alcuni server (incluso OS/2 e Windows for Workgroups) insistono nell’avere password in lettere maiuscole. Password composte da lettere minuscole o miste saranno riufiutate da questi server.

Fare attenzione nell’uso di password in script.

−d livello di diagnosi

livello di diagnosi è un intero compreso tra 0 e 5.

Il valore di default se questo parametro non è specificato, è 0.

Maggiore il valore, maggior dettaglio sarà visualizzato nei file di registrazione riguardo l’attività del client. Al livello 0, saranno registrati solo errori critici ed avvisi seri. Livello 1 è ragionevole per le esecuzioni giorno per giorno - genera piccole quantità di informazioni a proposito delle operazioni eseguite.

Livelli al di sopra di 1 generano considerevole quantità di dati di registrazione, e dovrebbero essere usati quando si investiga su un problema. Livelli oltre il 3 sono realizzati solo per l’uso di sviluppatori e generano una GRAN mole di dati per la maggior parte criptica.

−l nome base per le registrazioni.

Se specificato, nome indica un nome di base per file dove verranno registrati dati delle operazioni durante l’esecuzione del client.

Il valore di default è specificato durante la compilazione.

Il nome base è usato per generare i nomi effettivi dei file di log. Per esempio, se il nome specificato era "log", i seguenti file saranno usati per memorizzare dati:

log.client.debug (informazioni diagnostiche)

log.client.in (dati delle transazioni in ingreso)

log.client.out (dati delle transazioni in uscita)

I file di registrazione generati non sono mai cancellati dal client.

−n nome netbios

Per default, il client usa il nome della macchina (in maiuscole) come nome netbios. Questo parametro consente di impostare qualsiasi nome netbios si desideri.

−W workgroup

Imposta il nome del gruppo di lavoro utilizzato per la connessione. Può essere richiesto da alcuni server.

−p numero di porta

Si tratta di un numero positivo intero.

Il valore predefinito, se il parametro non è specificato, è 139.

Questo numero indica la porta che sarà utilizzata per effettuare le connessioni al server. Il valore standard per il server (ben conosciuto) è 139, da qui il valore predefinito.

Questo parametro di solito non viene usato.

−T opzioni tar

dove opzioni tar consiste in uno o più di: c, x, I, X, b, g, N o a; usati come:

smbclient \\server\condivisione −TcxIXbgNa [ dimensioneblocco ] [ filepiùrecente ] filetar [ nomefile.... ]

c Crea un file tar su UNIX. deve essere seguito dal nome del file tar, dispositivo a nastro oppure "−" per indicare l’output standard (potrebbe essere necessario impostare il livello di diagnosi ad un valore basso (-D0) per evitare di corrompere il file tar mentre si usa "−"). È alternativo all’opzione: x

x Estrae (ripristina) un file tar locale su una risorsa condivisa. A meno che l’opzione −D non sia indicata, il file tar sarà ripristinato dal livello più elevato della condivisione. Deve essere seguito dal nome del file tar, dispositivo o "−" per l’input standard. In alternativa rispetto l’opzione c

I Includi file e directory. Comportamento predefinito quando diversi nome file sono specificati. Consente di includere file in estrazione o creazione (e quindi escludere ogni altra cosa). L’uso di maschere per nomi di file (ancora) non funziona. Vedere l’esempio oltre.

X Esclude file e directory. Consente di escludere file in estrazione o creazione L’uso di metacaratteri non funziona (ancora). Vedere l’esempio oltre.

b Dimensione del blocco. Deve essere seguito da una dimensione valida (maggiore di zero) di un blocco. Il file tar viene scritto in dimensione_blocco*TBLOCK (di solito 512 byte) blocchi.

c Incrementale. Solo i file che hanno il bit di archivio impostato. Utile solo con l’opzione c

N Più recenti. Deve essere seguito dal nome di un file la cui data è confrontata con i file trovati nella condivisione al momento della creazione. Solo i file più recenti di quello indicato sono salvati nel tar. Utile solo con l’opzione c

a Imposta il bit di archivio. Consente di cancellare il bit di archivio quando un file è salvato. Utile con l’opzione g (anche c ).

Esempi

smbclient \\mypc\myshare "" -N -Tx backup.tar

Ripristina dal file tar backup.tar in myshare su mypc (nessuna password sulla condivisione)

smbclient \\mypc\myshare "" -N -TXx backup.tar users/docs

Ripristina ogni cosa eccetto users/docs

smbclient \\mypc\myshare "" -N -Tc backup.tar users/docs

Crea un file tar di tutti i file da users/docs in poi.

−D Directory iniziale

Cambia il directory iniziale prima di cominciare. Probabilmente utile solo con l’opzione tar (−T)

−c stringa di comando

Si tratta di una lista di comandi separati da punto e virgola che deve essere eseguita invece di richiedere dallo stdin. L’opzione −N è implicita con −c.

È particolarmente utile negli script e per inviare lo stdin al server, ad esempio −c ’print −’.

OPERAZIONI

Mentre il client è in esecuzione, all’utente è mostrato un prompt, "smb \>". La barra inversa ("\") indica il directory corrente sul server e cambia quando ci si sposta in un altro directory.

Il prompt indica che il client è pronto ed in attesa di eseguire un comando utente. Ciascun comando è composta da un singola parola, eventualmente seguita da parametri specifici del comando. Comando e parametri sono limitati da spazio a meno che in queste note non sia esplicitamente affermato diversamente. Tutti i comandi non sono sensibili all’uso di minuscole o maiuscole. Parametri dei comandi possono o meno essere sensibili, a seconda del comando.

È possibile specificare nomi di file che contengono spazi usando le doppie virgolette, ad esempio "un nome di file lungo".

Parametri compresi all’interno di parentesi quadre sono opzionali (es. "[parametro]"). Se non dati, il comando userà qualche valore predefinito. Parametri compresi all’interno di parentesi angolari sono richiesti (es. "<parametro>").

Da notare che tutti i comandi che operano sul server sono realizzati spedendo una richiesta al server stesso. Quindi il comportamento può cambiare da server a server, a seconda di come sono stati implementati.

I comandi disponibili sono elencati in ordine alfabetico.

?

Parametri:

[comando]

Descrizione:

Se comando è indicato sarà mostrato un breve messaggio informativo riguardante lo specifico comando.

Se nessun comando è specificato, sarà mostrata una lista di comandi disponibili.

!

Parametri:

[comando shell]

Descrizione

Se comando shell viene specificato, il comando ! eseguirà in modo locale uno shell per poter dare il comando specificato. Se non viene specificato alcun comando, si esegue uno shell.

cd

Parametri:

[nome directory]

Se viene specificato nome directory il directory di lavoro corrente sul server sarà cambiato con quello specificato. Questa operazione fallirà se per una qualsiasi ragione tale directory sia inaccessibile.

Se non si specifica alcun nome di directory, viene restituito il directory di lavoro corrente sul server.

del

Parametri:

<maschera>

Descrizione:

Il client farà una richiesta di cancellazione di tutti i file corrispondenti a maschera dal directory di lavoro corrente sul server.

dir

Parametri

<maschera>

Descrizione:

Viene recuperata e mostrata, dal directory corrente sul server, una lista di file corrispondenti alla maschera indicata.

exit

Parametri:

Nessuno.

Descrizione:

Chiude la connessione con il server ed esce dal programma.

get

Parametri:

<nome di file remoto> [nome di file locale]

Descrizione:

Copia il file chiamato nome di file remoto dal server alla macchina che esegue il client. Se specificato, usa nome di file locale come nome per la copia locale. Notare che tutti i trasferimenti di smbclient sono in modalità binaria. Vedere anche il comando lowercase.

help

Parametri:

[comando]

Descrizione:

Vedi il comando precedente: ?

lcd

Parametri:

[nome di directory]

Descrizione:

Se nome di directory è specificato, il directory di lavoro corrente sulla macchina locale sarà cambiato nel directory specificato. Questa operazione fallisce se per una qualsiasi ragione il directory specificato è inaccessibile.

Se non è specificato alcun nome di directory, sarà restituito il nome del directory di lavoro corrente sulla macchina locale.

lowercase

Parametri:

Nessuno.

Descrizione:

Attiva o disattiva le lettere minuscole per i comandi get e mget

Quando le lettere minuscole sono attivate, i nomi dei file locali sono convertiti in minuscolo quando si usano i comandi get e mget. Spesso è utile quando si copiano file MSDOS da un server, perché nomi di file in minuscolo sono la norma sui sistemi UNIX.

ls

Parametri:

<maschera>

Descrizione:

Vedere il comando precedente: dir.

mask

Parametri:

<maschera>

Descrizione:

Con questo comando è possibile impostare una maschera da usare durante operazioni ricorsive dei comandi mget e mput.

Le maschere specificate per i comandi mget e mput agiscono come filtri per directory piuttosto che per i file quando la ricorsione è ATTIVATA.

La maschera specificata con il comando mask è necessaria per filtrare file presenti in tali directory. Per esempio, se la maschera specificata in un comando mget è "source*", la maschera specificata con il comando mask è "*.c" e la ricorsione è ATTIVA, il comando mget recupera tutti i file che corrispondono a "*.c" nei directory corrispondenti a "source*" ed in tutti quelli contenuti partendo dal directory di lavoro corrente.

Notare che il valore di default per maschera è nullo (equivalente a "*"); rimane tale fino a che il comando mask non viene usato e mantiene il valore impostato più di recente. Per evitare risultati inattesi sarebbe saggio cambiare il valore di maschera a "*" dopo aver usato i comandi mget e mput.

md

Parametri:

<nome di directory>

Descrizione:

Vedere il comando mkdir.

mget

Parametri:

<maschera>

Descrizione:

Copia tutti i file corrispondenti alla maschera indicata dal server alla macchina che esegue il client.

Notare che: maschera è interpretata in modo diverso durante le operazioni ricorsive e non ricorsive - vedere i comandi recurse e mask per maggiori informazioni. Tutti i trasferimenti di smbclient sono in formato binario. Vedere anche il comando lowercase.

mkdir

Parametri:

<nome di directory>

Descrizione

Crea un nuovo directory sul server (ammesso che i privilegi dell’utente lo consentano) con il nome indicato.

mput

Parametri:

<maschera>

Descrizione:

Copia tutti i file corrispondenti a maschera nel directory corrente sulla macchina locale dal directory corrente di lavoro sul server.

Notare che maschera è interpretata in modo diverso durante le operazioni ricorsive e non ricorsive - vedere i comandi recurse e mask per maggiori informazioni. Tutti i trasferimenti di smbclient sono in formato binario.

print

Parametri:

<nome di file>

Descrizione:

Stampa il file indicato dalla macchina locale attraverso un servizio di stampa sul server.

Vedere anche il comando printmode.

printmode

Parametri:

<graphics|text>

Descrizione:

Imposta il modo di stampa o per dati binari (come informazioni di tipo grafico) o testo. I seguenti comandi print faranno uso del corrente modo di stampa.

prompt

Parametri:

Nessuno.

Descrizione:

Attiva (o disattiva) le richieste per i file durante le operazioni di mget e mput.

Quando ATTIVO, all’utente sarà richiesto di confermare i trasferimenti di ciascun file durante questi comandi. Quando DISATTIVO, tutti i file specificati saranno trasferiti senza ulteriori richieste.

put

Parametri:

<nome di file locale> [nome di file remoto]

Descrizione:

Copia il file chiamato nome di file locale dalla macchina che esegue il client al server. Se specificato, chiama la copia remota con il nome di nome di file remoto. Notare che tutti i trasferimenti di smbclient sono in formato binario. Vedere anche il comando lowercase.

queue

Parametri:

Nessuno.

Descrizione:

Elenca la coda di stampa, mostrando l’id della stampa (job), nome, dimensione e stato corrente.

quit

Parametri:

Nessuno.

Descrizione:

Vedere il comando exit.

rd

Parametri:

<nome di directory>

Descrizione:

Vedere il comando: rmdir

recurse

Parametri:

Nessuno.

Descrizione:

Attiva (o disattiva) la ricorsione dei directory per i comandi mget e mput.

Quando ATTIVO, questi comandi elaboreranno tutti i directory in quello sorgente (cioè, i directory dacui stanno copiando) ed entreranno ricorsivamente in ogni directory che corrisponde alla maschera specificata con il comando. Solo i file che corrispondono alla maschera specificata con il comando: mask saranno recuperati. Vedere anche il comando mask.

Quando la ricorsione è DISATTIVA, solo i file del directory di lavoro corrente che corrispondono alla maschera specificata con i comandi mget o mput saranno copiati ed ogni maschera impostata usando il comando mask sarà ignorata.

rm

Parametri:

<maschera>

Descrizione:

Rimuove tutti i file corrispondenti alla maschera dal directory di lavoro corrente sul server.

rmdir

Parametri:

<nome di directory>

Descrizione:

Rimuove il directory specificato (ammesso che i privilegi dell’utente lo consentano) dal server.

tar

Parametri: <c|x>[IXbgNa]

Descrizione:

Esegue un’operazione tar - vedre la precedente opzione della linea di comando −T. Il comportamento può essere modificato dal comando tarmode (vedi oltre). L’uso delle opzioni g (incrementale) ed N (più recenti) cambierà le modalità tarmode. Da notare che l’opzione "−" con tar x potrebbe non funzionare - usare piuttosto la linea di comando.

blocksize

Parametri

<blocksize>

Descrizione

Deve essere seguita da una dimensione di blocco valida (maggiore di 0). Provoca la scrittura in uscita di file tar in blocksize*TBLOCK (di solito 512 byte) blocchi.

tarmode

Parametri

<full|inc|reset|noreset>

Descrizione

Cambia il comportarmento di tar nei confronti del bit di archivio. In modalità full (modo di default) tar esegue un backup di tutto indipendentemente dallo stato del bit di archivio. In modo incrementale, tar prenderà in esame solo i file con il bit di archivio attivo. In modalità reset, tar azzererà il bit di archivio di tutti i file di cui effettua una copia (implica condivisioni di lettura/scrittura).

setmode

Parametri

<nome di file> <perm=[+|−]rsha>

Descrizione

Una versione del comando DOS attrib per modificare i permessi dei file. Per esempio,

setmode miofile +r

rende mio di sola lettura.

NOTE

Alcuni server sono imprecisi riguardo l’uso di maiuscole e minuscole su nomi di utenti, password, nomi di condivisione (cioè nomi di servizi) e nomi delle macchine. Se si non si è in grado di connettersi è necessario provare tutti i parametri in maiuscolo.

Spesso è necessario usare l’opzione −n connettendosi ad alcuni tipi di server. Per esempio OS/2 LanManager pretende che sia usato un nome netbios valido, quindi è necessario fornire un nome valido che sia conosciuto al server.

smbclient supporta nomi di file lunghi dove il server supporta il protocollo LANMAN2.

FILE

Non applicabile.

VARIABILI D’AMBIENTE

USER

Tale variabile dovrebbe essere impostata al nome dell’utente che usa il client. L’informazione è usata solo se il livello di protocollo è abbastanza alto per supportare password a livello di sessione.

INSTALLAZIONE

La posizione del server e dei file di supporto sono scelte da ciascun amministratore di sistema. Quelli che seguono solo semplici suggerimenti.

Si raccomanda che il software che funge da client gerarchia /usr/local/samba sia installato all’interno della gerarchia /usr/local/samba in un directory leggibile da chiunque, scrivibile solo da root. Il programma NON dovrebbe essere né setuid, né setgid.

I file di log dovrebbero essere posti in un directory leggibile e scrivibile solo dall’utente.

Per verificare il funzionamento del client, è necessario conoscere il nome di un Lan manager server funzionante. È possibile eseguire smbd (vedere smbd(8)) come un utente ordinario - eseguendo il server come un demone su una porta accessibile all’utente (di solito ogni porta il cui numero sia superiore a 1024) è un valido server di test.

VERSIONE

Questa pagina di manuale è (per la maggior parte) corretta per la versione 1.9.00 del pacchetto Samba, più qualche recente patch. Necessariamente queste note saranno in ritardo rispetto lo sviluppo del software, perciò è possibile che la versione disponibile del programma abbia estensioni o semantiche dei parametri che differiscono o non sono illustrate in queste pagine del manuale. Si prega di indicare queste situazioni all’indirizzo indicato successivamente per la correzione.

VEDERE ANCHE

smbd(8)

DIAGNOSTICA

[Sezione in corso di realizzazione]

La maggior parte dei messaggi diagnostici del client sono memorizzati in file specifici che devono essere specificati all’atto della compilazione ma possono essere impostati con la linea di comando.

Il numero ed il tipo dei messaggi di diagnosi disponibili dipende dal livello di diagnosi usato dal client. Se si manifestano problem, è utile assegnare un livello di diagnosi 3 ed utilizzare i file di log.

La maggior parre dei messaggi sono ragionevolmente autoesplicativi. Sfortunatamente al momento in cui si scrivono questa pagina del manuale il codice sorgente non è ancora definitivo al punto di garantire la descrizione di ciascuna segnalazione. A questo punto la cosa migliore da fare potrebbe essere di ispezionare il codice sorgente alla ricerca delle condizioni che hanno generato il messaggio che si interessa investigare.

BACHI

Nessuno conosciuto.

RICONOSCIMENTI

La versione originale del pacchetto software Samba e delle utility relative sono state create da Andrew Tridgell (samba-bugs [AT] samba.au). Inoltre Andrew mantiene i sorgenti ufficiali per questo progetto.

Traduzione: Andrea Girotto (andrea.girotto [AT] usa.net)

Consultare smb.conf(5) per una lista completa di contribuzioni e dettagli su come segnalare bug, riportare commenti etc.