GNU/Linux >> Tutoriels Linux >  >> Cent OS

Configurer le serveur Samba sur CentOS 8/RHEL 8 pour le partage de fichiers

Dans ce tutoriel, nous allons apprendre à installer et configurer un serveur samba sur CentOS 8/RHEL8 pour partager des fichiers sur le réseau local. Samba est une implémentation de protocole SMB/CIFS gratuite et open-source pour Unix et Linux qui permet le partage de fichiers et d'impressions entre des machines Linux, Windows et macOS dans un réseau local.

Samba est généralement installé et exécuté sous Linux. Il comprend plusieurs programmes qui servent des objectifs différents mais liés, dont les deux plus importants sont :

  • smbd  :fournit un service SMB/CIFS (partage de fichiers et impression), peut également agir en tant que contrôleur de domaine Windows.
  • nmbd :Ce démon fournit le service de noms NetBIOS, écoute les requêtes du serveur de noms. Cela permet également au serveur Samba d'être trouvé par d'autres ordinateurs du réseau.

Comment installer le serveur Samba sur CentOS 8/RHEL8

Samba est inclus dans la plupart des distributions Linux. Pour installer Samba sur CentOS 8/RHEL8, exécutez la commande suivante dans le terminal.

sudo dnf install samba

Pour vérifier votre version de Samba, exécutez

smbd --version

Exemple de sortie :

Version 4.10.4

Lancez ensuite la commande suivante pour démarrer le smbd et nmbd services.

sudo systemctl start smb nmb

Activer le démarrage automatique au démarrage.

sudo systemctl enable smb nmb

Pour vérifier si le service Samba est en cours d'exécution, exécutez les commandes suivantes.

systemctl status smb nmb

Une fois lancé, le smb le démon écoutera sur les ports TCP 139 et 445. Le nmbd écoutera sur les ports UDP 137 et 138.

  • TCP 139 :utilisé pour le partage de fichiers et d'imprimantes et d'autres opérations.
  • TCP 445 :le port CIFS sans NetBIOS.
  • UDP 137 :utilisé pour la navigation sur le réseau NetBIOS.
  • UDP 138 :utilisé pour le service de noms NetBIOS.

Exécutez la commande suivante pour ouvrir les ports ci-dessus dans le pare-feu.

sudo firewall-cmd --permanent --add-service=samba

Rechargez le démon du pare-feu pour que le changement prenne effet.

sudo systemctl reload firewalld

Créer un partage Samba privé

Dans cette section, nous verrons comment créer un partage Samba privé qui nécessite que le client entre un nom d'utilisateur et un mot de passe pour y accéder. Le fichier de configuration principal de Samba se trouve à :/etc/samba/smb.conf . Vous pouvez le modifier dans le terminal avec un éditeur de texte en ligne de commande comme nano .

sudo nano /etc/samba/smb.conf

Par défaut, il y a 4 sections :

  • mondial
  • maisons
  • imprimantes
  • imprimer$

Dans le [global] section, le workgroup est défini sur SAMBA par défaut.

workgroup = SAMBA

Assurez-vous que la valeur de workgroup est le même avec les paramètres de groupe de travail des ordinateurs Windows. Vous pouvez trouver le paramètre sur votre ordinateur Windows en accédant au Control Panel> System and Security> System .

Dans cet article, j'utiliserai le nom de groupe de travail par défaut de Windows.

workgroup = WORKGROUP

Il est recommandé d'utiliser le hosts allow paramètre pour créer une liste blanche d'adresses IP afin d'empêcher tout accès non autorisé. Ajoutez la ligne suivante dans le [global] section, qui autorisera le localhost et les clients dans le 192.168.0.0/24 réseau pour accéder aux services Samba. Si vous utilisez une plage de réseau différente, remplacez 192.168.0 avec le vôtre.

hosts allow = 127. 192.168.0

Astuce :Vous pouvez également utiliser la notation CIDR pour la plage de réseau, comme hosts allow = 127.0.0.1 192.168.0.0/24

