GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Dans ce tutoriel, nous allons apprendre à installer et configurer un serveur Samba sur Ubuntu 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 Unix/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 Ubuntu

Samba est inclus dans la plupart des distributions Linux. Pour installer Samba sur Ubuntu, exécutez simplement la commande suivante dans le terminal.

sudo apt install samba samba-common-bin

La dernière version stable disponible est la 4.12.0, publiée le 03 mars 2019. Pour vérifier votre version de Samba, exécutez

smbd --version

Exemple de sortie :

Version 4.7.6-Ubuntu

Pour vérifier si le service Samba est en cours d'exécution, exécutez la commande suivante.

systemctl status smbd nmbd

Pour démarrer ces deux services, lancez la commande suivante :

sudo systemctl start smbd nmbd

Une fois lancé, smbd écoutera sur les ports TCP 139 et 445. 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.

Si vous avez activé le pare-feu UFW sur Ubuntu, vous devez ouvrir les ports ci-dessus dans le pare-feu avec la commande suivante.

sudo ufw allow samba

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

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 .

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

Explication :

  • Private est le nom du dossier qui sera affiché sur le réseau Windows.
  • 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/ par exemple. Vous pouvez également utiliser un dossier dans votre répertoire personnel.
  • 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éez le groupe samba.

sudo groupadd samba

Et ajoutez cet utilisateur au groupe samba.

sudo gpasswd -a username samba

Créez le dossier de partage privé.

sudo mkdir -p /srv/samba/private/

Le groupe samba doit avoir les droits de lecture, d'écriture et d'exécution sur le dossier partagé. Vous pouvez accorder ces autorisations en exécutant la commande suivante. (Si votre système n'a pas le setfacl commande, vous devez installer le acl package avec sudo apt install acl .)

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

Ensuite, exécutez la commande suivante pour vérifier s'il y a des erreurs de syntaxe.

testparm

Il ne reste plus qu'à redémarrer smbd et nmbd démon.

sudo systemctl restart smbd nmbd

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. Bien que vous puissiez créer un partage public avec le security = share mode, mais ce mode de sécurité est obsolète. Il est fortement suggéré d'éviter le share mode.
  • 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.

En fait, les deux premières conditions sont déjà remplies car Samba utilise par défaut ces deux paramètres.

Voici un guide étape par étape pour créer un partage public. Tout d'abord, ouvrez et modifiez le fichier de configuration de 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 .

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/samba/public/ dossier.

sudo mkdir -p /srv/samba/public

Assurez-vous ensuite que nobody compte dispose d'une autorisation de lecture, d'écriture et d'exécution sur le dossier public en exécutant la commande suivante. (Si votre système n'a pas le setfacl commande, vous devez installer le acl package avec sudo apt install acl .)

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

Redémarrez smbd et nmbd.

sudo systemctl restart smbd nmbd

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 Samba 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 de lecteur sous Windows

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.

Si vous voyez le message d'erreur suivant,

failed to retrieve share list from server

Vous pouvez essayer de corriger cette erreur en montant le partage Samba à partir de la ligne de commande, comme indiqué ci-dessous.

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

Remarque :Monter automatiquement le Samba share se fait sur les clients. Ces commandes doivent être exécutées sur un client Samba, si le client Samba exécute Linux. Vous ne devriez pas le faire sur le serveur Samba lui-même.

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 garantit que le système de fichiers distant n'est monté qu'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é. Vous pouvez également exécuter la commande suivante pour monter le partage Samba sans redémarrage.

sudo mount -a

Si vous voyez l'erreur d'autorisation refusée et que vous pouvez trouver la ligne suivante en exécutant le sudo dmesg commande,

VFS: cifs_mount failed w/return code = -13

c'est probablement parce que vous avez une faute de frappe dans le /etc/samba-credential fichier.

Impossible d'écrire sur le partage Samba ?

Le montage CIFS décrit ci-dessus vous permet d'écrire sur le partage Samba. Si vous voyez l'erreur suivante lors de la création d'un fichier :

Read-only file system

Vérifiez que vous avez défini writable = yes dans le fichier de configuration de Samba. Parfois, le dossier partagé Samba se trouve sur un disque dur externe, alors assurez-vous de monter le disque dur externe en mode lecture-écriture sur le serveur Samba. Par exemple, j'ai monté mon btrfs disque dur avec la ligne suivante dans /etc/fstab.

LABEL=5TB   /mnt/5TB   btrfs   defaults   0   0

Il s'avère que les defaults l'option n'autorise pas l'opération d'écriture. Pour le rendre accessible en écriture, ajoutez rw option.

LABEL=5TB   /mnt/5TB   btrfs   defaults,rw   0   0

Démontez ensuite le disque dur. Vous devez utiliser votre propre point de montage.

sudo umount /mnt/5TB

Et montez-le à nouveau.

sudo mount -a

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 le [global] section de /etc/samba/smb.conf fichier pour augmenter le niveau de journalisation si vous souhaitez enregistrer plus d'informations.

log level = 2

Ubuntu
  1. Comment installer et configurer un serveur NFS sur Ubuntu 20.04

  2. Comment installer et configurer VNC sur Ubuntu 20.04

  3. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  4. Comment installer et configurer le serveur Redis dans Ubuntu

  5. Comment installer et configurer samba sur Linux Ubuntu ?

Comment installer et configurer le serveur LAMP sur Ubuntu

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer et configurer le partage de fichiers Samba sur Ubuntu 20.04

Installer et configurer Virtualmin sur le serveur Ubuntu 20.04 / Debian 10

Comment installer et configurer Samba sur Ubuntu 20.04