Ubuntu 20.04 Server / Samba / Installer et créer un dossier partagé

Installez Samba sur Ubuntu 20.04 Server et configurez partage, utilisateurs et permissions pour lire et écrire depuis l’Explorateur Windows. Cet exemple utilise un serveur autonome réservé aux utilisateurs Samba authentifiés d’un groupe dédié, plutôt qu’un partage invité sans mot de passe.

Vérifier le périmètre et installer Samba

Samba partage des fichiers Linux avec Windows via SMB (Server Message Block). Nous créons un partage avec des comptes locaux, sans contrôleur ni serveur membre Active Directory. N’écrasez pas le [global] d’un domaine existant avec cet exemple.

Il faut des droits sudo, du stockage et un accès Windows à l’IP privée ou au nom correctement résolu du serveur. Les exemples utilisent 192.168.10.20 et le réseau autorisé 192.168.10.0/24 ; adaptez-les. Le support standard d’Ubuntu 20.04 a pris fin en 2025 : vérifiez la maintenance dans les informations Canonical sur Ubuntu 20.04.

Installez les paquets et vérifiez la version. smbclient sert aux essais de connexion. Les bases figurent dans le guide Ubuntu du serveur de fichiers Samba.

sudo apt update
sudo apt install samba smbclient
smbd --version
systemctl status smbd.service

Sur un serveur existant, examinez partages et utilisateurs, puis sauvegardez /etc/samba/smb.conf. Choisissez un autre nom si la sauvegarde existe. L’exemple suppose un nouveau répertoire vide et ne modifie pas récursivement les permissions de données existantes.

sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.before-team-share
sudo testparm -s

Créer utilisateur, groupe et répertoire

  1. Vérifiez si smbuser et smbteam existent. Si oui, examinez leur rôle et leurs membres avant réutilisation, ou choisissez d’autres noms et adaptez tous les paramètres.
getent passwd smbuser
getent group smbteam
  1. Si les deux noms sont absents, créez le groupe et le compte dédié, puis enregistrez un mot de passe Samba. Celui demandé par la dernière commande servira depuis Windows.
sudo groupadd smbteam
sudo useradd -M -s /usr/sbin/nologin -G smbteam smbuser
sudo smbpasswd -a smbuser

Ce compte de partage ne crée ni répertoire personnel ni shell de connexion interactif. Les mots de passe Linux de passwd et les identifiants Samba de smbpasswd sont distincts. Pour un compte existant, ne le recréez pas : ajoutez-le par sudo usermod -aG smbteam USERNAME, puis enregistrez ce nom dans Samba. Voir le manuel smbpasswd d’Ubuntu 20.04.

  1. Créez le nouveau répertoire. La commande fixe propriétaire, groupe et mode ; si le chemin contient déjà des données, examinez les permissions avant de l’appliquer.
sudo install -d -o root -g smbteam -m 2770 /srv/samba/team
ls -ld /srv/samba/team
id smbuser

2770 donne lecture, écriture et traversée au propriétaire et au groupe, en excluant les autres. Le 2 initial est le bit setgid pour l’héritage du groupe. Vérifiez le groupe smbteam et l’appartenance de smbuser. Permissions Linux et politique Samba doivent toutes deux autoriser l’accès ; ne résolvez pas cela par chmod 777.

Configurer un partage authentifié

Ouvrez le fichier avec sudoedit /etc/samba/smb.conf et ajoutez la section en conservant l’existant. Si [Team] existe, examinez-la au lieu de la dupliquer. Le nom Team est distinct du chemin sur disque.

[Team]
    path = /srv/samba/team
    browseable = yes
    read only = no
    guest ok = no
    valid users = @smbteam
    force group = smbteam
    create mask = 0660
    force create mode = 0660
    directory mask = 2770
    force directory mode = 2770

guest ok = no refuse les invités ; valid users = @smbteam autorise les membres authentifiés du groupe. read only = no permet l’écriture côté Samba sans contourner Linux. force group fixe le groupe utilisé pour les opérations.

Les masques limitent les permissions des nouveaux objets et les modes forcés ajoutent les bits de collaboration. L’exemple vise 0660 pour les fichiers et 2770 pour les répertoires, sans modifier rétroactivement l’existant. D’autres ACL (Access Control Lists, listes de contrôle d’accès) ou modules exigent une vérification spécifique. Voir le manuel smb.conf d’Ubuntu 20.04.

Valider, appliquer et vérifier le pare-feu

  1. Vérifiez la configuration et corrigez les erreurs avant application. Un testparm réussi signifie que le fichier est chargeable, sans garantir authentification ou opérations réelles.
sudo testparm -s

Comparez [Team], chemin et restrictions dans la sortie. Le manuel testparm rappelle la nécessité de tester le fonctionnement. Un redémarrage peut couper les partages existants : identifiez les utilisateurs et planifiez la maintenance.

  1. Après validation, appliquez le service et vérifiez son fonctionnement ainsi que son démarrage automatique.
