| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| smb [Le 18/02/2026, 22:10] – lien SFTP/ orthographe / mise en forme krodelabestiole | smb [Le 14/04/2026, 23:19] (Version actuelle) – màj lien interne krodelabestiole |
|---|
| * Sous Windows cette information se trouve dans les //Propriétés de l'ordinateur//. | * Sous Windows cette information se trouve dans les //Propriétés de l'ordinateur//. |
| * Sous Ubuntu, cette information est le paramètre ''workgroup'' du [[:samba_smb.conf|fichier de configuration Samba]]. | * Sous Ubuntu, cette information est le paramètre ''workgroup'' du [[:samba_smb.conf|fichier de configuration Samba]]. |
| * L'**ordinateur** désigne une machine, identifiée par son //nom// -- généralement choisi au moment de l'installation du système -- et sa //description// (exemple : le modèle et l'emplacement de la machine). Pour identifier à distance un ordinateur, on utilise son **[[#nom d'hôte]]** (ou parfois son adresse IP, faute de mieux). | * L'**ordinateur** désigne une machine, identifiée par son //nom// -- généralement choisi au moment de l'installation du système -- et sa //description// (exemple : le modèle et l'emplacement de la machine). Pour identifier à distance un ordinateur, on utilise son **[[:réseau#nom d'hôte]]** (ou parfois son adresse IP, faute de mieux). |
| * Sous Windows ces informations se trouvent dans les //Propriétés de l'ordinateur//. | * Sous Windows ces informations se trouvent dans les //Propriétés de l'ordinateur//. |
| * Sous Ubuntu, le nom de l'ordinateur est le paramètre //[[:hosts#hostname]]// global, alors que la description se trouve dans le paramètre ''server string'' du [[:samba_smb.conf|fichier de configuration Samba]]. | * Sous Ubuntu, le nom de l'ordinateur est le paramètre //[[:hosts#hostname]]// global, alors que la description se trouve dans le paramètre ''server string'' du [[:samba_smb.conf|fichier de configuration Samba]]. |
| <note tip>Pour éviter quelques problèmes, retenez que : | <note tip>Pour éviter quelques problèmes, retenez que : |
| * La **casse** doit impérativement être respectée en ce qui concerne le nom de domaine. Par exemple ''WORKGROUP'' ne sera pas considéré de la même manière que ''workgroup''. | * La **casse** doit impérativement être respectée en ce qui concerne le nom de domaine. Par exemple ''WORKGROUP'' ne sera pas considéré de la même manière que ''workgroup''. |
| * Le nom de la machine ne doit pas dépasser **16 caractères** pour être visible quand on parcourt le réseau, le nom de la machine ([[#serveurs|serveur]]) qui partage un dossier ne doit pas dépasser 15 caractères (et ne peut contenir que des lettres non accentuées, chiffres et tirets ''-''), sans quoi elle sera accessible uniquement par son adresse IP (et donc invisible autrement).\\ Pour le nom de la machine voir //[[:hosts#hostname]]//.\\ Sans ce nommage, on pourra rencontrer des problèmes du type : //Your hostname could not be resolved//, pour plus d'infos, voir aussi [[wpfr>NetBIOS]] et [[#ZeroConf]]. | * Le nom de la machine ne doit pas dépasser **16 caractères** pour être visible quand on parcourt le réseau, le nom de la machine ([[#serveurs|serveur]]) qui partage un dossier ne doit pas dépasser 15 caractères (et ne peut contenir que des lettres non accentuées, chiffres et tirets ''-''), sans quoi elle sera accessible uniquement par son adresse IP (et donc invisible autrement).\\ Pour le nom de la machine voir //[[:hosts#hostname]]//.\\ Sans ce nommage, on pourra rencontrer des problèmes du type : //Your hostname could not be resolved//, pour plus d'infos, voir aussi [[wpfr>NetBIOS]] et [[:réseau#ZeroConf]]. |
| </note> | </note> |
| |
| Il est parfois possible qu'un ordinateur distant n'apparaisse pas dans la liste des ordinateurs proposant des ressources partagées. Dans ces cas-là, vous pouvez saisir manuellement les informations de connexion pour accéder au partage distant. | Il est parfois possible qu'un ordinateur distant n'apparaisse pas dans la liste des ordinateurs proposant des ressources partagées. Dans ces cas-là, vous pouvez saisir manuellement les informations de connexion pour accéder au partage distant. |
| |
| Ouvrir **[[:nautilus|GNOME Fichiers]]** et entrer l'[[:web#URL]] du partage dans la barre d'adresse qui se trouve en haut au centre (ou est affiché //Dossier personnel// à l'ouverture, sinon le nom du répertoire courant).\\ | Ouvrir **[[:nautilus|GNOME Fichiers]]** et entrer l'[[:réseau#URI]] du partage dans la barre d'adresse qui se trouve en haut au centre (ou est affiché //Dossier personnel// à l'ouverture, sinon le nom du répertoire courant).\\ |
| L'URL se compose ainsi (sans crochet ni espace) :<box 85% round #fda>''smb<nowiki>://</nowiki>'' [//nom d'hôte//] ''/'' [//chemin du partage//]</box> | L'[[:réseau#URI]] se compose ainsi (sans crochet ni espace) :<box 85% round #fda>''smb<nowiki>://</nowiki>'' [//nom d'hôte//] ''/'' [//chemin du partage//]</box> |
| À la place du [[#nom d'hôte]], on peut aussi entrer l'adresse IP de la machine qui effectue le partage de fichier selon l'exemple suivant :<code>smb://192.168.0.26</code>où ''192.168.0.26'' est l'adresse IP de votre serveur **SMB**. | À la place du [[:réseau#nom d'hôte]], on peut aussi entrer l'adresse IP de la machine qui effectue le partage de fichier selon l'exemple suivant :<code>smb://192.168.0.26</code>où ''192.168.0.26'' est l'adresse IP de votre serveur **SMB**. |
| |
| Ensuite, il peut vous être demandé le nom d'utilisateur et le mot de passe pour accéder au contenu. | Ensuite, il peut vous être demandé le nom d'utilisateur et le mot de passe pour accéder au contenu. |
| où : | où : |
| * ''server-smb'' correspond au nom du service rclone. | * ''server-smb'' correspond au nom du service rclone. |
| * ''server.local'' correspond au [[#nom d'hôte]] de votre serveur SMB. | * ''server.local'' correspond au [[:réseau#nom d'hôte]] de votre serveur SMB. |
| * ''guest'' correspond à un accès en tant qu'invité, si la configuration du partage le permet (si ce n'est pas le cas, voir le chapitre //[[:tutoriel:acceder_a_votre_nas_depuis_toutes_les_applications#Si l'accès au partage requiert un mot de passe]]//). | * ''guest'' correspond à un accès en tant qu'invité, si la configuration du partage le permet (si ce n'est pas le cas, voir le chapitre //[[:tutoriel:acceder_a_votre_nas_depuis_toutes_les_applications#Si l'accès au partage requiert un mot de passe]]//). |
| |
| </note> | </note> |
| |
| [[:tutoriel:comment_modifier_un_fichier|Modifiez]], avec les [[:permissions administrateur]] le fichier ''[[:mount fstab|/etc/fstab]]'' afin d'ajouter une nouvelle règle de montage. | [[:tutoriel:comment_modifier_un_fichier|Modifiez]], avec les [[:permissions administrateur]] le fichier ''[[:fstab|/etc/fstab]]'' afin d'ajouter une nouvelle règle de montage. |
| * Si aucune authentification n'est requise pour accéder au dossier partagé ou si vous ne possédez pas d'identifiant sur le poste distant, inscrivez la règle suivante sur une seule ligne :<file>//MACHINEDISTANTE/Partage /media/Partage cifs _netdev,guest 0 0</file>Le montage peut vous être refusé si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité. | * Si aucune authentification n'est requise pour accéder au dossier partagé ou si vous ne possédez pas d'identifiant sur le poste distant, inscrivez la règle suivante sur une seule ligne :<file>//MACHINEDISTANTE/Partage /media/Partage cifs _netdev,guest 0 0</file>Le montage peut vous être refusé si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité. |
| * Si une authentification sur le poste distant est requise pour accéder au dossier partagé ou permettre certaines actions, ajoutez la ligne (unique -- tout sur une ligne) suivante :<file>//MACHINEDISTANTE/Partage /media/Partage cifs _netdev,credentials=/root/.smbcredentials 0 0</file>Puis [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] ''/root/.smbcredentials'' contenant le texte suivant -- et uniquement ce texte-là :<file>username=IDENTIFIANT | * Si une authentification sur le poste distant est requise pour accéder au dossier partagé ou permettre certaines actions, ajoutez la ligne (unique -- tout sur une ligne) suivante :<file>//MACHINEDISTANTE/Partage /media/Partage cifs _netdev,credentials=/root/.smbcredentials 0 0</file>Puis [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] ''/root/.smbcredentials'' contenant le texte suivant -- et uniquement ce texte-là :<file>username=IDENTIFIANT |
| |
| Après un redémarrage de l'ordinateur, le partage distant est monté automatiquement sur le point de montage local ainsi déterminé (l'option de montage ''_netdev'' indique au système d'attendre que la liaison au réseau local soit établie avant de tenter le montage de ce dossier partagé.).\\ | Après un redémarrage de l'ordinateur, le partage distant est monté automatiquement sur le point de montage local ainsi déterminé (l'option de montage ''_netdev'' indique au système d'attendre que la liaison au réseau local soit établie avant de tenter le montage de ce dossier partagé.).\\ |
| Sinon, la commande ''sudo mount -a'' monte aussi immédiatement tous les systèmes de fichiers énumérés dans ''/etc/fstab''. | Sinon, la commande ''sudo mount -a'' monte aussi immédiatement tous les systèmes de fichiers énumérés dans ''[[:fstab|/etc/fstab]]''. |
| |
| Dans le cas où le nom de partage contient des espaces on remplace les espaces par ''\040''. Exemple avec un nom de partage ''Dossier Partage'' : | Dans le cas où le nom de partage contient des espaces on remplace les espaces par ''\040''. Exemple avec un nom de partage ''Dossier Partage'' : |
| |
| <note tip> | <note tip> |
| Si le nom de la machine distante n'est pas reconnu, voir le chapitre //[[#Nom d'hôte]]//. | Si le nom de la machine distante n'est pas reconnu, voir le chapitre //[[:réseau#Nom d'hôte]]//. |
| </note> | </note> |
| |
| * [[:tutoriel:comment_installer_un_paquet|installez le paquet]] ''[[apt>smbclient]]''. | * [[:tutoriel:comment_installer_un_paquet|installez le paquet]] ''[[apt>smbclient]]''. |
| * vous pouvez dès lors ouvrir un [[:terminal]] et tester la connexion en ligne de commande, en cas de problème des messages d'erreur parlants devraient être affichés :<code>smbclient -L //serveur -U utilisateur%mot_de_passe</code>où : | * vous pouvez dès lors ouvrir un [[:terminal]] et tester la connexion en ligne de commande, en cas de problème des messages d'erreur parlants devraient être affichés :<code>smbclient -L //serveur -U utilisateur%mot_de_passe</code>où : |
| * ''serveur'' est à remplacer par l'adresse IP (ex. : ''192.168.1.1''), ou [[:samba_smb.conf#WINS]] (ex. : ''freebox_server''), ou encore le nom [[:zeroconf#mDNS]] (ex. : ''machine.local''), ou autre [[#nom d'hôte]] (ex. : ''_gateway'') du serveur SMB | * ''serveur'' est à remplacer par l'adresse IP (ex. : ''192.168.1.1''), ou [[:samba_smb.conf#WINS]] (ex. : ''freebox_server''), ou encore le nom [[:zeroconf#mDNS]] (ex. : ''machine.local''), ou autre [[:réseau#nom d'hôte]] (ex. : ''_gateway'') du serveur SMB |
| * ''utilisateur'' est à remplacer par le nom d'utilisateur **SMB** (pas Linux), tel que déclaré sur la machine distante (le serveur SMB) | * ''utilisateur'' est à remplacer par le nom d'utilisateur **SMB** (pas Linux), tel que déclaré sur la machine distante (le serveur SMB) |
| * ''mot_de_passe'' est à remplacer par le mot de passe associé à cet utilisateur (ou rien si il n'y a pas de mot de passe). | * ''mot_de_passe'' est à remplacer par le mot de passe associé à cet utilisateur (ou rien si il n'y a pas de mot de passe). |
| ===== Nom d'hôte ===== | ===== Nom d'hôte ===== |
| |
| Les noms d'hôtes à utiliser avec **SMB** sont les mêmes qu'avec n'importe quel [[:réseau]].\\ | Les [[:réseau#Nom d'hôte|noms d'hôtes]] à utiliser avec **SMB** sont les mêmes qu'avec n'importe quel réseau : voir le [[:réseau#Nom d'hôte|chapitre dédié]]. |
| |
| * On peut évidemment utiliser des **[[wpfr>Adresse IP|adresses IP]]**, mais ce n'est pas forcément pratique, à moins de définir des IP fixes pour chaque machine (soit au niveau de leur configuration réseau, soit au niveau du serveur DHCP -- la //box// ou le routeur). | <note tip>[[:réseau#ZeroConf]] permet aussi d'accéder à un partage **SMB** sans connaître son adresse.</note> |
| * Pour connaître l'adresse IP d'une machine sous **Ubuntu** ou **Linux** en général, entrez la commande :<code>hostname -I</code>(voir aussi le chapitre //[[:tutoriel:connaitre_son_adresse_ip#adresse_locale1|Connaître son adresse IP locale]]//). | |
| * Pour connaître l'adresse IP d'un poste **Windows**, entrez ''cmd'' dans la zone de recherche de Windows, puis dans la fenêtre de commande ainsi ouverte, tapez :<code>ipconfig /all</code> | |
| | |
| * Le **[[:DNS]]** est rarement pertinent, parce qu'il est plus consacré à [[:Internet]], auquel **SMB** n'est pas adapté (sauf peut-être au moyen d'un [[:VPN]], ce qui équivaut à un réseau personnel). On peut éventuellement [[:dns#gérer son propre serveur DNS]], ou modifier chaque fichier ''[[:hosts#hosts|/etc/hosts/]]'' côté clients, ce qui reste assez contraignant. | |
| | |
| * [[:systemd]] permet d'utiliser ''_gateway'' comme nom d'hôte pour le routeur (souvent la //box// fournie par le FAI), utile si on y branche un support externe par exemple. | |
| | |
| * **SMB** est généralement associé à [[wpfr>NetBIOS]] et aux serveurs **[[wpfr>Windows_Internet_Naming_Service|WINS]]**. Cette fonctionnalité peut être gérée par [[:samba#fonctionnement_de_samba|Samba]] ou n'importe quelle machine sur le réseau. | |
| | |
| * **[[:ZeroConf#mDNS]]** avec [[#ZeroConf]], bien que venant de l'écosystème Apple, est aussi parfaitement utilisable (et pratique) avec **SMB**. Si la fonctionnalité est présente sur une machine, on peut utiliser son nom (//[[:hosts#hostname]]//) suivi de ''.local'' pour y accéder. | |
| | |
| ==== ZeroConf ==== | |
| | |
| **[[:ZeroConf]]** est une alternative à **[[wpfr>NetBIOS]]** qui permet au serveur de communiquer activement sur les partages qu'il rend disponibles, et au client de les afficher sans avoir besoin de renseigner d'information de connexion particulière. | |
| | |
| On peut utiliser la commande :<code>avahi-browse -avr</code> pour lister les services diffusés sur un réseau. | |
| | |
| Pour plus d'information à ce sujet, voir la page concernant [[:ZeroConf]]. | |
| |
| ===== Numéros de ports ===== | ===== Numéros de ports ===== |
| Voici la liste des ports TCP et UDP utilisés par le protocole SMB pour le partage de fichiers et d'imprimantes. | Voici la liste des ports TCP et UDP utilisés par le protocole SMB pour le partage de fichiers et d'imprimantes. |
| |
| ^ Port ^ Protocole ^ Nom du service ^ | ^ Port ^ Protocole ^ Nom du service ^ |
| | 135 | TCP et UDP | Localisateur de services RPC | | | ''135'' | TCP et UDP | Localisateur de services RPC | |
| | 137 | TCP et UDP | NetBIOS Name Service (''nbname'') | | | ''137'' | TCP et UDP | NetBIOS Name Service (''nbname'') | |
| | 138 | UDP | NetBIOS Datagram Service (''nbdatagram'') | | | ''138'' | UDP | NetBIOS Datagram Service (''nbdatagram'') | |
| | 139 | TCP | NetBIOS Session Service (''nbsession'') | | | ''139'' | TCP | NetBIOS Session Service (''nbsession'') | |
| | 445 | TCP et UDP | Services de dossiers partagés Windows | | | ''445'' | TCP et UDP | Services de dossiers partagés Windows | |
| |
| ==== Configuration du pare-feu par défaut d'Ubuntu ==== | ==== Configuration du pare-feu par défaut d'Ubuntu ==== |
| * Installer le logiciel de montage avec cette commande <code bash>sudo apt install cifs-utils</code> | * Installer le logiciel de montage avec cette commande <code bash>sudo apt install cifs-utils</code> |
| * Ajouter une ligne de commande par dossier à monter automatiquement. | * Ajouter une ligne de commande par dossier à monter automatiquement. |
| * Exemple de ligne pour un dossier sur une partition [[:ext4]] :<code bash>//192.168.0.n/Utilisateur1-Partage /media/Utilisateur1-externe cifs uid=1000,password=Inutile</code> | * Exemple de ligne ''[[:fstab]]'' :<code bash>//192.168.0.n/Donnees-Partage /media/Donnees-externe cifs credentials=/root/MPD1,uid=1000,gid=46</code> |
| * Exemple de ligne pour un dossier sur une partition [[:tutoriel:NTFS]] :<code bash>//192.168.0.n/Donnees-Partage /media/Donnees-externe cifs credentials=/root/MPD1,uid=1000,gid=46</code> | |
| * La création du fichier décrivant un utilisateur windows peut se faire par ces commandes <code bash>echo username=XXXXXXXX | sudo tee /root/MDP1 | * La création du fichier décrivant un utilisateur windows peut se faire par ces commandes <code bash>echo username=XXXXXXXX | sudo tee /root/MDP1 |
| echo password=ZZZZZZZZ | sudo tee -a /root/MDP1 | echo password=ZZZZZZZZ | sudo tee -a /root/MDP1 |
| echo domaine=WORKGROUP | sudo tee -a /root/MDP1 | echo domaine=WORKGROUP | sudo tee -a /root/MDP1 |
| sudo chmod 700 /root/MDP1</code> | sudo chmod 400 /root/MDP1</code> |
| |
| <note important>Pour raison de sécurité, on peut ne pas mettre la ligne contenant le mot de passe. Dans ce cas, il sera demandé au démarrage de l'ordinateur.</note> | <note important>Pour raison de sécurité, on peut ne pas mettre la ligne contenant le mot de passe. Dans ce cas, il sera demandé au démarrage de l'ordinateur.</note> |