« Le système d'exploitation GNU-Linux/Le partage de fichiers Samba » : différence entre les versions
Aucun résumé des modifications |
rajout des fichiers smb.conf commentés |
||
Ligne 1 : | Ligne 1 : | ||
== Introduction == |
|||
Implémentation du protocole SMB : SERVER MESSAGE BLOCK |
|||
Service qui sert au partage de fichiers et de peripheriques sous Microsoft. |
|||
Samba est l'implémentation du protocole SMB (Server Message Block) sous Unix / Linux. Il sert à partager des fichiers et des imprimantes avec les réseaux Microsoft. |
|||
Site officiel : www.samba.org |
|||
Site officiel : [http://www.samba.org www.samba.org] |
|||
samba lance deux services : SMBD et NMBD |
|||
Samba lance deux services : '''smbd''' et '''nmbd'''. |
|||
(Le protocole SMB est tout sauf performant : il pollue le reseau par l'utilisation du broadcast) |
|||
Le protocole SMB est tout sauf performant : il pollue le reseau par l'utilisation intensive du broadcast. |
|||
- 3 cas de figures : |
|||
1° cas : Anonymous |
|||
2° cas : Partage avec un mot de passe |
|||
3° cas : Login/Password |
|||
Samba utilise les ports '''137''' (netbios name service, nbname, en UDP), '''138''' (netbios datagram service nbdatagram, en UDP), '''139''' (netbios session service, nbsession, en TCP), et '''445''' ("direct-hosted" tcp, en tcp et udp). |
|||
La méthode de connexion traditionnelle smb utilise les ports 137, 138 et 139 tandis que la nouvelle méthode (CIFS, sur windows XP) n'utilise que le port 445. |
|||
Pour installer: |
|||
# apt-get install samba smbclient smbfs |
|||
== Installation == |
|||
Fichier de configuration principal: |
|||
/etc/samba/smb.conf |
|||
Pour installer Samba, on tape la commande suivante : |
|||
Pour tester la configuration: |
|||
# testparm analyse le fichier smb.conf et signale les erreurs éventuelles |
|||
# apt-get install samba smbclient smbfs |
|||
Après avoir modifié la configuration, relancer le service: |
|||
# /etc/init.d/samba restart |
|||
== Configuration == |
|||
Samba utilise les ports 137 (netbios name service, nbname, en UDP), 138 (netbios datagram service nbdatagram, en UDP), 139 (netbios session service, nbsession, en TCP), et 445 ("direct-hosted" tcp, en tcp et udp). La méthode de connexion traditionnelle smb utilise les ports 137, 138 et 139 tandis que la nouvelle méthode (CIFS, sur windows XP) n'utilise que le port 445. |
|||
Le fichier de configuration de Samba est '''/etc/samba/smb.conf'''. |
|||
Le fichier smb.conf se divise en différentes sections: |
|||
Le programme '''testparm '''analyse le fichier smb.conf et signale les erreurs éventuelles. |
|||
La section [global]: |
|||
configuration globale de samba |
|||
Après avoir modifié la configuration, il faut relancer le service : |
|||
La section [homes]: |
|||
cette section particulière permet de remonter une ressource qui correspond au répertoire de travail (home directory) de l'utilisateur qui s'est authentifié. |
|||
# /etc/init.d/samba restart |
|||
Le fichier '''/etc/samba/smb.conf''' se divise en différentes sections : |
|||
* La section '''[global]''' : configuration globale de samba |
|||
* La section '''[homes]''' : cette section particulière permet de remonter une ressource qui correspond au répertoire de travail (home directory) de l'utilisateur qui s'est authentifié. |
|||
On peut ensuite créer différentes sections, une par partage voulu. |
On peut ensuite créer différentes sections, une par partage voulu. |
||
Samba peut fonctionner de différentes manières. Pour chacune, nous allons étudier 3 cas de figures : |
|||
* 1° cas : Anonymous |
|||
Samba a 4 modes de fonctionnement: |
|||
* 2° cas : Partage avec un mot de passe |
|||
- mode partage par ressources (cas n°1 et 2) |
|||
* 3° cas : Login/Password |
|||
[global] |
|||
workgroup = "nom du groupe de travail" |
|||
netbios name = "nom netbios du serveur" |
|||
server string = "libellé sous lequel le serveur apparaitra" |
|||
invalid users = "liste des utilisateurs interdits" (il est vivement conseillé d'interdire "root") |
|||
log file = /var/log/samba/log.%m (par défaut un fichier de log est créé dans /var/log/samba pour chaque machine qui accède au partage) |
|||
syslog = 0 (par défaut on n'écrit pas les logs dans syslog, pour éviter de polluer) |
|||
security = share (signale qu'on fait un partage par ressource) |
|||
encrypt passwords = true (on utlise des mots de passe encryptés, sauf pour w95 et w98a qui n'utilisent que des mots de passe en clair) |
|||
socket options = TCP_NODELAY (accélère les transferts réseau) |
|||
dns proxy = no (empêche le service nmbd de chercher à résoudre les noms netbios via le DNS |
|||
guest account = "nom du compte qui va permettre de créer une ressource partagée par mot de passe" |
|||
exemple : gest account = invite |
|||
smb passwd file = /etc/samba/smbpasswd (emplacement du fichier contenant les logins et mots de passe samba) |
|||
printing = cups (pour voir les imprimantes partagées par CUPS) |
|||
== Le partage par ressource sur un réseau Workgroup == |
|||
la section [homes] est vide car on utilise le mode share |
|||
Voici un fichier '''/etc/samba/smb.conf''' permettant de partager une ressource (répertoire ou imprimante) sur un réseau Workgroup : |
|||
[printers] |
|||
comment = Les imprimantes |
|||
browsable = yes (pour afficher les imprimantes dans la liste des partages) |
|||
path = /tmp (comme nous sommes dans le cas d'une imprimante, on indique l'emplacement des fichiers temporaires) |
|||
printable = yes (spécifie qu'il s'agit d'une imprimante et non d'un répertoire) |
|||
public = yes (pour partager l'imprimante de manière anonyme) |
|||
writable = no (on ne peut pas écrire sur une imprimante!) |
|||
create mode = 0700 (pour éviter qu'un utilisateur ne supprime les impressions d'un autre) |
|||
# PARTAGE PAR RESSOURCES (share) |
|||
pour partager un répertoire: |
|||
[nom de partage] |
|||
# Section GLOBAL |
|||
comment = "commentaire" |
|||
# Configuration globale de Samba |
|||
path = "chemin du répertoire partagé" |
|||
[global] |
|||
locking = no (si on veut empecher le blocage d'un fichier par un utilisateur) |
|||
# Nom du groupe de travail |
|||
writable = yes ou no (selon qu'on autorise ou pas l'écriture, par exemple no pour un cdrom et yes pour un répertoire partagé en écriture) |
|||
workgroup = WORKGROUP |
|||
public = yes ou no (yes si on désire un partage anonyme, no sinon) |
|||
valid users = invite (utilisateurs valides pour le partage) |
|||
# Nom Netbios de la machine (identification réseau) |
|||
netbios name = SERVEUR |
|||
directory mask = 0755 (masque de création de répertoires) |
|||
# Chaine de commentaire associé au serveur (voisinage réseau) |
|||
server string = %h Serveur (Samba %v) |
|||
# Utilisateurs interdits |
|||
invalid users = root |
|||
# Enregistre un fichier de log par machine cliente du réseau MS |
|||
log file = /var/log/samba/log.%m |
|||
# Taille maximale des logs : 1 Mo |
|||
max log size = 1000 |
|||
# On n'utilise pas Syslog pour enregistrer les logs |
|||
syslog = 0 |
|||
# On fait un partage par ressources |
|||
security = share |
|||
# On utilise les mots de passe encryptés |
|||
# (attention, W95 et W98a fonctionnent avec les mdp en clair) |
|||
encrypt passwords = true |
|||
# Accélère les transferts réseaux |
|||
socket options = TCP_NODELAY |
|||
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS |
|||
dns proxy = no |
|||
# Nom du compte invité qui va permettre de créer une |
|||
# ressource partagée par mot de passe (celui du compte invite) |
|||
guest account = invite |
|||
# Emplacement du fichier contenant les logins et mdp samba |
|||
smb passwd file = /etc/samba/smbpasswd |
|||
# Pour récupérer les imprimantes définies dans CUPS |
|||
printing = cups |
|||
# Section HOMES |
|||
# Cette section est inutile ici car on utilise le mode share |
|||
# Section PRINTERS |
|||
# Cette section permet de partager les imprimantes définies sur le serveur |
|||
[printers] |
|||
# Le commentaire associé à l'imprimante |
|||
comment = Les imprimantes |
|||
# Affiche les imprimantes dans la liste des partages du serveur |
|||
browseable = yes |
|||
# Dans le cas d'une imprimante, c'est l'emplacement |
|||
# des fichiers temporaires |
|||
path = /tmp |
|||
# Spécifie qu'il s'agit d'une imprimante et non un répertoire |
|||
printable = yes |
|||
# Partage l'imprimante de manière anonyme |
|||
public = yes |
|||
# Logique |
|||
writable = no |
|||
# Empeche d'autres utilisateurs de supprimer mes impressions |
|||
create mode = 0700 |
|||
# Sections REPERTOIRES PARTAGES |
|||
# Un CDROM |
|||
[cdrom] |
|||
# Le commentaire associé au CDROM |
|||
comment = Le CDROM |
|||
# Point de montage du CDROM |
|||
# synonyme de directory = |
|||
path = /cdrom |
|||
# Empeche le bloquage d'un fichier par un utilisateur |
|||
locking = no |
|||
# Logique |
|||
writable = no |
|||
# Partage le CDROM de manière anonyme |
|||
public = yes |
|||
# Un répertoire partagé mais protégé par mot de passe |
|||
[partage] |
|||
# Le commentaire associé au répertoire |
|||
comment = Un répertoire partagé mais protégé par mot de passe |
|||
# Emplacement du répertoire partagé |
|||
path = /home/partage |
|||
# Support en lecture / écriture |
|||
# synonyme de read only = no |
|||
writable = yes |
|||
# Partage anonyme désactivé (cas par défaut) |
|||
# synonyme de guest ok = no |
|||
public = no |
|||
# Dans le cas du mode share, pour pouvoir positionner un mot de passe |
|||
# sur une ressource, il faut créer un compte UNIX 'invite' : |
|||
# adduser --shell /bin/false --disabled-login invite |
|||
# Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd |
|||
# smbpasswd -a invite |
|||
# Le mot de passe saisi correspondra à celui du répertoire partagé |
|||
# Il faut ensuite donner l'arborescence partagée à l'utilisateur |
|||
# invite du groupe invite |
|||
valid users = invite |
|||
# Masque de création des fichiers et répertoires |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
il faut ensuite créer l'utilisateur "invité": |
|||
# adduser --shell /bin/false --disabled-login invite |
|||
créer ensuite une entrée dans le fichier /etc/samba/smbpasswd: |
|||
# smbpasswd -a invite |
|||
donner le mot de passe correspondant |
|||
créer le(s) dossier(s) de partage et le(s) donner à l'utilisateur |
|||
# mkdir <nom du dossier> |
|||
# chown invite <nom du dossier> |
|||
On crée ensuite l'utilisateur '''invite''' : |
|||
Petit rappel: toujours utile de faire un testparm pour vérifier la cohérence du fichier de configuration, et ne pas oublier de relancer le service pour que les modifications soient prises en compte. |
|||
# adduser --shell /bin/false --disabled-login invite |
|||
Via la commande '''smbpasswd''', on crée ensuite une entrée dans le fichier '''/etc/samba/smbpasswd''' : |
|||
# smbpasswd -a invite |
|||
On saisi le mot de passe associé au compte '''invite'''. |
|||
On crée le dossier de partage '''/home/partage''' et on le donne à l'utilisateur '''invite''' : |
|||
# mkdir /home/partage |
|||
# chown invite /home/partage |
|||
Petit rappel : il est toujours utile de faire un '''testparm''' pour vérifier la cohérence du fichier de configuration, et ne pas oublier de relancer le service pour que les modifications soient prises en compte. |
|||
== Le partage par utilisateur sur un réseau Workgroup == |
|||
Voici un fichier '''/etc/samba/smb.conf''' permettant de partager une ressource (répertoire ou imprimante) avec une authentification '''Utilisateur / Mot de passe''' sur un réseau Workgroup : |
|||
# PARTAGE PAR UTILISATEUR (user) - Groupe de travail |
|||
# Il y a 3 cas possibles : |
|||
# |
|||
# CAS n°1 : cas normal du mode user, on fait une authentification |
|||
# par login et mot de passe |
|||
# CAS n°2 : on partage une ressource totalement anonyme |
|||
# CAS n°3 : on partage une ressource à laquelle est associé un |
|||
# mot de passe (celui du compte invite) |
|||
# Section GLOBAL |
|||
# Configuration globale de Samba |
|||
[global] |
|||
# Nom du groupe de travail |
|||
workgroup = WORKGROUP |
|||
# Nom Netbios de la machine (identification réseau) |
|||
netbios name = SERVEUR |
|||
# Chaine de commentaire associé au serveur (voisinage réseau) |
|||
server string = %h Serveur (Samba %v) |
|||
# Utilisateurs interdits |
|||
invalid users = root |
|||
# Enregistre un fichier de log par machine cliente du réseau MS |
|||
log file = /var/log/samba/log.%m |
|||
# Taille maximale des logs : 1 Mo |
|||
max log size = 1000 |
|||
# On n'utilise pas Syslog pour enregistrer les logs |
|||
syslog = 0 |
|||
# On fait un partage par utilisateur |
|||
security = user |
|||
# On utilise les mots de passe encryptés |
|||
# (attention, W95 et W98a fonctionnent avec les mdp en clair) |
|||
encrypt passwords = true |
|||
# Accélère les transferts réseaux |
|||
socket options = TCP_NODELAY |
|||
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS |
|||
dns proxy = no |
|||
# Nom du compte invité qui va permettre de créer une |
|||
# ressource partagée par mot de passe (celui du compte invite) |
|||
# POUR LE CAS n°3 |
|||
guest account = invite |
|||
# Emplacement du fichier contenant les logins et mdp samba |
|||
# concerne le CAS n°1 et n°3 |
|||
smb passwd file = /etc/samba/smbpasswd |
|||
# Section HOMES |
|||
# Cette section particulière permet de remonter une ressource |
|||
# qui correspond au répertoire de travail (home directory) |
|||
# de l'utilisateur qui s'est authentifié |
|||
[homes] |
|||
# Correspond au home directory de l'utilisateur authentifié |
|||
# %U sera remplacé par le nom d'utilisateur (login) |
|||
comment = Le répertoire personnel de %U |
|||
# Si on active cette option, on dispose d'une ressource 'homes' |
|||
# redondante avec la ressource 'login' |
|||
browseable = no |
|||
# Il faut que l'utilisateur soit authentifié pour accéder |
|||
# à la ressource (son home directory sur le serveur) |
|||
public = no |
|||
# Autorise l'écriture dans le répertoire personnel |
|||
writable = yes |
|||
# Droits d'accés des fichiers et répertoires crées |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
# Section PRINTERS |
|||
# Cette section permet de partager les imprimantes définies sur le serveur |
|||
[printers] |
|||
# Le commentaire associé à l'imprimante |
|||
comment = Les imprimantes |
|||
# Affiche les imprimantes dans la liste des partages du serveur |
|||
browseable = yes |
|||
# Dans le cas d'une imprimante, c'est l'emplacement |
|||
# des fichiers temporaires |
|||
path = /tmp |
|||
# Spécifie qu'il s'agit d'une imprimante et non un répertoire |
|||
printable = yes |
|||
# Partage l'imprimante de manière anonyme |
|||
public = yes |
|||
# Logique |
|||
writable = no |
|||
# Empeche d'autres utilisateurs de supprimer mes impressions |
|||
create mode = 0700 |
|||
# Sections REPERTOIRES PARTAGES |
|||
# CAS n° 2 - une ressource anonyme sans mot de passe |
|||
# Un CDROM |
|||
[cdrom] |
|||
# Le commentaire associé au CDROM |
|||
comment = Le CDROM |
|||
# Point de montage du CDROM |
|||
# synonyme de directory = |
|||
path = /cdrom |
|||
# Empeche le bloquage d'un fichier par un utilisateur |
|||
locking = no |
|||
# Logique |
|||
writable = no |
|||
# Partage le CDROM de manière anonyme |
|||
public = yes |
|||
# CAS n°1 |
|||
# Un répertoire partagé qu'a certains utilisateurs |
|||
[prive] |
|||
# Le commentaire associé au répertoire |
|||
comment = Un répertoire partagé qu'a certains utilisateurs (CAS n°1) |
|||
# Emplacement du répertoire partagé |
|||
path = /home/prive |
|||
# Support en lecture / écriture |
|||
# synonyme de read only = no |
|||
writable = yes |
|||
# Partage anonyme désactivé (cas par défaut) |
|||
# synonyme de guest ok = no |
|||
public = no |
|||
# Dans le cas du mode user, pour accéder à une ressource partagée |
|||
# qu'a certains utilisateurs, il faut créer un compte UNIX |
|||
# pour chacun d'eux : |
|||
# adduser --shell /bin/false --disabled-login paul |
|||
# adduser --shell /bin/false --disabled-login pierre |
|||
# Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd |
|||
# smbpasswd -a paul |
|||
# smbpasswd -a pierre |
|||
# On définit ensuite les utilisateurs autorisés |
|||
valid users = paul pierre |
|||
# ATTENTION toutefois : coté Linux, les utilisateurs doivent |
|||
# avoir le droit d'écriture sur le répertoire partagé. |
|||
# La méthode la plus simple mais la moins sécurisée est d'autoriser |
|||
# tout le monde a écrire dans ce répertoire (rwxrwxrwx) |
|||
# La méthode sécurisée consiste à créer un groupe Unix contenant |
|||
# les utilisateurs autorisés, et d'attribuer le repertoire |
|||
# partagé au groupe en question : |
|||
# addgroup prive |
|||
# adduser paul prive |
|||
# adduser pierre prive |
|||
# chgrp prive /home/prive |
|||
# chmod 770 /home/prive |
|||
# chmod g+s /home/prive |
|||
# |
|||
# Une fois ceci-fait, on peut remplacer : valid users = pierre paul |
|||
# par : valid users = @prive |
|||
# le @prive désigne le groupe Unix 'prive' |
|||
# Avantages : pour ajouter de nouveaux utilisateurs, il suffit |
|||
# de leur créer le compte unix, une entrée dans smbpasswd et de |
|||
# les ajouter au groupe prive (il n'est plus nécessaire de |
|||
# modifier le fichier smb.conf) |
|||
# Masque de création des fichiers et répertoires |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
# CAS n°3 |
|||
# Un répertoire partagé mais protégé par mot de passe |
|||
[partage] |
|||
# Le commentaire associé au répertoire |
|||
comment = Un répertoire partagé mais protégé par mot de passe |
|||
# Emplacement du répertoire partagé |
|||
path = /home/partage |
|||
# Support en lecture / écriture |
|||
# synonyme de read only = no |
|||
writable = yes |
|||
# Partage anonyme désactivé (cas par défaut) |
|||
# synonyme de guest ok = no |
|||
public = no |
|||
guest ok = true |
|||
# Dans le cas du mode user, pour pouvoir positionner un mot de passe |
|||
# sur une ressource, il faut créer un compte UNIX 'invite' : |
|||
# adduser --shell /bin/false --disabled-login invite |
|||
# Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd |
|||
# smbpasswd -a invite |
|||
# Le mot de passe saisi correspondra à celui du répertoire partagé |
|||
# Il faut ensuite donner l'arborescence partagée à l'utilisateur |
|||
# invite du groupe invite |
|||
valid users = invite |
|||
# Masque de création des fichiers et répertoires |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
== Le partage de ressources sur un domaine Microsoft == |
|||
Voici un fichier '''/etc/samba/smb.conf''' permettant de rejoindre un domaine existant afin de partager des ressources : |
|||
# PARTAGE PAR UTILISATEUR (server) - Domaine avec authentification |
|||
# déléguée à un controleur de domaine (PDC : Primary Domain Controller) |
|||
# Il y a 3 cas possibles : |
|||
# |
|||
# CAS n°1 : cas normal du mode user, on fait une authentification |
|||
# par login et mot de passe |
|||
# CAS n°2 : on partage une ressource totalement anonyme |
|||
# CAS n°3 : on partage une ressource à laquelle est associé un |
|||
# mot de passe (celui du compte invite) |
|||
# Section GLOBAL |
|||
# Configuration globale de Samba |
|||
[global] |
|||
# Nom du groupe de travail |
|||
workgroup = MERGUEZ |
|||
# Nom Netbios de la machine (identification réseau) |
|||
netbios name = SERVEUR |
|||
# Chaine de commentaire associé au serveur (voisinage réseau) |
|||
server string = %h Serveur (Samba %v) |
|||
# Utilisateurs interdits |
|||
invalid users = root |
|||
# Enregistre un fichier de log par machine cliente du réseau MS |
|||
log file = /var/log/samba/log.%m |
|||
# Taille maximale des logs : 1 Mo |
|||
max log size = 1000 |
|||
# On n'utilise pas Syslog pour enregistrer les logs |
|||
syslog = 0 |
|||
# On fait un partage par utilisateur, l'authentification est |
|||
# déléguée au controleur de domaine (PDC) |
|||
security = server |
|||
password server = COMPAQ |
|||
# On utilise les mots de passe encryptés |
|||
# (attention, W95 et W98a fonctionnent avec les mdp en clair) |
|||
encrypt passwords = true |
|||
# Accélère les transferts réseaux |
|||
socket options = TCP_NODELAY |
|||
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS |
|||
dns proxy = no |
|||
# Nom du compte invité qui va permettre de créer une |
|||
# ressource partagée par mot de passe (celui du compte invite) |
|||
# POUR LE CAS n°3 |
|||
guest account = invite |
|||
# Emplacement du fichier contenant les logins et mdp samba |
|||
# concerne le CAS n°1 et n°3 |
|||
smb passwd file = /etc/samba/smbpasswd |
|||
# Section HOMES |
|||
# Cette section particulière permet de remonter une ressource |
|||
# qui correspond au répertoire de travail (home directory) |
|||
# de l'utilisateur qui s'est authentifié |
|||
[homes] |
|||
# Correspond au home directory de l'utilisateur authentifié |
|||
# %U sera remplacé par le nom d'utilisateur (login) |
|||
comment = Le répertoire personnel de %U |
|||
# Si on active cette option, on dispose d'une ressource 'homes' |
|||
# redondante avec la ressource 'login' |
|||
browseable = no |
|||
# Il faut que l'utilisateur soit authentifié pour accéder |
|||
# à la ressource (son home directory sur le serveur) |
|||
public = no |
|||
# Autorise l'écriture dans le répertoire personnel |
|||
writable = yes |
|||
# Droits d'accés des fichiers et répertoires crées |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
# Section PRINTERS |
|||
# Cette section permet de partager les imprimantes définies sur le serveur |
|||
[printers] |
|||
# Le commentaire associé à l'imprimante |
|||
comment = Les imprimantes |
|||
# Affiche les imprimantes dans la liste des partages du serveur |
|||
browseable = yes |
|||
# Dans le cas d'une imprimante, c'est l'emplacement |
|||
# des fichiers temporaires |
|||
path = /tmp |
|||
# Spécifie qu'il s'agit d'une imprimante et non un répertoire |
|||
printable = yes |
|||
# Partage l'imprimante de manière anonyme |
|||
public = yes |
|||
# Logique |
|||
writable = no |
|||
# Empeche d'autres utilisateurs de supprimer mes impressions |
|||
create mode = 0700 |
|||
# Sections REPERTOIRES PARTAGES |
|||
# CAS n° 2 - une ressource anonyme sans mot de passe |
|||
# Un CDROM |
|||
[cdrom] |
|||
# Le commentaire associé au CDROM |
|||
comment = Le CDROM |
|||
# Point de montage du CDROM |
|||
# synonyme de directory = |
|||
path = /cdrom |
|||
# Empeche le bloquage d'un fichier par un utilisateur |
|||
locking = no |
|||
# Logique |
|||
writable = no |
|||
# Partage le CDROM de manière anonyme |
|||
public = yes |
|||
# CAS n°1 |
|||
# Un répertoire partagé qu'a certains utilisateurs |
|||
[prive] |
|||
# Le commentaire associé au répertoire |
|||
comment = Un répertoire partagé qu'a certains utilisateurs (CAS n°1) |
|||
# Emplacement du répertoire partagé |
|||
path = /home/prive |
|||
# Support en lecture / écriture |
|||
# synonyme de read only = no |
|||
writable = yes |
|||
# Partage anonyme désactivé (cas par défaut) |
|||
# synonyme de guest ok = no |
|||
public = no |
|||
# Dans le cas du mode user, pour accéder à une ressource partagée |
|||
# qu'a certains utilisateurs, il faut créer un compte UNIX |
|||
# pour chacun d'eux : |
|||
# adduser --shell /bin/false --disabled-login paul |
|||
# adduser --shell /bin/false --disabled-login pierre |
|||
# Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd |
|||
# smbpasswd -a paul |
|||
# smbpasswd -a pierre |
|||
# On définit ensuite les utilisateurs autorisés |
|||
valid users = paul pierre |
|||
# ATTENTION toutefois : coté Linux, les utilisateurs doivent |
|||
# avoir le droit d'écriture sur le répertoire partagé. |
|||
# La méthode la plus simple mais la moins sécurisée est d'autoriser |
|||
# tout le monde a écrire dans ce répertoire (rwxrwxrwx) |
|||
# La méthode sécurisée consiste à créer un groupe Unix contenant |
|||
# les utilisateurs autorisés, et d'attribuer le repertoire |
|||
# partagé au groupe en question : |
|||
# addgroup prive |
|||
# adduser paul prive |
|||
# adduser pierre prive |
|||
# chgrp prive /home/prive |
|||
# chmod 770 /home/prive |
|||
# chmod g+s /home/prive |
|||
# |
|||
# Une fois ceci-fait, on peut remplacer : valid users = pierre paul |
|||
# par : valid users = @prive |
|||
# le @prive désigne le groupe Unix 'prive' |
|||
# Avantages : pour ajouter de nouveaux utilisateurs, il suffit |
|||
# de leur créer le compte unix, une entrée dans smbpasswd et de |
|||
# les ajouter au groupe prive (il n'est plus nécessaire de |
|||
# modifier le fichier smb.conf) |
|||
# Masque de création des fichiers et répertoires |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
# CAS n°3 |
|||
# Un répertoire partagé mais protégé par mot de passe |
|||
[partage] |
|||
# Le commentaire associé au répertoire |
|||
comment = Un répertoire partagé mais protégé par mot de passe |
|||
# Emplacement du répertoire partagé |
|||
path = /home/partage |
|||
# Support en lecture / écriture |
|||
# synonyme de read only = no |
|||
writable = yes |
|||
# Partage anonyme désactivé (cas par défaut) |
|||
# synonyme de guest ok = no |
|||
public = no |
|||
guest ok = true |
|||
# Dans le cas du mode user, pour pouvoir positionner un mot de passe |
|||
# sur une ressource, il faut créer un compte UNIX 'invite' : |
|||
# adduser --shell /bin/false --disabled-login invite |
|||
# Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd |
|||
# smbpasswd -a invite |
|||
# Le mot de passe saisi correspondra à celui du répertoire partagé |
|||
# Il faut ensuite donner l'arborescence partagée à l'utilisateur |
|||
# invite du groupe invite |
|||
valid users = invite |
|||
# Masque de création des fichiers et répertoires |
|||
create mask = 0644 |
|||
directory mask = 0755 |
|||
== Samba en contrôleur de domaine Microsoft == |
|||
- Le partage par utilisateurs (cas n°3) : |
|||
C'est un partage pour les utilisateurs définis localement sur le serveur. |
|||
(nous signalons ici seulement les différences par rapport à la configuration précédente) |
|||
[global] |
|||
security = user (partage par utilisateur identifié par login et mot de passe) |
|||
Voici un fichier '''/etc/samba/smb.conf''' permettant de faire un contrôleur de domaine Microsoft : |
|||
[homes] |
|||
comment = Dossier de partage de %U (%U sera remplacé par le nom de l'utilisateur) |
|||
browseable = no (si on active cette option on dispose d'une ressource "homes" redondante avec la ressource "login") |
|||
public = no (pour obliger l'utilisateur à s'authentifier afin de pouvoir accéder à son home directory) |
|||
writable = yes (s'il ne peut pas écrire sur son répertoire, c'est ballot!) |
|||
create mask = 0644 (masque de creation de fichiers) |
|||
directory mask = 0755 (masque de création de répertoires) |
|||
# Controleur de domaine PDC (Primary Domain Controller) |
|||
[prive] (partage de répertoire réservé à certains utilisateurs ou groupes) |
|||
comment = commentaire |
|||
# Section GLOBAL |
|||
path = <chemin du dossier partagé> |
|||
# Configuration globale de Samba |
|||
writable = yes |
|||
[global] |
|||
public = no (pas d'anonymes!) |
|||
# Nom du groupe de travail |
|||
valid users = pierre paul @prive (liste des utilisateurs autorisés ou des groupes, le nom de ces derniers étant précédé par @) |
|||
workgroup = DOMAINE |
|||
create mask = 0644 (masque de creation de fichiers) |
|||
directory mask = 0755 (masque de création de répertoires) |
|||
# Nom Netbios de la machine (identification réseau) |
|||
netbios name = SERVEUR |
|||
# Chaine de commentaire associé au serveur (voisinage réseau) |
|||
server string = %h Serveur (Samba %v) |
|||
# Utilisateurs interdits |
|||
invalid users = root |
|||
# Enregistre un fichier de log par machine cliente du réseau MS |
|||
log file = /var/log/samba/log.%m |
|||
# Taille maximale des logs : 1 Mo |
|||
max log size = 1000 |
|||
# On n'utilise pas Syslog pour enregistrer les logs |
|||
syslog = 0 |
|||
# On est PDC, on fait l'authentification par utilisateur |
|||
security = user |
|||
# On utilise les mots de passe encryptés |
|||
# (attention, W95 et W98a fonctionnent avec les mdp en clair) |
|||
encrypt passwords = true |
|||
# Accélère les transferts réseaux |
|||
socket options = TCP_NODELAY |
|||
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS |
|||
dns proxy = no |
|||
# Nom du compte invité qui va permettre de créer une |
|||
# ressource partagée par mot de passe (celui du compte invite) |
|||
# POUR LE CAS n°3 |
|||
guest account = invite |
|||
# Emplacement du fichier contenant les logins et mdp samba |
|||
# concerne le CAS n°1 et n°3 |
|||
smb passwd file = /etc/samba/smbpasswd |
|||
# Permet de devenir le master browser du réseau |
|||
# Le master browser est responsable de l'état du réseau |
|||
# C'est en général le PDC qui effectue cette tache |
|||
local master = yes |
|||
# Permet de devenir le DOMAIN master browser du réseau |
|||
domain master = yes |
|||
# Cette option permet de déclencher une election sur le réseau |
|||
# afin de déterminer qui sera le master browser |
|||
# Le fait de déclencher cette election me donne le plus de chance |
|||
# devenir ce master browser |
|||
preferred master = yes |
|||
# Si ce chiffre est le plus grand du réseau, je deviens le PDC |
|||
os level = 255 |
|||
# Permet aux utilisateurs de changer leur mot de passe sur ce serveur |
|||
# depuis leur poste |
|||
update encrypted = yes |
|||
# Définit que le daemon nmbd doit agir en tant que serveur WINS |
|||
wins support = yes |
|||
# Winbind permet de placer des machines dans un domaine controlé |
|||
# par un PDC et d'autoriser les utilisateurs a accéder |
|||
# à ces machines en utilisant les informations du PDC |
|||
winbind separator = + |
|||
winbind enum users = no |
|||
winbind enum groups = no |
|||
winbind uid = 10000-20000 |
|||
winbind gid = 10000-20000 |
|||
# désactive le support des ACL (Access Control List) |
|||
# fonctionnalité utilisée par Active Directory |
|||
nt acl support = no |
|||
# Logins autorisés à se connecter aux ressources administratives |
|||
# comme C$, ADMIN$ et IPC$ |
|||
# pour que ceci marche, il faut créer un compte unix correspondant |
|||
# à la machine et rajouter une entrée de type machine dans smbpasswd |
|||
# Attention : ce login doit porter le nom netbios de la machine |
|||
# et se terminer par un dollar (d'ou le --force-badname) |
|||
# adduser --shell /bin/false --disabled-login --force-badname nompc$ |
|||
# smbpasswd -a -m nompc$ |
|||
admin users = admin |
|||
# PRIMORDIAL !, sinon ca marche pas : |
|||
# il faut que la ressource [netlogon] existe, meme si on n'utilise |
|||
# pas un script logon |
|||
domain logons = yes |
|||
# Pour autoriser les utilisateurs a changer leurs mots de passe |
|||
passwd program = /usr/bin/passwd %u |
|||
passwd chat = *Enter\snew\sUnix\spassword:* %n\n *Retype\snew\sUnix\spassword:* %n\n |
|||
# Section NETLOGON |
|||
# Permet de faire exécuter un script d'initialisation réseau par le poste |
|||
# client du domaine. Ceci permet par exemple connecter un lecteur réseau (Z:) |
|||
[netlogon] |
|||
# Il n'apparaitra pas dans la liste des ressources partagées |
|||
browsable = no |
|||
# Chemin vers le script netlogon optionnel |
|||
path = /etc/samba/netlogon |
|||
# Cette ressource doit impérativement exister et etre |
|||
# accessible en accés anonyme |
|||
public = no |
|||
# Pour la sécurité, cette ressource est exportée en read only |
|||
writable = no |
|||
# Permet à plusieurs utilisateurs d'utiliser le meme fichier |
|||
# en meme temps |
|||
locking = no |
|||
### Ce serveur effectuant la mission cruciale de PDC, il n'est pas |
|||
### recommandé de partager des ressources, bien que cela soit possible |
|||
[homes] |
|||
path = %H |
|||
browsable = no |
Version du 11 février 2008 à 14:15
Introduction
Samba est l'implémentation du protocole SMB (Server Message Block) sous Unix / Linux. Il sert à partager des fichiers et des imprimantes avec les réseaux Microsoft.
Site officiel : www.samba.org
Samba lance deux services : smbd et nmbd.
Le protocole SMB est tout sauf performant : il pollue le reseau par l'utilisation intensive du broadcast.
Samba utilise les ports 137 (netbios name service, nbname, en UDP), 138 (netbios datagram service nbdatagram, en UDP), 139 (netbios session service, nbsession, en TCP), et 445 ("direct-hosted" tcp, en tcp et udp).
La méthode de connexion traditionnelle smb utilise les ports 137, 138 et 139 tandis que la nouvelle méthode (CIFS, sur windows XP) n'utilise que le port 445.
Installation
Pour installer Samba, on tape la commande suivante :
# apt-get install samba smbclient smbfs
Configuration
Le fichier de configuration de Samba est /etc/samba/smb.conf.
Le programme testparm analyse le fichier smb.conf et signale les erreurs éventuelles.
Après avoir modifié la configuration, il faut relancer le service :
# /etc/init.d/samba restart
Le fichier /etc/samba/smb.conf se divise en différentes sections :
- La section [global] : configuration globale de samba
- La section [homes] : cette section particulière permet de remonter une ressource qui correspond au répertoire de travail (home directory) de l'utilisateur qui s'est authentifié.
On peut ensuite créer différentes sections, une par partage voulu.
Samba peut fonctionner de différentes manières. Pour chacune, nous allons étudier 3 cas de figures :
- 1° cas : Anonymous
- 2° cas : Partage avec un mot de passe
- 3° cas : Login/Password
Le partage par ressource sur un réseau Workgroup
Voici un fichier /etc/samba/smb.conf permettant de partager une ressource (répertoire ou imprimante) sur un réseau Workgroup :
# PARTAGE PAR RESSOURCES (share) # Section GLOBAL # Configuration globale de Samba [global] # Nom du groupe de travail workgroup = WORKGROUP # Nom Netbios de la machine (identification réseau) netbios name = SERVEUR # Chaine de commentaire associé au serveur (voisinage réseau) server string = %h Serveur (Samba %v) # Utilisateurs interdits invalid users = root # Enregistre un fichier de log par machine cliente du réseau MS log file = /var/log/samba/log.%m # Taille maximale des logs : 1 Mo max log size = 1000 # On n'utilise pas Syslog pour enregistrer les logs syslog = 0 # On fait un partage par ressources security = share # On utilise les mots de passe encryptés # (attention, W95 et W98a fonctionnent avec les mdp en clair) encrypt passwords = true # Accélère les transferts réseaux socket options = TCP_NODELAY # Empeche nmbd de chercher à résoudre le nom netbios via le DNS dns proxy = no # Nom du compte invité qui va permettre de créer une # ressource partagée par mot de passe (celui du compte invite) guest account = invite # Emplacement du fichier contenant les logins et mdp samba smb passwd file = /etc/samba/smbpasswd # Pour récupérer les imprimantes définies dans CUPS printing = cups # Section HOMES # Cette section est inutile ici car on utilise le mode share # Section PRINTERS # Cette section permet de partager les imprimantes définies sur le serveur [printers] # Le commentaire associé à l'imprimante comment = Les imprimantes # Affiche les imprimantes dans la liste des partages du serveur browseable = yes # Dans le cas d'une imprimante, c'est l'emplacement # des fichiers temporaires path = /tmp # Spécifie qu'il s'agit d'une imprimante et non un répertoire printable = yes # Partage l'imprimante de manière anonyme public = yes # Logique writable = no # Empeche d'autres utilisateurs de supprimer mes impressions create mode = 0700 # Sections REPERTOIRES PARTAGES # Un CDROM [cdrom] # Le commentaire associé au CDROM comment = Le CDROM # Point de montage du CDROM # synonyme de directory = path = /cdrom # Empeche le bloquage d'un fichier par un utilisateur locking = no # Logique writable = no # Partage le CDROM de manière anonyme public = yes # Un répertoire partagé mais protégé par mot de passe [partage] # Le commentaire associé au répertoire comment = Un répertoire partagé mais protégé par mot de passe # Emplacement du répertoire partagé path = /home/partage # Support en lecture / écriture # synonyme de read only = no writable = yes # Partage anonyme désactivé (cas par défaut) # synonyme de guest ok = no public = no # Dans le cas du mode share, pour pouvoir positionner un mot de passe # sur une ressource, il faut créer un compte UNIX 'invite' : # adduser --shell /bin/false --disabled-login invite # Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd # smbpasswd -a invite # Le mot de passe saisi correspondra à celui du répertoire partagé # Il faut ensuite donner l'arborescence partagée à l'utilisateur # invite du groupe invite valid users = invite # Masque de création des fichiers et répertoires create mask = 0644 directory mask = 0755
On crée ensuite l'utilisateur invite :
# adduser --shell /bin/false --disabled-login invite
Via la commande smbpasswd, on crée ensuite une entrée dans le fichier /etc/samba/smbpasswd :
# smbpasswd -a invite
On saisi le mot de passe associé au compte invite.
On crée le dossier de partage /home/partage et on le donne à l'utilisateur invite :
# mkdir /home/partage # chown invite /home/partage
Petit rappel : il est toujours utile de faire un testparm pour vérifier la cohérence du fichier de configuration, et ne pas oublier de relancer le service pour que les modifications soient prises en compte.
Le partage par utilisateur sur un réseau Workgroup
Voici un fichier /etc/samba/smb.conf permettant de partager une ressource (répertoire ou imprimante) avec une authentification Utilisateur / Mot de passe sur un réseau Workgroup :
# PARTAGE PAR UTILISATEUR (user) - Groupe de travail # Il y a 3 cas possibles : # # CAS n°1 : cas normal du mode user, on fait une authentification # par login et mot de passe # CAS n°2 : on partage une ressource totalement anonyme # CAS n°3 : on partage une ressource à laquelle est associé un # mot de passe (celui du compte invite) # Section GLOBAL # Configuration globale de Samba [global]
# Nom du groupe de travail workgroup = WORKGROUP
# Nom Netbios de la machine (identification réseau) netbios name = SERVEUR
# Chaine de commentaire associé au serveur (voisinage réseau) server string = %h Serveur (Samba %v)
# Utilisateurs interdits invalid users = root
# Enregistre un fichier de log par machine cliente du réseau MS log file = /var/log/samba/log.%m
# Taille maximale des logs : 1 Mo max log size = 1000
# On n'utilise pas Syslog pour enregistrer les logs syslog = 0
# On fait un partage par utilisateur security = user
# On utilise les mots de passe encryptés # (attention, W95 et W98a fonctionnent avec les mdp en clair) encrypt passwords = true
# Accélère les transferts réseaux socket options = TCP_NODELAY
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS dns proxy = no
# Nom du compte invité qui va permettre de créer une # ressource partagée par mot de passe (celui du compte invite) # POUR LE CAS n°3 guest account = invite
# Emplacement du fichier contenant les logins et mdp samba # concerne le CAS n°1 et n°3 smb passwd file = /etc/samba/smbpasswd
# Section HOMES # Cette section particulière permet de remonter une ressource # qui correspond au répertoire de travail (home directory) # de l'utilisateur qui s'est authentifié [homes]
# Correspond au home directory de l'utilisateur authentifié # %U sera remplacé par le nom d'utilisateur (login) comment = Le répertoire personnel de %U
# Si on active cette option, on dispose d'une ressource 'homes' # redondante avec la ressource 'login' browseable = no
# Il faut que l'utilisateur soit authentifié pour accéder # à la ressource (son home directory sur le serveur) public = no
# Autorise l'écriture dans le répertoire personnel writable = yes
# Droits d'accés des fichiers et répertoires crées create mask = 0644 directory mask = 0755
# Section PRINTERS # Cette section permet de partager les imprimantes définies sur le serveur [printers]
# Le commentaire associé à l'imprimante comment = Les imprimantes
# Affiche les imprimantes dans la liste des partages du serveur browseable = yes
# Dans le cas d'une imprimante, c'est l'emplacement # des fichiers temporaires path = /tmp
# Spécifie qu'il s'agit d'une imprimante et non un répertoire printable = yes
# Partage l'imprimante de manière anonyme public = yes
# Logique writable = no
# Empeche d'autres utilisateurs de supprimer mes impressions create mode = 0700
# Sections REPERTOIRES PARTAGES # CAS n° 2 - une ressource anonyme sans mot de passe # Un CDROM [cdrom]
# Le commentaire associé au CDROM comment = Le CDROM
# Point de montage du CDROM # synonyme de directory = path = /cdrom
# Empeche le bloquage d'un fichier par un utilisateur locking = no
# Logique writable = no
# Partage le CDROM de manière anonyme public = yes
# CAS n°1 # Un répertoire partagé qu'a certains utilisateurs [prive]
# Le commentaire associé au répertoire comment = Un répertoire partagé qu'a certains utilisateurs (CAS n°1)
# Emplacement du répertoire partagé path = /home/prive
# Support en lecture / écriture # synonyme de read only = no writable = yes
# Partage anonyme désactivé (cas par défaut) # synonyme de guest ok = no public = no
# Dans le cas du mode user, pour accéder à une ressource partagée # qu'a certains utilisateurs, il faut créer un compte UNIX # pour chacun d'eux : # adduser --shell /bin/false --disabled-login paul # adduser --shell /bin/false --disabled-login pierre # Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd # smbpasswd -a paul # smbpasswd -a pierre # On définit ensuite les utilisateurs autorisés valid users = paul pierre # ATTENTION toutefois : coté Linux, les utilisateurs doivent # avoir le droit d'écriture sur le répertoire partagé. # La méthode la plus simple mais la moins sécurisée est d'autoriser # tout le monde a écrire dans ce répertoire (rwxrwxrwx) # La méthode sécurisée consiste à créer un groupe Unix contenant # les utilisateurs autorisés, et d'attribuer le repertoire # partagé au groupe en question : # addgroup prive # adduser paul prive # adduser pierre prive # chgrp prive /home/prive # chmod 770 /home/prive # chmod g+s /home/prive # # Une fois ceci-fait, on peut remplacer : valid users = pierre paul # par : valid users = @prive # le @prive désigne le groupe Unix 'prive' # Avantages : pour ajouter de nouveaux utilisateurs, il suffit # de leur créer le compte unix, une entrée dans smbpasswd et de # les ajouter au groupe prive (il n'est plus nécessaire de # modifier le fichier smb.conf)
# Masque de création des fichiers et répertoires create mask = 0644 directory mask = 0755
# CAS n°3 # Un répertoire partagé mais protégé par mot de passe [partage]
# Le commentaire associé au répertoire comment = Un répertoire partagé mais protégé par mot de passe
# Emplacement du répertoire partagé path = /home/partage
# Support en lecture / écriture # synonyme de read only = no writable = yes
# Partage anonyme désactivé (cas par défaut) # synonyme de guest ok = no public = no
guest ok = true
# Dans le cas du mode user, pour pouvoir positionner un mot de passe # sur une ressource, il faut créer un compte UNIX 'invite' : # adduser --shell /bin/false --disabled-login invite # Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd # smbpasswd -a invite # Le mot de passe saisi correspondra à celui du répertoire partagé # Il faut ensuite donner l'arborescence partagée à l'utilisateur # invite du groupe invite valid users = invite
# Masque de création des fichiers et répertoires create mask = 0644 directory mask = 0755
Le partage de ressources sur un domaine Microsoft
Voici un fichier /etc/samba/smb.conf permettant de rejoindre un domaine existant afin de partager des ressources :
# PARTAGE PAR UTILISATEUR (server) - Domaine avec authentification # déléguée à un controleur de domaine (PDC : Primary Domain Controller) # Il y a 3 cas possibles : # # CAS n°1 : cas normal du mode user, on fait une authentification # par login et mot de passe # CAS n°2 : on partage une ressource totalement anonyme # CAS n°3 : on partage une ressource à laquelle est associé un # mot de passe (celui du compte invite) # Section GLOBAL # Configuration globale de Samba [global]
# Nom du groupe de travail workgroup = MERGUEZ
# Nom Netbios de la machine (identification réseau) netbios name = SERVEUR
# Chaine de commentaire associé au serveur (voisinage réseau) server string = %h Serveur (Samba %v)
# Utilisateurs interdits invalid users = root
# Enregistre un fichier de log par machine cliente du réseau MS log file = /var/log/samba/log.%m
# Taille maximale des logs : 1 Mo max log size = 1000
# On n'utilise pas Syslog pour enregistrer les logs syslog = 0
# On fait un partage par utilisateur, l'authentification est # déléguée au controleur de domaine (PDC) security = server password server = COMPAQ
# On utilise les mots de passe encryptés # (attention, W95 et W98a fonctionnent avec les mdp en clair) encrypt passwords = true
# Accélère les transferts réseaux socket options = TCP_NODELAY
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS dns proxy = no
# Nom du compte invité qui va permettre de créer une # ressource partagée par mot de passe (celui du compte invite) # POUR LE CAS n°3 guest account = invite
# Emplacement du fichier contenant les logins et mdp samba # concerne le CAS n°1 et n°3 smb passwd file = /etc/samba/smbpasswd
# Section HOMES # Cette section particulière permet de remonter une ressource # qui correspond au répertoire de travail (home directory) # de l'utilisateur qui s'est authentifié [homes]
# Correspond au home directory de l'utilisateur authentifié # %U sera remplacé par le nom d'utilisateur (login) comment = Le répertoire personnel de %U
# Si on active cette option, on dispose d'une ressource 'homes' # redondante avec la ressource 'login' browseable = no
# Il faut que l'utilisateur soit authentifié pour accéder # à la ressource (son home directory sur le serveur) public = no
# Autorise l'écriture dans le répertoire personnel writable = yes
# Droits d'accés des fichiers et répertoires crées create mask = 0644 directory mask = 0755
# Section PRINTERS # Cette section permet de partager les imprimantes définies sur le serveur [printers]
# Le commentaire associé à l'imprimante comment = Les imprimantes
# Affiche les imprimantes dans la liste des partages du serveur browseable = yes
# Dans le cas d'une imprimante, c'est l'emplacement # des fichiers temporaires path = /tmp
# Spécifie qu'il s'agit d'une imprimante et non un répertoire printable = yes
# Partage l'imprimante de manière anonyme public = yes
# Logique writable = no
# Empeche d'autres utilisateurs de supprimer mes impressions create mode = 0700
# Sections REPERTOIRES PARTAGES # CAS n° 2 - une ressource anonyme sans mot de passe # Un CDROM [cdrom]
# Le commentaire associé au CDROM comment = Le CDROM
# Point de montage du CDROM # synonyme de directory = path = /cdrom
# Empeche le bloquage d'un fichier par un utilisateur locking = no
# Logique writable = no
# Partage le CDROM de manière anonyme public = yes
# CAS n°1 # Un répertoire partagé qu'a certains utilisateurs [prive]
# Le commentaire associé au répertoire comment = Un répertoire partagé qu'a certains utilisateurs (CAS n°1)
# Emplacement du répertoire partagé path = /home/prive
# Support en lecture / écriture # synonyme de read only = no writable = yes
# Partage anonyme désactivé (cas par défaut) # synonyme de guest ok = no public = no
# Dans le cas du mode user, pour accéder à une ressource partagée # qu'a certains utilisateurs, il faut créer un compte UNIX # pour chacun d'eux : # adduser --shell /bin/false --disabled-login paul # adduser --shell /bin/false --disabled-login pierre # Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd # smbpasswd -a paul # smbpasswd -a pierre # On définit ensuite les utilisateurs autorisés valid users = paul pierre # ATTENTION toutefois : coté Linux, les utilisateurs doivent # avoir le droit d'écriture sur le répertoire partagé. # La méthode la plus simple mais la moins sécurisée est d'autoriser # tout le monde a écrire dans ce répertoire (rwxrwxrwx) # La méthode sécurisée consiste à créer un groupe Unix contenant # les utilisateurs autorisés, et d'attribuer le repertoire # partagé au groupe en question : # addgroup prive # adduser paul prive # adduser pierre prive # chgrp prive /home/prive # chmod 770 /home/prive # chmod g+s /home/prive # # Une fois ceci-fait, on peut remplacer : valid users = pierre paul # par : valid users = @prive # le @prive désigne le groupe Unix 'prive' # Avantages : pour ajouter de nouveaux utilisateurs, il suffit # de leur créer le compte unix, une entrée dans smbpasswd et de # les ajouter au groupe prive (il n'est plus nécessaire de # modifier le fichier smb.conf)
# Masque de création des fichiers et répertoires create mask = 0644 directory mask = 0755
# CAS n°3 # Un répertoire partagé mais protégé par mot de passe [partage]
# Le commentaire associé au répertoire comment = Un répertoire partagé mais protégé par mot de passe
# Emplacement du répertoire partagé path = /home/partage
# Support en lecture / écriture # synonyme de read only = no writable = yes
# Partage anonyme désactivé (cas par défaut) # synonyme de guest ok = no public = no
guest ok = true
# Dans le cas du mode user, pour pouvoir positionner un mot de passe # sur une ressource, il faut créer un compte UNIX 'invite' : # adduser --shell /bin/false --disabled-login invite # Créer ensuite une entrée dans le fichier /etc/samba/smbpasswd # smbpasswd -a invite # Le mot de passe saisi correspondra à celui du répertoire partagé # Il faut ensuite donner l'arborescence partagée à l'utilisateur # invite du groupe invite valid users = invite
# Masque de création des fichiers et répertoires create mask = 0644 directory mask = 0755
Samba en contrôleur de domaine Microsoft
Voici un fichier /etc/samba/smb.conf permettant de faire un contrôleur de domaine Microsoft :
# Controleur de domaine PDC (Primary Domain Controller) # Section GLOBAL # Configuration globale de Samba [global]
# Nom du groupe de travail workgroup = DOMAINE
# Nom Netbios de la machine (identification réseau) netbios name = SERVEUR
# Chaine de commentaire associé au serveur (voisinage réseau) server string = %h Serveur (Samba %v)
# Utilisateurs interdits invalid users = root
# Enregistre un fichier de log par machine cliente du réseau MS log file = /var/log/samba/log.%m
# Taille maximale des logs : 1 Mo max log size = 1000
# On n'utilise pas Syslog pour enregistrer les logs syslog = 0
# On est PDC, on fait l'authentification par utilisateur security = user
# On utilise les mots de passe encryptés # (attention, W95 et W98a fonctionnent avec les mdp en clair) encrypt passwords = true
# Accélère les transferts réseaux socket options = TCP_NODELAY
# Empeche nmbd de chercher à résoudre le nom netbios via le DNS dns proxy = no
# Nom du compte invité qui va permettre de créer une # ressource partagée par mot de passe (celui du compte invite) # POUR LE CAS n°3 guest account = invite
# Emplacement du fichier contenant les logins et mdp samba # concerne le CAS n°1 et n°3 smb passwd file = /etc/samba/smbpasswd
# Permet de devenir le master browser du réseau # Le master browser est responsable de l'état du réseau # C'est en général le PDC qui effectue cette tache local master = yes
# Permet de devenir le DOMAIN master browser du réseau domain master = yes
# Cette option permet de déclencher une election sur le réseau # afin de déterminer qui sera le master browser # Le fait de déclencher cette election me donne le plus de chance # devenir ce master browser preferred master = yes
# Si ce chiffre est le plus grand du réseau, je deviens le PDC os level = 255
# Permet aux utilisateurs de changer leur mot de passe sur ce serveur # depuis leur poste update encrypted = yes
# Définit que le daemon nmbd doit agir en tant que serveur WINS wins support = yes
# Winbind permet de placer des machines dans un domaine controlé # par un PDC et d'autoriser les utilisateurs a accéder # à ces machines en utilisant les informations du PDC winbind separator = + winbind enum users = no winbind enum groups = no winbind uid = 10000-20000 winbind gid = 10000-20000
# désactive le support des ACL (Access Control List) # fonctionnalité utilisée par Active Directory nt acl support = no
# Logins autorisés à se connecter aux ressources administratives # comme C$, ADMIN$ et IPC$ # pour que ceci marche, il faut créer un compte unix correspondant # à la machine et rajouter une entrée de type machine dans smbpasswd # Attention : ce login doit porter le nom netbios de la machine # et se terminer par un dollar (d'ou le --force-badname) # adduser --shell /bin/false --disabled-login --force-badname nompc$ # smbpasswd -a -m nompc$ admin users = admin
# PRIMORDIAL !, sinon ca marche pas : # il faut que la ressource [netlogon] existe, meme si on n'utilise # pas un script logon domain logons = yes
# Pour autoriser les utilisateurs a changer leurs mots de passe passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUnix\spassword:* %n\n *Retype\snew\sUnix\spassword:* %n\n
# Section NETLOGON # Permet de faire exécuter un script d'initialisation réseau par le poste # client du domaine. Ceci permet par exemple connecter un lecteur réseau (Z:) [netlogon]
# Il n'apparaitra pas dans la liste des ressources partagées browsable = no
# Chemin vers le script netlogon optionnel path = /etc/samba/netlogon
# Cette ressource doit impérativement exister et etre # accessible en accés anonyme public = no
# Pour la sécurité, cette ressource est exportée en read only writable = no
# Permet à plusieurs utilisateurs d'utiliser le meme fichier # en meme temps locking = no
### Ce serveur effectuant la mission cruciale de PDC, il n'est pas ### recommandé de partager des ressources, bien que cela soit possible [homes]
path = %H browsable = no