Menu Fermer

Comment utiliser smbclient avec des exemples

smbclient est une commande pour Linux disponible dans la suite Samba.
SMB est un protocole populaire utilisé pour partager des fichiers sur le réseau (SMB/CIFS). Même s’il a été créé pour les systèmes d’exploitation Windows, il est également pris en charge par les distributions Linux.
La commande smbclient peut être utilisée pour accéder facilement aux partages Windows. En utilisant smbclient, les partages distants de Windows peuvent être listés, téléchargés, supprimés ou navigués facilement. La commande smbclient fournit également un shell interactif.
Il se présente donc sous la forme d’un client de type FTP pour accéder aux ressources SMB/CIFS sur les serveurs.

Dans ce tutoriel, je vous montre comment utiliser smbclient avec des exemples.

Comment utiliser smbclient avec des exemples

Comment utiliser smbclient avec des exemples

Installer smbclient

Pour installer smbclient sur une distribution Linux de type Debian, Ubuntu, Mint avec APT :

sudo apt install smbclient

Sur les distributions Linux à base Redhat comme RHEL, Fedora ou CentOS, il faut utiliser DNF (ou Yum) :

sudo dnf install smbclient

Liste des partages SMB

Pour lister les partages disponibles sur un hôte, utilisez l’option -L en spécifiant le nom d’hôte ou son adresse IP :

smbclient -L <nom d'hôte>
smbclient -L 10.0.0.43

Si la connexion au partage ne s’établit pas, l’erreur NT_STATUS_CONNECTION_REFUSED s’affiche.
Elle se produit si le service samba ne fonctionne pas, que le pare-feu bloque l’accès à ce service ou qu’il y ait un problème de réseau.

Par défaut, smbclient demande la saisie du mot de passe utilisateur.
Pour supprimer la demande de mot de passe, utilisez l’option -N :

smbclient -N -L 10.0.0.43

Fournir un nom d’utilisateur

Vous pouvez aussi ajouter un nom d’utilisateur lors de l’accès à un partage si une authentification est nécessaire.
Pour cela, ajoutez l’option -U et le nom d’utilisateur.
Par exemple, pour se connecter à un partage réseau avec le nom d’utilisateur sambauser :

smbclient -L 10.0.0.43 -U sambauser
Fournir un nom d'utilisateur dans smbclient

Le client SMB dans un shell Interactive

smbclient fournit aussi un shell interactif comme certains clients ftp (ncftp, lftp, …).
Dans ce dernier vous pouvez passer différentes commandes pour effectuer les opérations souhaitées.

smbclient -U sambauser "\\10.0.0.43\partagedemo"

Saisissez la commande help pour obtenir la liste des commandes disponibles dans le shell.

Le client SMB dans un shell Interactive

Si vous rencontrez l’erreur suivante lors de la connexion SMB :

Not enough '\' characters in service

Triplez l’antislash pour la résoudre, comme ceci :

mbclient -U sambauser -L "\\10.0.0.43\partagedemo"

Liste des fichiers et des dossiers

Dans le shell interactif smbclient, nous pouvons lister les fichiers avec la commande ls.

smb: \> ls
Liste des fichiers et des dossiers avec smbclient

Envoyer des fichiers et des dossiers

Les fichiers et les dossiers peuvent être téléchargés avec la commande mput. Mais afin de télécharger un dossier spécifique et son contenu, le mode récursif doit être activé avec la commande recurse. Le téléchargement peut également être lancé avec la commande mput.

smb: \> recurse # Active le mode récursif
smb: \> mput Images # Upload du dossier Images
smb: \> recurse # Désactive le mode récursif
Envoyer des fichiers et des dossiers avec smbclient

Lorsque vous n’avez pas accès en écriture sur le partage, cela renvoi le code erreur NT_STATUS_ACCESS_DENIED.

Télécharger des fichiers et des dossiers

Les fichiers et les dossiers peuvent également être téléchargés avec la commande mget. S’il y a plusieurs fichiers et dossiers à télécharger, le mode récursif doit être activé avec la commande recurse.

smb: \> recurse
smb: \> mget Images
smb: \> recurse
Télécharger des fichiers et des dossiers avec smbclient

Liste des attributs des fichiers et des dossiers

Vous pouvez également vérifier les attributs des fichiers stockés dans les partages SMB en utilisant la fonction allinfo de smbclient.
Les attributs de fichiers sont des valeurs de métadonnées stockées par le système de fichiers sur le disque. Parfois, vous pouvez trouver des informations juteuses en les inspectant.
Selon les systèmes de fichiers tels que NTFS, le fichier peut être affiché comme 0 octet sur le partage ; cependant, en inspectant les attributs, vous pouvez pousser l’analyse plus loin pour identifier le type de fichier et en extraire des données cachées.

smb: \> allinfo monfichier.txt
Liste des attributs des fichiers et des dossiers avec smblclient

Décompresser un fichier tar avec smbclient

smbclient peut être utilisé pour créer des sauvegardes compatibles tar de tous les fichiers d’un partage SMB/CIFS.
Les drapeaux tar secondaires qui peuvent être donnés à cette option sont :

Restaurer à partir du fichier tar backup.tar dans monshare sur mypc (pas de mot de passe sur le partage).

smbclient //monpc/monshare "" -N -Tx backup.tar

Restaurez tout sauf les utilisateurs/docs :

smbclient //monpc/monshare "" -N -TXx backup.tar users/docs

Créez un fichier tar des fichiers situés sous users/docs :

smbclient //monpc/monshare "" -N -Tc backup.tar users/docs

Créez le même fichier tar que ci-dessus, mais utilisez maintenant un nom de chemin DOS :

smbclient //monpc/monshare "" -N -Tc backup.tar users\edocs

Créez un fichier tar des fichiers listés dans le fichier tarlist :

smbclient //monpc/monshare "" -N -TcF backup.tarlist tarlist

Créez un fichier tar de tous les fichiers et répertoires du partage :

smbclient //monpc/monshare "" -N -Tc backup.tar *