Qu'est-ce que Samba ?
Samba est une implémentation open source du protocole Server Message Block (SMB). Il permet à Linux de fonctionner avec le système d'exploitation Windows, à la fois en tant que serveur et client. Samba partage des fichiers et des imprimantes Linux avec les systèmes Windows et permet également aux utilisateurs Linux d'accéder aux fichiers sur les systèmes Windows. Samba utilise les protocoles NetBIOS sur TCP/IP (NetBT) et n'a pas besoin du protocole NetBEUI (Microsoft Raw NetBIOS frame).
Plusieurs packages Samba sont inclus avec la plupart des distributions Linux :
- samba :Fournit un serveur SMB/Common Internet File System (CIFS) qui peut être utilisé pour fournir des services réseau aux clients SMB/CIFS
- client samba :fournit des clients SMB/CIFS pour compléter le système de fichiers SMB/CIFS intégré à Linux. Ces clients permettent d'accéder aux partages SMB/CIFS et d'imprimer sur des imprimantes SMB/CIFS.
- samba-commun :Fournit les fichiers nécessaires pour les packages Samba serveur et client
- samba-winbind :Fournit le démon winbind et les outils client. winbind permet l'adhésion Linux aux domaines Windows et l'utilisation des comptes d'utilisateurs et de groupes Windows
- clients-samba-winbind :Fournit la bibliothèque Network Security Services (NSS) et les modules d'authentification enfichables (PAM) nécessaires pour communiquer avec winbind
Utilisez "yum install [package_name] ” pour installer les packages.
# yum install [package_name]
Démons et services Samba
Le package du serveur samba inclut les démons suivants et les services associés :
- smbd :Le démon serveur qui fournit des services de partage de fichiers et d'impression aux clients Windows. Il est également responsable de l'authentification des utilisateurs, du verrouillage des ressources et du partage des données via le protocole SMB.
- nmbd :Le démon de serveur de noms NetBIOS répond aux requêtes de service de noms produites par SMB/CIFS dans les systèmes Windows. Il fournit également une prise en charge de la navigation dans la vue Voisinage réseau de Windows.
Ces démons sont contrôlés par leurs services associés, smb et nmb, par exemple :
# systemctl start smb # systemctl start nmb
Le package samba-winbind inclut le démon winbindd et le service associé :
- winbindd :Résout les informations d'utilisateur et de groupe sur un serveur exécutant Windows et rend ces informations compréhensibles par Linux.
Ce démon est contrôlé par le service winbind :
# systemctl start winbind
Configuration du serveur Samba
Le fichier de configuration principal pour Samba est /etc/samba/smb.conf . Ce fichier de configuration est divisé en sections, chacune commençant par du texte entouré de crochets. À l'exception de la section [global], chaque section décrit une ressource partagée, appelée "partage “. Les sections typiques sont :
Section | Description |
---|---|
[global] | Définit les paramètres globaux |
[maisons] | Définit les partages dans le répertoire homes |
[imprimantes] | Définit les imprimantes |
[nom du partage] | Définit un partage |
Les paramètres de la section définissent les attributs de partage. En supposant que les paramètres globaux sont correctement configurés, l'exemple suivant définit un partage qui accorde à tout utilisateur Windows des autorisations de lecture-écriture sur le répertoire local /tmp :
# vi /etc/samba/smb.conf [tmp] comment = Insert a comment here path = /tmp writable = yes guest ok = yes
Reportez-vous au smb.conf man page pour une description de tous les paramètres que vous pouvez définir dans le fichier de configuration.
# man smb.conf
Il existe des paramètres globaux, des paramètres de sécurité, des paramètres de journalisation, des paramètres de navigateur, des paramètres de communication et des paramètres de partage. Il existe également plusieurs interfaces utilisateur graphiques pour configurer et gérer Samba. Une liste de ceux-ci peut être trouvée à http://www.samba.org/samba/GUI/.
[maisons] Partager
Samba fournit ce partage pour permettre aux utilisateurs de partager facilement leurs répertoires personnels Linux avec un système Windows. Voici un exemple :
# vi /etc/samba/smb.conf [homes] comment = Insert a comment here browsable = no writable = yes
Ces paramètres empêchent les utilisateurs autres que les propriétaires de parcourir les répertoires personnels tout en accordant un accès complet aux propriétaires connectés.
Démarrer un serveur Samba
Pour démarrer un serveur Samba, exécutez la commande ci-dessous.
# systemctl start smb
Lorsque vous modifiez la configuration du fichier /etc/samba/smb.conf, lancez un redémarrage ou rechargez :
# systemctl restart smb # systemctl reload smb
L'argument de rechargement n'arrête pas et ne démarre pas le service smb; il recharge uniquement le fichier de configuration. Utilisez la commande systemctl pour configurer le service afin qu'il démarre au démarrage. Exemple :
# systemctl enable smb
Types de serveurs Samba
– Le type de serveur est configuré dans la section [global] du fichier /etc/samba/smb.conf.
– Un serveur autonome peut être un serveur de groupe de travail ou un membre d'un groupe de travail.
– Un serveur membre de domaine se connecte à un contrôleur de domaine et est soumis aux règles de sécurité du domaine.
– Un serveur Samba peut être un contrôleur de domaine dans un domaine Windows NT mais pas dans un domaine Active Directory.
Pour plus de détails sur les types de serveurs Samba, reportez-vous à l'article ci-dessous.
Quels sont les différents types de serveurs SambaAccéder aux partages Linux depuis Windows
Pour accéder à un partage sur un serveur Linux Samba à partir de Windows, ouvrez Poste de travail ou Explorateur et saisissez le nom d'hôte du serveur Samba et le nom du partage au format suivant :
\\servername\sharename
Si vous saisissez \\nomserveur , Windows affiche les répertoires partagés par le système Linux. Vous pouvez également mapper un lecteur réseau sur un nom de partage en utilisant la même syntaxe.
smbusers File
Pour qu'un utilisateur Windows puisse accéder à un partage Samba sur un système Linux, l'utilisateur doit fournir un nom d'utilisateur Windows et un mot de passe Samba. Le nom d'utilisateur Windows doit être le même que le nom d'utilisateur Linux ou doit correspondre à un nom d'utilisateur Linux. Samba stocke ces mappages de noms d'utilisateur dans le répertoire /etc/samba/smbusers dossier. Les utilisateurs ayant le même nom d'utilisateur sous Linux et Windows n'ont pas besoin d'une entrée dans ce fichier, mais ils ont toujours besoin d'un mot de passe Samba.
Le fichier /etc/samba/smbusers a deux entrées par défaut :
root = administrator admin nobody = guest pcguest smbguest
La première entrée mappe l'utilisateur racine Linux aux utilisateurs administrateur et admin dans Windows. La deuxième entrée mappe l'utilisateur Linux nobody à trois noms d'utilisateur Windows :guest, pcguest, smbguest.
Pour mapper le nom d'utilisateur Windows de john au nom d'utilisateur Linux de user01, ajoutez l'entrée suivante à /etc/samba/smbusers :
# vi /etc/samba/smbusers user01 = john
Samba utilise des mots de passe Samba, et non des mots de passe Linux, pour authentifier les utilisateurs. Ajoutez un mot de passe pour l'utilisateur user01 avec la commande suivante :
# smbpasswd –a user01 New SMB password: Retype new SMB password: Added user oracle.
Accéder aux partages Windows depuis Linux
Il existe 2 utilitaires pour interroger les serveurs Samba :
- findsmb
- smbtree
Utilisez findsmb commande pour interroger un sous-réseau pour les serveurs Samba. La commande affiche l'adresse IP, le nom NetBIOS, le groupe de travail, le système d'exploitation et la version de chaque serveur trouvé.
Vous pouvez également utiliser le smbtree commande, qui est un navigateur de réseau SMB basé sur du texte. Il affiche un diagramme hiérarchique avec tous les domaines connus, les serveurs de ces domaines et les partages sur les serveurs.
Les bureaux GNOME et KDE fournissent des gestionnaires de fichiers basés sur un navigateur pour afficher les partages Windows sur le réseau. Saisissez smb : dans la barre d'adresse des gestionnaires de fichiers pour parcourir les partages.
Utilisez le smbclient utilitaire pour se connecter à un partage Windows depuis la ligne de commande. Le format est le suivant :
smbclient //[servername]/[sharename] [-U [username]]
Le smb :\> L'invite s'affiche après une connexion réussie. Tapez help pour afficher une liste de commandes. Tapez exit pour quitter smbclient.
Pour monter des partages Samba, installez le package cifs-utils :
# yum install cifs-utils
Utilisez le mount.cifs commande au format suivant pour monter les partages Samba :
# mount.cifs //[servername]/[sharename] /mount-point -o username=[username],password=[password]