Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
- Pour choisir, voir les autres Tags possibles dans l'Atelier.
Contributeurs, les sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
Samba est un logiciel libre sous licence GPL, permettant de supporter le protocole SMB/CIFS pour le partage de ressources réseau.
Le partage réseau a été développé par IBM en 1985 pour OS/2 et s'appelait alors LAN Manager. Il a ensuite été mis en avant par Microsoft sous le nom de SMB pour en faire un tout nouveau protocole de partage. Il a été appelé aussi CIFS (Common Internet File System ) entre 1998 et 2006, et a encore été renommé sous le nom de SMB2 pour la sortie de Windows Vista et conserve ce nom jusqu'à Windows 8.
Ces termes sont à connaître car ils apparaissent pour certains points de la configuration de samba, qui se charge de compatibilité avec ce protocole de partage réseau mais aussi avec différents produits Microsoft, comme NetBios (TCP/IP) et le nommage wins et maintenant DNS, et MSRPC (appel de procédure à distance), et il peut aussi être utilisé comme contrôleur de domaine “actif directory”.
Le protocole SMB/CIFS est toujours un logiciel propriétaire, et ces spécifications étaient donc fermées au début. Mais pour des raisons d'intéropérabilité, suite à un procès, Microsoft a été contraint d'ouvrir certaines de ses spécifications qui ont été distribuées par le MSDN (open Specifications Developer Center).
Samba a donc été créé afin de rendre possible la communication entre différents systèmes d'exploitations d'un même réseau, mais on peut aussi l'utiliser pour le partage de Linux à Linux.
On le doit d'abord aux travaux de rétro-ingénierie d'Andrew Tridgel qui est son principal développeur. Depuis 2007, et la fermeture des spécifications SMB le développement et les performances de samba ne cessent de se développer.
Il peut être lancé soit soit par des daemons directs, par inetd qui est le plus sécurisé mais avec un temps de latence plus long.
Dans cas il s'agit du partage réseau.
Dans ce cas il s'agit du serveur WINS.
Prenons, pour exemplifier une configuration simple, une machine virtuelle sur laquelle il a été installé un serveur Debian.
hostname
debian-1
Attention à la confusion entre serveur (samba ou autre) installé sur un système qui reste malgré tout “l'hôte”, on va dire de ce système.
echo $USER
first-user
ip a s eth0
ou mettez votre interface, exemple:
ip a enp2s0
<...> inet 192.168.0.15/24 brd 192.168.0.255 <...>
Il s'agit d'une machine virtuelle avec accès par pont dont l'adresse IP a été préalablement fixée par le serveur DHCP au niveau du FAI.
addgroup --system hypathie
adduser --system hypathie --ingroup hypathie
mkdir /home/hypathie/public
chown -R hypathie:hypathie /home/hypathie/
-R (récursivement) pour que le dossier déjà créé dans ce répertoire appartienne aussi à l'utilisateur et au groupe “hypathie”.
Voir : chown
chmod -R 770 /home/hypathie/
Pour donner les droits de lecture, écriture et exécution à l'utilisateur “hypathie” sur tous fichiers et dossiers créés dans ce dossier.
On peut aussi donner les droits de lecture pour les “autres” 775.
Voir droits-unix et droits-unix-bis
Et chmod
apt-get update
apt-get install samba
ls /etc/samba
Le fichier de configuration est smb.conf
.
#Se placer dans le répertoire /etc/samba cd /etc/samba mv smb.conf smb.conf-OLD
vim smb.conf
[global] workgroup = WORKGROUP # par défaut et à laisser tel quel netbios name = debian-1 # nom du serveur visible sur le poste client Windows server string = %h server # nom du serveur samba hosts allow = 192.168.0. 127. # ajouté et à modifier selon l'IP du réseau local security = user # à décommenter bind interfaces only = yes # mettre "yes" pour utiliser le choix des interfaces (ligne au dessous) interfaces = 192.168.0.15/24 # Pour éviter le wifi, on peut mettre à la place de l'IP/masque, le nom de l'interface "eth0:0" [hypathie] # ajouté et à modifier selon le répertoire de partage path = /home/hypathie/ # créé sur le système lors de la création d'un nouvel utilisateur read only = no browseable = yes writeable = yes valid users = hypathie write list = hypathie create mask = 0700 # droits posix (octal = 0 devant 700): lecture, écriture, exécution pour l'utilisateur seulement directory = 700 force user = nobody # surtout si on partage la racine force group = nogroup
/etc/samba/smb.conf
est constitué par section.Les paramètres obligatoires sont :
workgroup = MON-GROUPE
Et il faut aller sur Windows créer un groupe du même nom
ou utiliser WORKGROUP qui le nom par défaut sur Windows
netbios name = Nom-du-serveur-samba
server string = serveur %h
security = user # mise en place de la politique d'authentification encrypt passwords = true
À savoir sursecurity
: Le mode “user” est le plus intéressant, mais il y a d'autres modes d'authentification que la mise en place d'un mot de passe utilisateur chiffré.
Le modedomain
passe par workgroup qui définit un contrôleur de domaine.
Le mode “server” a été déprécié, il ne faut pas l'utiliser.
Il y a aussi le ADS qui se base sur Active Directory. Il faut alors définir un “realm”2) et le mot de passe du serveur d'authentification 3)
On l'a appelé dans l'exemple [hypathie]. Les paramètres essentiels sont :
path = /chemin/de_ce_répertoire/à_partager_sur_le_réseau
Attention aux droits placés sur le répertoire et ses sous-répertoires et fichiers
Il est bon pour la sécurité de mettre en place une politique de partage :
lecture / écriture avecread only
:
No ou Yes pour ne pas permettre ou permettre l'écriture.
Restriction de l'écriture à un utilisateur ou une liste précisée avec
read only = Yes
et en dessouswrite list = user1, user2, …
Restriction de l'accès au partage à un ou plusieurs utilisateur ou à un groupe :
valid users = user1, user2, @group1101
Pour forcer tous les utilisateurs à être reconnu comme un seul utilisateur du système :force user = nobody
etforce group = nogroup
.
Comme cela si quelqu'un vient sur le partage, il a les droits de tout autre utilisateur, et ne peut aller à la racine.
Les droits au niveau de samba:
Les droits UNIX surchargent les droits samba, mais samba a besoin qu'on lui spécifie les droits appliqués par défaut sur les fichiers de partages créés.
Droits à la création des fichiers
Par exemple pour lecture, écriture, exécution pour utilisateur et son groupe, et lecture, exécution pour les autres :create mask = 0775
Droits (POSIX) à la création des dossiers
Rappel, pour se déplacer dans un répertoire, c'est l'exécution, pour créer, supprimer renommer un fichier d'un répertoire niveau dossier, c'est l'écriture, et la lecture c'est l'ouverture d'un fichier.
Pour lecture, écriture, exécution pour utilisateur seulement:create mask = 700
Variables de substitution du fichier de configuration smb.conf
Le caractère % permet de substituer les variables.
Par exemple, si dans [global] de cet exemple on mettait :
server string serveur %h : samba %v
Il s'affichera “serveur debian-1 : samba la version de samba”.
Références :
testparm smb.conf
Sur Wheezy et précédents:
service samba restart
Sur Jessie et suivant:
systemctl restart samba
Ce compte doit correspondre à un compte utilisateur existant du système debian. Il faut en créer pour des raison de sécurité.
La commande suivante se charge d'en créer un dans les données de samba.
Il faut donner un mot de passe pour le compte samba, qui est différent du mot de passe UNIX qui a été demandé quand on a utilisé la commande adduser nouvel-utilisateur
.
smbpasswd -a hypathie
smbpasswd -L
smbpasswd - d utilisateur
smbpasswd - x utilisateur
Démarrer → clic droit sur “Ordinateur” → “Propriétés”
On voit : Groupe de travail : WORKGROUP
Démarrer → Panneau de configuration → Centre réseau et partage → Groupe résidentiel → Modifier les paramètre de partage avancé…
→ Activé le partage réseau
→ Autoriser Windows à gérer les connexions des groupes résidentiels.
→ Activé la découverte du réseau
Démarrer → Ordinateur → Réseau
DEBIAN-1 apparaît
Double-clic sur debian-1 → double-clic sur hypathie-partage → double-clic sur public
.
Créer un fichier, par exemple “coucou-samba”.
Sur le serveur samba le fichier créé depuis Windows est bien là. Et peut être édité depuis l'un ou l'autre poste.
ls /home/hypathie/public/ coucou-samba.txt