| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| smb [Le 21/11/2025, 23:24] – [Nom d'hôte] détails krodelabestiole | smb [Le 14/04/2026, 23:19] (Version actuelle) – màj lien interne krodelabestiole |
|---|
| * Le **[[#serveurs|serveur]]** est la machine (et l'application) qui possède les fichiers ou les appareils et qui les rend disponibles (il les "sert"). Sur Ubuntu ce logiciel s'appelle **[[:Samba]]**. | * Le **[[#serveurs|serveur]]** est la machine (et l'application) qui possède les fichiers ou les appareils et qui les rend disponibles (il les "sert"). Sur Ubuntu ce logiciel s'appelle **[[:Samba]]**. |
| * Le **[[#clients|client]]** est la machine (et l'application) qui cherche à en obtenir l'accès. | * Le **[[#clients|client]]** est la machine (et l'application) qui cherche à en obtenir l'accès. |
| * Le **groupe de travail** (ou //workgroup//) désigne un ensemble de machines ayant des affinités communes (exemple : le nom de famille, de l'entreprise ou d'un service), auxquelles l'accès sera plus direct. | * Le **groupe de travail** (ou //workgroup//) désigne un ensemble de machines ayant des affinités communes (exemple : le nom de famille, de l'entreprise ou d'un service), auxquelles l'accès sera plus direct. Si on ne compte pas utiliser de fonctionnalité avancée, il est fortement recommandé de conserver la valeur par défaut : ''WORKGROUP''. |
| * 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). | * 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> |
| |
| * Le gestionnaire des **[[:gnome-control-center|paramètres système]]** permet d'installer sur le système les [[:imprimante|imprimantes]] partagées sur le réseau. | * Le gestionnaire des **[[:gnome-control-center|paramètres système]]** permet d'installer sur le système les [[:imprimante|imprimantes]] partagées sur le réseau. |
| * Les **lecteurs [[:multimédia]]** permettent aussi souvent de lire du contenu directement depuis un partage réseau **SMB**. C'est par exemple le cas de **[[:VLC]]**. | * Les **lecteurs [[:multimédia]]** permettent aussi souvent de lire du contenu directement depuis un partage réseau **SMB**. C'est par exemple le cas de **[[:VLC]]**. |
| * **[[:rclone]]** et **[[:fuseSMB]]** permettent de //monter// un partage réseau en système de fichiers, ensuite accessible par n'importe quelle application comme si il s'agissait de données locales. | * **[[#Rclone]]** et **[[#CIFS VFS]]** permettent de //[[:montage|monter]]// un partage réseau en système de fichiers, ensuite accessible par n'importe quelle application comme si il s'agissait de données locales. |
| * De nombreux **logiciels de [[:sauvegarde]]** permettent d'enregistrer une copie de ses données sur un partage local **SMB**. Cette méthode n'est toutefois pas recommandée parce qu'une sauvegarde vraiment //distante//, donc sur Internet, est plus sûre. | * De nombreux **logiciels de [[:sauvegarde]]** permettent d'enregistrer une copie de ses données sur un partage local **SMB**. Cette méthode n'est toutefois pas recommandée parce qu'une sauvegarde vraiment //distante//, donc sur Internet, est plus sûre. |
| * **[[#SMBClient]]** permet d'accéder et d'explorer des partages réseau en [[:commande shell|ligne de commande]], ce qui peut être utile à des fins de test, les erreurs étant souvent mieux décrites dans un [[:terminal]]. | * **[[#SMBClient]]** permet d'accéder et d'explorer des partages réseau en [[:commande shell|ligne de commande]], ce qui peut être utile à des fins de test, les erreurs étant souvent mieux décrites dans un [[:terminal]]. |
| 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. |
| |
| <note tip>Pour rappel, pour connaître l'adresse IP d'un poste **Windows**, tapez ''cmd'' dans la zone de recherche de Windows puis tapez : | |
| <code>ipconfig /all</code> | |
| dans la fenêtre de commande. Une adresse IP fixe est toujours plus pratique pour ce type de procédure.</note> | |
| |
| <note tip>Il est possible de créer un [[:raccourci-lanceur|lanceur]] pour monter manuellement un partage Windows. Renseigner l'option //Commande// du lanceur selon la syntaxe suivante: ''nautilus %%smb://MachineDistante/DossierPartagé%%'' sous Ubuntu (remplacer ''nautilus'' par ''konqueror'' sous [[:Kubuntu]] ou par ''thunar'' sous [[:Xubuntu]]).</note> | <note tip>Il est possible de créer un [[:raccourci-lanceur|lanceur]] pour monter manuellement un partage Windows. Renseigner l'option //Commande// du lanceur selon la syntaxe suivante: ''nautilus %%smb://MachineDistante/DossierPartagé%%'' sous Ubuntu (remplacer ''nautilus'' par ''konqueror'' sous [[:Kubuntu]] ou par ''thunar'' sous [[:Xubuntu]]).</note> |
| Ouvrir **[[:nautilus|GNOME Fichiers]]** et aller dans le menu sandwich ''☰'' -> //[[:nautilus#menu_des_preferences|Préférences]]// -> //Performances//, puis pour //Afficher les vignettes//, choisissez l'option //Tous les fichiers// (par défaut : //Sur cet appareil uniquement//). | Ouvrir **[[:nautilus|GNOME Fichiers]]** et aller dans le menu sandwich ''☰'' -> //[[:nautilus#menu_des_preferences|Préférences]]// -> //Performances//, puis pour //Afficher les vignettes//, choisissez l'option //Tous les fichiers// (par défaut : //Sur cet appareil uniquement//). |
| |
| ==== SMBFS ==== | ==== Rclone ==== |
| | |
| | **[[:Rclone]]** permet d'effectuer toutes sortes d'opérations sur toutes sortes de protocoles et services de stockage distants, dont évidemment **SMB**. |
| | |
| | La syntaxe est la suivante (on peut aussi, en alternative à l'édition directe du fichier ''rclone.conf'', utiliser l'[[:rclone#configuration|assistant de configuration]] ''[[https://rclone.org/commands/rclone_config/|rclone config]]'') : |
| | <file - rclone.conf> |
| | [server-smb] |
| | type = smb |
| | host = server.local |
| | user = guest |
| | </file> |
| | où : |
| | * ''server-smb'' correspond au nom du service rclone. |
| | * ''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]]//). |
| | |
| | Pour configurer la connexion, et éventuellement monter un partage SMB de manière permanente, vous trouverez un tutoriel complet //[[:tutoriel:acceder_a_votre_nas_depuis_toutes_les_applications|Accéder à un stockage NAS depuis toutes les applications]]//, qui est loin de concerner exclusivement les [[:NAS]] ! |
| | |
| | ==== CIFS VFS ==== |
| |
| **SMBFS** sert à monter [[#Montage manuel|manuellement]] ou [[#Montage automatique|automatiquement]] un dossier partagé en système de fichiers. | **[[https://docs.kernel.org/admin-guide/cifs/usage.html|CIFS VFS]]** remplace **SMBFS** et sert à monter [[#Montage manuel|manuellement]] ou [[#Montage automatique|automatiquement]] un dossier partagé en système de fichiers. |
| |
| <note tip>Plus récent que **SMBFS**, **[[:rclone]]** est une solution généralement plus performante, et offre les mêmes fonctionnalités et d'autres.</note> | <note tip> **[[:rclone]]** est une solution généralement plus moderne et plus performante que **CIFS VFS**, et offre les mêmes fonctionnalités et bien d'autres.</note> |
| |
| <note> | <note> |
| Il y a aussi une page qui traite du montage automatique et manuel ici : //[[tutoriel:monterpartagewindows|Monter des partages Windows au démarrage]]//. | Voir en complément la page qui traite du montage automatique et manuel : //[[tutoriel:monterpartagewindows|Monter des partages Windows au démarrage]]//. |
| </note> | </note> |
| |
| Il est possible de monter un dossier partagé sur un point de montage de l'arborescence d'un système Ubuntu, tout comme il est possible de le faire avec une partition de disque dur. Ceci est intéressant, par exemple, pour partager des ressources entre plusieurs postes dans une grande entreprise ou pour accéder de manière transparente à un serveur de stockage réseau (//Network Attached Storage//, ou NAS). | Il est possible de [[:montage|monter]] un répertoire partagé sur un point de montage de l'[[:arborescence]] d'un système Ubuntu, tout comme il est possible de le faire avec une [[:partition]] de [[:SSD]] ou de [[:disque dur]] local. Ceci est intéressant pour accéder à un répertoire partagé (depuis un autre poste ou un [[:NAS]])) de manière transparente, comme s'il s'agissait d'un répertoire local. |
| |
| Les tâches suivantes doivent être exécutées par [[:sudo|un administrateur]]. Assurez-vous que le paquet **[[apt>smbfs]]** (ou **[[apt>cifs-utils]]** depuis 12.10) est installé. De plus, assurez-vous de disposer d'un point de montage valide //(un répertoire __vide__ sur lequel devra être monté le dossier partagé)//. | Les tâches suivantes doivent être exécutées par [[:permissions administrateur|un administrateur]]. Assurez-vous que le paquet ''[[apt>cifs-utils]]'' soit installé. Assurez-vous aussi de disposer d'un point de montage valide (un répertoire //vide// sous ''[[:arborescence#repertoire_des_peripheriques_externes|/mnt/]]'' par exemple, sur lequel sera monté le dossier partagé). |
| |
| Pour les exemples suivants, nous établirons que : | Pour les exemples suivants, nous établirons que : |
| * le PC distant ou le NAS se nomme ''MACHINEDISTANTE'' ; | * le PC distant ou le NAS se nomme ''MACHINEDISTANTE'' ; |
| * le dossier partagé par l'ordinateur distant est ''Multimedia'' ; | * le dossier partagé par l'ordinateur distant est ''Partage'' ; |
| * le point de montage sur l'ordinateur local est ''/media/MédiasPartagés/''. | * le point de montage sur l'ordinateur local est ''/mnt/Partage/''. |
| |
| === Montage manuel === | === Montage manuel === |
| |
| 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 : <code>sudo mount.cifs //MACHINEDISTANTE/Multimedia /media/MédiasPartagés -o guest</code> | <note tip>Si vous utilisez **[[:rclone]]**, la documentation correspondante se trouve dans le chapitre //[[:rclone#Montage]]// de sa page dédiée. |
| La connexion peut vous être refusée si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité. | </note> |
| |
| Si une authentification sur le poste distant est requise pour accéder au dossier partagé ou pour débloquer certaines actions autorisées pour votre compte sur le poste distant : | * Si aucune authentification n'est requise pour accéder au répertoire partagé ou si vous ne possédez pas d'identifiant sur le poste distant :<code>sudo mount.cifs //MACHINEDISTANTE/Partage /mnt/Partage -o guest</code>La connexion peut vous être refusée si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité. |
| <code>sudo mount -t cifs //MACHINEDISTANTE/Multimedia /media/MédiasPartagés -o guest,rw,nosetuids,sec=ntlmv2</code> | * Si une authentification sur le poste distant est requise pour accéder au dossier partagé ou permettre certaines actions :<code>sudo mount -t cifs //MACHINEDISTANTE/Partage /mnt/Partage -o guest,rw,nosetuids,sec=ntlmv2</code> |
| |
| === Montage automatique === | === Montage automatique === |
| |
| [[:tutoriel:comment_modifier_un_fichier|Modifiez]], avec [[:sudo|les droits d'administration]] le fichier ** /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 : | <note tip>Si vous utilisez **[[:rclone]]**, la documentation correspondante se trouve dans le chapitre //[[:rclone#Montage automatique]]// de sa page dédiée.\\ |
| <file>//MACHINEDISTANTE/Multimedia /media/MédiasPartagés cifs _netdev,guest 0 0</file> | Voir aussi le tutoriel complet //[[:tutoriel:acceder_a_votre_nas_depuis_toutes_les_applications|Accéder à un stockage NAS depuis toutes les applications]]//, qui concerne en fait un montage équivalent avec **SMB** en général. |
| 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é. | </note> |
| |
| Si une authentification sur le poste distant est requise pour accéder au dossier partagé ou pour débloquer certaines actions autorisées pour votre compte sur le poste distant, inscrivez la règle suivante, sur une seule ligne : | [[:tutoriel:comment_modifier_un_fichier|Modifiez]], avec les [[:permissions administrateur]] le fichier ''[[:fstab|/etc/fstab]]'' afin d'ajouter une nouvelle règle de montage. |
| <file>//MACHINEDISTANTE/Multimedia /media/MédiasPartagés cifs _netdev,credentials=/root/.smbcredentials 0 0</file> | * 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é. |
| De plus, [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] ''/root/.smbcredentials'' contenant le texte suivant -- et uniquement ce texte-là : | * 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 |
| <file>username=IDENTIFIANT | password=MOTDEPASSE</file>Remplacez ''IDENTIFIANT'' par votre identifiant sur le poste distant et ''MOTDEPASSE'' par le mot de passe de votre compte sur le poste distant. Il est parfois nécessaire d'indiquer le groupe de travail avec ''IDENTIFIANT@WORKGROUP''. Des guillemets peuvent être utilisés. |
| password=MOTDEPASSE</file> | <note important>Si vous ne souhaitez pas que tout le monde ait accès à votre mot de passe, il est indispensable de [[:permissions|sécuriser]] un minimum le fichier ''.smbcredentials'' ! |
| Remplacez ''IDENTIFIANT'' par votre identifiant sur le poste distant et ''MOTDEPASSE'' par le mot de passe de votre compte sur le poste distant. Il peut être nécessaire de mettre comme identifiant IDENTIFIANT@WORKGROUP. Des guillemets peuvent être utilisées. | <code>sudo chown 0:0 /root/.smbcredentials |
| | sudo chmod 400 /root/.smbcredentials</code> |
| | |
| | -- pour la même fonctionnalité, **[[:rclone#montage_automatique|rclone]]** permet d'éviter de stocker son mot de passe en clair. |
| | </note> |
| |
| Un redémarrage de l'ordinateur est nécessaire pour que le dossier partagé soit monté automatiquement sur le point de montage sélectionné. \\ //(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é.)// Cependant la commande "sudo mount -a" monte automatiquement tous les systèmes de fichiers énumérés dans ''/etc/fstab'' immédiatement. | 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 ''[[: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 Multimedia : | 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'' : |
| <file>//MACHINEDISTANTE/Dossier\040Multimedia /media/MédiasPartagés cifs _netdev,credentials=/root/.smbcredentials 0 0</file> | <file>//MACHINEDISTANTE/Dossier\040Partage /media/Partage cifs _netdev,credentials=/root/.smbcredentials 0 0</file> |
| |
| <note tip> | <note tip> |
| Si le nom de la machine distante n'est pas reconnu (le dossier partagé ne remonte pas en dépit d'une syntaxe correcte), remplacer le nom de la machine distante par son adresse IP sur le réseau local (nécessaire par exemple sur un réseau domestique connecté à une Livebox Orange). | 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> |
| |
| * 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. | ===== Numéros de ports ===== |
| |
| * [[: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. | Si vos postes clients et serveurs ont de la difficulté à communiquer entre eux, il est possible qu'une des causes soit qu'[[:pare-feu|un logiciel de pare-feu]] soit installé sur l'un ou l'autre des ordinateurs et que celui-ci bloque les communications entrantes ou sortantes utilisés par SMB. Si tel est votre cas, assurez-vous que votre pare-feu laisse passer les communications sur ces ports ; à ce sujet, reportez-vous au manuel d'administration de votre logiciel de pare-feu. |
| |
| * **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. | Voici la liste des ports TCP et UDP utilisés par le protocole SMB pour le partage de fichiers et d'imprimantes. |
| |
| * **[[: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. | ^ Port ^ Protocole ^ Nom du service ^ |
| | | ''135'' | TCP et UDP | Localisateur de services RPC | |
| | | ''137'' | TCP et UDP | NetBIOS Name Service (''nbname'') | |
| | | ''138'' | UDP | NetBIOS Datagram Service (''nbdatagram'') | |
| | | ''139'' | TCP | NetBIOS Session Service (''nbsession'') | |
| | | ''445'' | TCP et UDP | Services de dossiers partagés Windows | |
| |
| ==== ZeroConf ==== | ==== Configuration du pare-feu par défaut d'Ubuntu ==== |
| |
| **[[: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. | Par défaut, le service de pare-feu [[UFW]] est installé et actif sur Ubuntu. à moins d'utiliser un autre logiciel de pare-feu ou d'avoir complètement désactivé UFW, vous devez mettre à jour également la section suivante dans le fichier ''/etc/default/**ufw**'' : |
| | <file># extra connection tracking modules to load |
| On peut utiliser la commande :<code>avahi-browse -avr</code> pour lister les services diffusés sur un réseau. | # ajout de nf_conntrack_netbios_ns pour Samba |
| | IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc nf_conntrack_netbios_ns"</file> |
| Pour plus d'information à ce sujet, voir la page concernant [[:ZeroConf]]. | |
| | |
| ===== Ports liés au partage de fichiers par les protocoles SMB et CIFS ===== | |
| | |
| Si vos postes clients et serveurs ont de la difficulté à communiquer entre eux, il est possible qu'une des causes soit qu'[[:pare-feu|un logiciel de pare-feu]] soit installé sur l'un ou l'autre des ordinateurs et que celui-ci bloque les communications entrantes ou sortantes utilisés par Samba. Si tel est votre cas, assurez-vous que votre pare-feu laisse passer les communications sur ces ports ; à ce sujet, reportez-vous au manuel d'administration de votre logiciel de pare-feu. | |
| | |
| Voici la liste des ports TCP et UDP utilisés par les protocoles SMB et CIFS pour le partage de fichiers et d'imprimantes. | |
| | |
| ^ Port ^ Protocole ^ Nom du service ^ | |
| | 135 | TCP et UDP | Localisateur de services RPC | | |
| | 137 | TCP et UDP | NetBIOS Name Service (nbname) | | |
| | 138 | UDP | NetBIOS Datagram Service (nbdatagram) | | |
| | 139 | TCP | NetBIOS Session Service (nbsession) | | |
| | 445 | TCP et UDP | Services de dossiers partagés Windows | | |
| | |
| | |
| <note tip>**Configuration du pare-feu par défaut d'Ubuntu** \\ Par défaut, le service de pare-feu [[UFW]] est installé et actif sur Ubuntu. à moins d'utiliser un autre logiciel de pare-feu ou d'avoir complètement désactivé UFW, vous devez mettre à jour également la section suivante dans le fichier ''/etc/default/**ufw**'' : <file># extra connection tracking modules to load \\ | |
| # ajout de nf_conntrack_netbios_ns pour Samba \\ | |
| IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc nf_conntrack_netbios_ns"</file></note> | |
| |
| ===== Problèmes courants ===== | ===== Problèmes courants ===== |
| ==== Impossible de se connecter à un partage réseau via gestionnaire de fichier Ubuntu ==== | ==== Impossible de se connecter à un partage réseau via gestionnaire de fichier Ubuntu ==== |
| |
| Ce problème peut avoir de nombreuses causes. Une raison courante est l'utilisation, par la machine qui partage, si elle est ancienne, d'un protocole obsolète et dangereux : **SMBv1**. | Ce problème peut avoir de nombreuses causes. Une raison courante est l'utilisation, par la machine qui partage, si elle est ancienne, d'un protocole obsolète et dangereux : **[[#SMB version 1|SMBv1]]**. |
| |
| Dans tous les cas, des outils en [[:commande shell|ligne de commande]] tels que ''[[man>smbclient]]'' et ''[[man>avahi-browse]]'' peuvent aider à y voir plus clair : | Dans tous les cas, des outils en [[:commande shell|ligne de commande]] tels que ''[[man>smbclient]]'' et ''[[man>avahi-browse]]'' peuvent aider à y voir plus clair : |
| Il présente d'importantes failles de sécurité connues, ce qui le rend obsolète et extrêmement dangereux.((IT-Connect : [[https://www.it-connect.fr/arretez-dutiliser-smb-v1-0/|Arrêtez d’utiliser SMB v1.0 !]])) Il est entre autre le vecteur de diffusion de //WannaCry//, le plus grand //[[wpfr>ransomware]]// de l'histoire.(([[wpfr>Server_Message_Block#S.C3.A9curit.C3.A9|SMB et sécurité]])) | Il présente d'importantes failles de sécurité connues, ce qui le rend obsolète et extrêmement dangereux.((IT-Connect : [[https://www.it-connect.fr/arretez-dutiliser-smb-v1-0/|Arrêtez d’utiliser SMB v1.0 !]])) Il est entre autre le vecteur de diffusion de //WannaCry//, le plus grand //[[wpfr>ransomware]]// de l'histoire.(([[wpfr>Server_Message_Block#S.C3.A9curit.C3.A9|SMB et sécurité]])) |
| |
| Il est donc //impératif// d'ignorer les instructions et tutoriels malavisés dangereusement répandus sur le Web, consistant à rétablir son utilisation (avec ''min protocol = NT1'') ! Essayez plutôt autant que possible de mettre à jour vos appareils, afin d'utiliser des versions plus récentes du protocole SMB, ou d'[[:partage#partage_de_fichiers|autres protocoles]].</note> | Il est donc //impératif// d'ignorer les instructions et tutoriels malavisés dangereusement répandus sur le Web, consistant à rétablir son utilisation (avec ''min protocol = NT1'') !\\ |
| | Essayez plutôt autant que possible de mettre à jour vos appareils, afin d'utiliser des versions plus récentes du protocole SMB, ou d'[[:partage#partage_de_fichiers|autres protocoles]].</note> |
| |
| ===== Exemple pratique de A à Z pour version Ubuntu 20.04 ou 22.04 ===== | ===== Exemples pratiques pour anciennes versions Ubuntu 20.04 ou 22.04 ===== |
| |
| ==== Trouver l'adresse IP des ordinateurs ==== | <note important>Ces informations ne sont plus d'actualité pour les versions récentes : privilégiez la documentation ci-dessus !</note> |
| | |
| === Sous Ubuntu === | |
| | |
| * Cliquer tout en haut à droite sur le triangle équilatéral afin d'ouvrir une boite de dialogue. | |
| * Cliquer sur **Paramètres filaires**. | |
| * Cliquer sur l'engrenage situé à l'extrême droite de la description filaire. Une grille s'ouvre. | |
| * Relever l'adresse IPv4. Elle sera certainement semblable à 192.168.0.**n**. | |
| | |
| Ou utiliser la commande <code bash>hostname -I</code> | |
| En profiter pour vérifier que l'autre ordinateur est accessible. C'est en ligne de commande en remplaçant **X** par la bonne valeur: | |
| <code bash>ping -c4 192.168.x.x</code> | |
| |
| ==== Accéder au dossier de l'autre ordinateur ==== | ==== Accéder au dossier de l'autre ordinateur ==== |
| * 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> |
| Le mot de passe d'un utilisateur Windows est celui défini à sa création. A ne pas confondre avec son code confidentiel qu'il utilise maintenant depuis pas mal de temps. | Le mot de passe d'un utilisateur Windows est celui défini à sa création. A ne pas confondre avec son code confidentiel qu'il utilise maintenant depuis pas mal de temps. |
| |
| Le mot de passe de l'utilisateur Ubuntu n'est pas contrôlé. Si on l'omet, la commande ''Mount -av'' le demande inutilement. On peut donc //actuellement// mettre n'importe quoi. | Le mot de passe de l'utilisateur Ubuntu n'est pas contrôlé. Si on l'omet, la commande ''mount -av'' le demande inutilement. On peut donc //actuellement// mettre n'importe quoi. |
| |
| Les points de montage sous ''/media'' sont à créer avant d'effectuer le montage. | Les points de montage sous ''/media'' sont à créer avant d'effectuer le montage. |
| |
| Les noms des répertoires distants sont ceux définis au moment du partage. Ils peuvent dont être différant du vrai nom du répertoire partagé. | Les noms des répertoires distants sont ceux définis au moment du partage. Ils peuvent dont être différents du vrai nom du répertoire partagé. |
| |
| Le montage en utilisant le nom de l'ordinateur distant semble ne pas fonctionner. | Le montage en utilisant le nom de l'ordinateur distant semble ne pas fonctionner. |
| * [[:DLNA]] | * [[:DLNA]] |
| * l'application [[https://localsend.org/fr|LocalSend]] | * l'application [[https://localsend.org/fr|LocalSend]] |
| * [[:SSH|SFTP]] | * [[:SFTP]] |
| * [[:WebDAV]] | * [[:WebDAV]] |
| |
| ==== Documents en lien avec SMB ==== | ==== Documents en lien avec SMB ==== |
| |
| {{topic>smb}} | {{backlinks>.#!utilisateurs:}} |
| | |
| [[?do=backlink|Toutes les pages]] | |
| |
| ---- | ---- |
| | //[[:Contributeurs]] : [[:utilisateurs:Gogy]], julientux, [[:utilisateurs:krodelabestiole]].// |
| //Contributeurs : [[:contributeurs|les contributeurs d'Ubuntu-fr]], [[:utilisateurs:Gogy]], julientux, [[:utilisateurs:krodelabestiole]].// | |