« Le système d'exploitation GNU-Linux/Le partage de fichiers Samba » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
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


pour partager une imprimante:
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)
create mask = 0644 (masque de creation de fichiers)
# 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 à 13: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