Ensuite, faites défiler vers le bas du fichier. (Dans l'éditeur de texte nano, vous pouvez y parvenir en appuyant sur CTRL+W puis CTRL+V . ) Ajoutez une nouvelle section comme ci-dessous.

[Private]
        comment = needs username and password to access
        path = /srv/samba/private/
        browseable = yes
        guest ok = no
        writable = yes
        valid users = @samba

Où :

  • Private est le nom du dossier qui sera affiché sur l'ordinateur Windows. Vous pouvez utiliser le nom de votre choix.
  • Le commentaire est une description du dossier partagé.
  • Le paramètre path spécifie le chemin d'accès au dossier partagé. J'utilise /srv/samba/private/ à titre d'exemple.
  • browseable = yes :Autoriser les autres ordinateurs du réseau à voir le serveur Samba et le partage Samba. Si défini sur non, les utilisateurs doivent connaître le nom du serveur Samba, puis entrer manuellement un chemin dans le gestionnaire de fichiers pour accéder au dossier partagé.
  • guest ok = no :Désactiver l'accès invité. En d'autres termes, vous devez entrer le nom d'utilisateur et le mot de passe sur l'ordinateur client pour accéder au dossier partagé.
  • writable = yes  :Accorde à la fois l'autorisation de lecture et d'écriture aux clients.
  • valid users = @samba  :Seuls les utilisateurs du groupe Samba sont autorisés à accéder à ce partage Samba.

Enregistrez et fermez le fichier. (Pour enregistrer le fichier dans l'éditeur de texte nano, appuyez sur Ctrl+O , puis appuyez sur Entrée pour confirmer le nom du fichier à écrire. Pour fermer le fichier, appuyez sur Ctrl+X .) Nous devons maintenant créer un utilisateur Samba. Tout d'abord, nous devons créer un compte utilisateur Linux standard avec la commande suivante. Remplacer username avec le nom d'utilisateur souhaité.

sudo adduser username

Vous serez invité à définir un mot de passe Unix. Après cela, vous devez également définir un mot de passe Samba distinct pour le nouvel utilisateur avec la commande suivante :

sudo smbpasswd -a username

Créer le samba groupe.

sudo groupadd samba

Et ajoutez cet utilisateur au samba groupe.

sudo gpasswd -a username samba

Créez le dossier de partage privé.

sudo mkdir -p /srv/samba/private/

La samba Le groupe doit disposer d'une autorisation de lecture, d'écriture et d'exécution sur le dossier partagé. Vous pouvez accorder ces autorisations en exécutant la commande suivante.

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

Nous devons également étiqueter ce répertoire avec samba_share_t afin que SELinux permette à Samba de lire et d'écrire dessus.

sudo chcon -t samba_share_t /srv/samba/private/ -R

Exécutez ensuite la commande suivante pour vérifier s'il y a des erreurs de syntaxe.

testparm

Les fichiers de configuration de Samba sont automatiquement rechargés toutes les minutes, s'ils changent. Vous pouvez redémarrer manuellement smbd et nmbd démon pour que les modifications prennent effet immédiatement.

sudo systemctl restart smb nmb

Comment créer un partage public Samba sans authentification

Pour créer un partage public sans nécessiter de nom d'utilisateur ni de mot de passe, les conditions suivantes doivent être remplies.

  • Définir security = user dans la section globale du fichier de configuration de Samba.
  • Définir map to guest = bad user dans la section globale du fichier de configuration de Samba. Cela causera smbd utiliser un compte invité pour authentifier les clients qui n'ont pas de compte enregistré sur le serveur Samba. Comme il s'agit d'un compte invité, les clients Samba n'ont pas besoin de saisir de mot de passe.
  • Définir guest ok = yes dans la définition de partage pour autoriser l'accès invité.
  • Accorder l'autorisation de lecture, d'écriture et d'exécution du dossier public à nobody compte, qui est le compte invité par défaut.

Ouvrez et modifiez le fichier de configuration Samba.

sudo nano /etc/samba/smb.conf

Dans le [global] section, assurez-vous que la valeur de workgroup est le même avec les paramètres de groupe de travail des ordinateurs Windows.

workgroup = WORKGROUP

Vous pouvez trouver le paramètre sur votre ordinateur Windows en accédant au Control Panel> System and Security> System .

Ajoutez la ligne suivante dans le [global] rubrique.

map to guest = bad user

Ensuite, faites défiler vers le bas du fichier et collez les lignes suivantes.

[public]
       comment = public share, no need to enter username and password
       path = /srv/samba/public/
       browseable = yes
       writable = yes
       guest ok = yes

Enregistrez et fermez le fichier. Ensuite, créez le /srv/public/ dossier.

sudo mkdir -p /srv/samba/public

Vous devez modifier l'autorisation de ce dossier en 777, si vous souhaitez autoriser l'opération d'écriture sur le partage public.

sudo chmod 777 /srv/samba/public/ -R

Nous devons également étiqueter ce répertoire avec samba_share_t afin que SELinux permette à Samba de lire et d'écrire dessus.

sudo chcon -t samba_share_t /srv/samba/public/ -R

Redémarrez smbd et nmbd.

sudo systemctl restart smb nmb

Accéder au dossier partagé Samba depuis Windows

Sur un ordinateur Windows qui se trouve sur le même réseau, ouvrez l'Explorateur de fichiers et cliquez sur Network dans le volet de gauche. Si vous voyez le message suivant, vous devez cliquer dessus et activer la découverte du réseau et le partage de fichiers.

File sharing is turned off. Some network computers and devices might not be visible.

Ensuite, entrez \\ suivi de l'adresse IP du serveur Samba dans la barre d'adresse de l'explorateur de fichiers, comme ceci :\\192.168.0.102 . Vous verrez une liste de ressources partagées sur le serveur Samba.

Double-cliquez ensuite sur le dossier partagé. Pour accéder au partage privé, vous devez entrer le nom d'utilisateur et le mot de passe Samba. Vous n'avez pas besoin de le faire pour accéder au partage public.

Une fois connecté, vous pouvez lire, écrire et supprimer des fichiers dans le dossier partagé Samba.

Erreur de connexion

Si vous obtenez l'erreur suivante :

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

Vous pouvez essayer de vous connecter au partage Samba à partir de l'invite de commande. Ouvrez une invite de commande, puis exécutez la commande suivante pour fermer la session Samba en cours.

net use \\samba-server-ip\share-name /delete

Ensuite, connectez-vous au partage Samaba avec la commande suivante :

net use \\samba-server-ip\share-name /user:samba-username password

Une fois la commande ci-dessus terminée avec succès, accédez à l'onglet Réseau dans l'Explorateur de fichiers et vous devriez maintenant pouvoir accéder au partage Samba.

Mappage des lecteurs

L'une des fonctionnalités du système d'exploitation Windows est la capacité de mapper une lettre de lecteur (telle que S :) à un répertoire distant. Pour mapper la lettre de lecteur S: au partage Samba, faites un clic droit sur le dossier partagé Samba et sélectionnez Mapper le lecteur réseau . Choisissez ensuite une lettre de lecteur et cliquez sur Terminer.

Une fois le mappage de lecteur établi, les applications peuvent accéder aux fichiers du partage Samba via la lettre de lecteur S: . Et ce partage Samba sera automatiquement monté lorsque vous vous connecterez à votre ordinateur Windows.

Accéder au dossier de partage Samba dans le gestionnaire de fichiers Nautilus sous Linux

Si vous utilisez le gestionnaire de fichiers Nautilus, cliquez sur Other Locations dans le volet de gauche. En bas, vous verrez une option pour se connecter au serveur . Pour accéder à votre partage Samba, tapez smb:// suivi de l'adresse IP du serveur Samba et appuyez sur Entrée. Par exemple :

  • smb://192.168.0.102

Vous verrez une liste de ressources partagées sur le serveur Samba.

Si vous cliquez sur le dossier partagé privé, vous devrez entrer le nom d'utilisateur et le mot de passe Samba. Si vous cliquez sur le dossier partagé public, choisissez de vous connecter en tant qu'anonyme.

Monter automatiquement le partage Samba à partir de la ligne de commande sous Linux

Si vous avez besoin de monter automatiquement le partage Samba au démarrage, vous pouvez utiliser la ligne de commande pour monter, puis ajouter une entrée dans le /etc/fstab dossier. Pour ce faire, vous devez installer le cifs-utils paquet.

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

Créez ensuite un point de montage pour le partage Samba.

sudo mkdir /mnt/samba-private

Vous pouvez maintenant utiliser la commande suivante pour monter un dossier partagé privé.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Il vous demandera d'entrer le mot de passe Samba. Après cela, il sera monté sur /mnt/samba-private/ répertoire.

Pour monter automatiquement le partage Samba, modifiez /etc/fstab fichier.

sudo nano /etc/fstab

Ajoutez la ligne suivante dans le fichier.

//192.168.0.102/private  /mnt/samba-private   cifs    x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show   0   0

Où :

  • //192.168.0.102/privé :l'adresse IP du serveur Samba et le nom du partage.
  • /mnt/samba-privé :point de montage pour le partage Samba.
  • cif :type de système de fichiers
  • x-systemd.automount :Cette option indique à systemd de créer une unité de montage automatique pour le système de fichiers. Nous l'utilisons car cela nous donne la possibilité de monter un système de fichiers distant après un accès au réseau.
  • _netdev  :Cela spécifie que le montage nécessite un réseau.
  • informations d'identification= :Linux doit rechercher les informations d'identification dans le /etc/samba-credential.conf fichier.
  • uid=1000,gid=1000 :Par défaut, le système de fichiers monté appartiendrait à l'utilisateur root. Nous utilisons uid et gid pour changer la propriété du système de fichiers. Normalement, vous utilisez votre propre uid et gid , qui valent tous les deux 1 000 par défaut.
  • x-gvfs-show  :Si vous utilisez l'environnement de bureau GNOME ou ses dérivés, vous pouvez utiliser cette option pour afficher le système de fichiers monté dans le gestionnaire de fichiers.

Enregistrez et fermez le fichier. Créez ensuite le fichier d'informations d'identification.

sudo nano /etc/samba-credential.conf

Ajoutez les lignes suivantes dans le fichier.

username=your_samba_username
password=samba_password
domain=WORKGROUP

Enregistrez et fermez le fichier. Assurez-vous que seul l'utilisateur root peut lire ce fichier.

sudo chmod 600 /etc/samba-credential.conf

Si vous redémarrez votre ordinateur Linux maintenant, le partage Samba sera automatiquement monté.

Astuce de dépannage

Si votre serveur Samba ne fonctionne pas comme prévu, vous pouvez vérifier les fichiers journaux sous /var/log/samba/ annuaire. Vous pouvez ajouter la ligne suivante dans la section [global] du fichier /etc/samba/smb.conf pour augmenter le niveau de journalisation, si vous souhaitez enregistrer plus d'informations.

log level = 2

Cent OS
  1. Comment créer un fichier Kickstart pour CentOS/Fedora/RedHat (RHEL)

  2. Comment installer Puppet sur RHEL 8/CentOS 8

  3. CentOS / RHEL 7 :Comment ouvrir le port Firewall pour le serveur Samba en utilisant FirewallD

  4. Comment définir children-max pour le service udev dans CentOS/RHEL 7

  5. Comment configurer le serveur VNC pour un nouvel utilisateur dans CentOS/RHEL 5

Partie 4 :Configurer SPF et DKIM avec Postfix sur le serveur de messagerie CentOS 8/RHEL 8

Installer et configurer le serveur Samba sur Ubuntu pour le partage de fichiers

Comment installer Varnish Cache pour Apache sur CentOS/RHEL 8

Comment configurer le serveur et le client NFS sur CentOS 8

CentOS Web Panel - Panneau de contrôle d'hébergement Web gratuit tout-en-un pour CentOS / RHEL 6

Comment configurer SSH sur CentOS et RHEL