meta données pour cette page
Partage de fichiers avec Samba
Samba est un logiciel multi-plateforme communément utilisé pour le partage de fichiers dans un réseau local. Simple et rapide à mettre en place. Ci-dessous j'expose des situations pour comprendre son fonctionnement avec des cas pratiques.
Version testé : Debian 8 (Jessie) avec samba 4
Configuration basique
Admettons que l'on souhaite partager des dossiers sur un réseau local. Que ce soit chez soit ou dans une entreprise, cette technologie est très souvent employé du fait qu'elle n'est pas très compliqué à configurer.
Commençons par installer les dépendances :
apt-get install samba
Ajouter dans le fichier les lignes suivantes pour décrire l'identité du serveur et configurer les droits du chemin à partager.
nano /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Serveur NAS netbios name = NAS security = user map to guest = bad user dns proxy = no [partages] path = /chemin2dossier/a/partager guest ok = yes read only = no
Ci-dessous, dans la section [Partages], j'indique l'emplacement du dossier, que tous les utilisateurs aient les accès en lecture et écriture et que même les utilisateurs inconnus au système ont le droit d'y accéder.
On redémarre le service :
service smbd restart
Pour s'y connecter depuis une machine cliente dont son système est de type Linux :
mount -t cifs //ip-server/partages /mnt/
Ou pour accéder aux dossiers via un client accessible via terminal :
smbclient //ip-server/partage
Machines clientes sous GNU/Linux
Admettons que l'on souhaite accéder au partage avec le logiciel Thunar ou Nautilus. Il nous faudra alors le paquet suivant :
apt install gvfs-backends
Accès par authentification
Admettons qu'un important utilisateur (toto) veut accéder à ses dossiers sur le réseau mais lui seul à les droits d'y accéder. Si ce n'est pas déjà fait, créons cet utilisateur avec son espace personnel.
Dans un premiers temps, commençons par vérifier que nous possédons les bonnes dépendances :
apt-get install samba samba-common-bin
Créons ensuite l'utilisateur ainsi qu'un mot de passe :
useradd toto smbpasswd -a toto
la commande useradd permet juste de créer un utilisateur système qui sera dédié à notre partage de fichiers et cela grâce à la commande smbpasswd. On ne pourra pas l'utiliser pour une connexion SSH par exemple.
On peut vérifier la création de ce compte utilisateur :
pdbedit -w -L
Ajouter dans le fichier de configuration :
nano /etc/samba/smb.conf
Ces paramètres qui définissent qui a le droit d’accéder au dossier :
[personnel] comment = Utilisateurs authentifiés path = /Chemin2son/dossier/perso Read only = No valid users = toto create mask = 0660
On peut tester la configuration avec la commande ci-dessous :
testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf Processing section "[publique]" Processing section "[personnel]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [...]
Enfin on redémarre le service :
service smbd restart
Pour s'y connecter depuis une machine cliente dont son système est de type Linux :
mount -t cifs //ip-server/personnel /mnt/ -o user=toto
Il vous sera demandé ensuite un mot de passe pour créer la connexion.
Ou pour accéder aux dossiers via un client accessible via terminal :
smbclient -U toto //ip-server/personnel
Administration via le web
Ceci va pouvoir ce faire grâce à swat!
Téléchargement et installation :
apt-get install swat xinetd
Activer swat avec xinetd :
update-inetd --enable 'swat' dpkg-reconfigure xinetd
Éditer ou créer le fichier (sans extension) de configuration dans : /etc/xinetd/
nano swat service swat { port = 901 socket_type = stream wait = no # Use only_from if you want to restrict access # only_from = localhost 192.168.56.1 user = root server = /usr/sbin/swat log_on_failure += USERID disable = no }
On change les permissions du fichier smb.conf
chmod g+w /etc/samba/smb.conf chgrp adm /etc/samba/smb.conf
On redémarre le service pour qu'il prenne en compte la configuration :
service xinetd restart
Maintenant, on peut administrer le service depuis la page : http://IP_SERVEUR:901