sudo systemctl enable --now smbd.service
sudo systemctl restart smbd.service
systemctl is-active smbd.service
systemctl is-enabled smbd.service
sudo ss -ltnp | grep ':445'
  1. Si le pare-feu est actif, autorisez TCP 445 uniquement depuis le réseau interne nécessaire. Remplacez la plage d’exemple, définissez la portée et vérifiez les règles existantes.
sudo ufw status verbose
sudo ufw allow from 192.168.10.0/24 to any port 445 proto tcp

Ajouter une règle n’active pas un UFW inactif. N’exécutez pas ufw enable sans vérifier l’administration distante. Contrôlez aussi routeur et règles cloud, sans transférer SMB directement depuis Internet. L’accès par adresse ne nécessite pas d’ouvrir tous les anciens ports de découverte NetBIOS. Syntaxe dans le manuel UFW.

Testez authentification et liste depuis le serveur. Saisissez le mot de passe à l’invite, sans l’inscrire dans la commande. Vérifiez Team et le contenu, puis testez Windows séparément. Voir le manuel smbclient.

smbclient -L 127.0.0.1 -U smbuser
smbclient //127.0.0.1/Team -U smbuser -c 'ls'

Accéder depuis Windows et tester les fichiers

  1. Ouvrez l’Explorateur et saisissez ce chemin dans la barre d’adresse. Remplacez 192.168.10.20. Le chemin direct peut fonctionner même sans affichage automatique dans Réseau.
\\192.168.10.20\Team
  1. À l’invite, utilisez smbuser et le mot de passe enregistré par smbpasswd -a, pas le compte Windows ni son PIN. Si un autre compte est choisi, sélectionnez l’utilisation d’un autre compte et indiquez l’utilisateur Samba.
  2. Créez un dossier et un fichier de test, modifiez le contenu et rouvrez-le. Supprimez le fichier de test et vérifiez les modifications par un autre utilisateur autorisé. N’employez pas de fichiers existants importants.

Pour chaque utilisateur supplémentaire, préparez un compte Linux et des identifiants Samba, puis ajoutez-le à smbteam. Préférez des comptes individuels à un mot de passe partagé. Après changement de groupes ou droits, fermez les connexions et testez une nouvelle session SMB.

Pour un usage fréquent, choisissez Ce PC → Connecter un lecteur réseau, une lettre et \\192.168.10.20\Team comme dossier. Utilisez d’autres identifiants si nécessaire. Les menus selon les versions sont décrits dans le guide Microsoft des lecteurs réseau.

Les restrictions invité ou la signature SMB de Windows peuvent refuser d’anciens partages anonymes. Cet exemple utilise l’authentification, sans installer SMB1, autoriser les invités non sécurisés ni désactiver la signature. Si l’organisation restreint NTLM, adaptez la configuration aux politiques du domaine et du serveur. Conditions par version et édition dans la documentation Microsoft sur la signature SMB.

Diagnostiquer l’accès et supprimer le partage

Testez TCP 445 depuis PowerShell. TcpTestSucceeded à True ne valide ni identifiants ni permissions ; à False, examinez adresse, routage, pare-feu et écoute. Options dans la documentation Test-NetConnection de Microsoft.

Test-NetConnection -ComputerName 192.168.10.20 -Port 445

Si le mot de passe est refusé, vérifiez enregistrement Samba, nom et groupe. Si l’accès fonctionne mais pas l’écriture, utilisez namei -l /srv/samba/team, ls -ld /srv/samba/team et id smbuser pour vérifier traversée et groupe, ainsi que la lecture seule Samba. Consultez sudo journalctl -u smbd.service -n 50 --no-pager et /var/log/samba/.

Si Windows conserve les anciens identifiants, examinez net use. Fermez les fichiers, déconnectez uniquement le partage concerné comme ci-dessous, puis reconnectez-vous. Vérifiez aussi les autres partages du même serveur et ses entrées dans le Gestionnaire d’identification. Ne supprimez pas en masse les lecteurs sans rapport.

net use \\192.168.10.20\Team /delete

Pour arrêter ce partage, retirez ou rétablissez uniquement [Team] dans smb.conf, validez avec testparm -s et redémarrez smbd.service pendant la maintenance. Supprimez seulement la règle UFW correspondante si inutile. Vérifiez les connexions restantes et conservez séparément données et comptes Linux.

sudo ufw delete allow from 192.168.10.0/24 to any port 445 proto tcp

Avant de restaurer tout le fichier, comparez les modifications d’autres partages depuis la sauvegarde. Pour désactiver le compte Samba seul, utilisez sudo smbpasswd -d smbuser, sans supposer la fermeture immédiate des sessions. Vérifiez séparément refus des nouvelles connexions et sessions restantes.