c. Serveur de fichiers
Le logiciel Samba est un outil permettant de partager des
dossiers et des imprimantes à travers un réseau local. Il permet
de partager et d'accéder aux ressources d'autres ordinateurs
fonctionnant avec des systèmes d'exploitation Microsoft® Windows et
Apple Mac OS X, ainsi que des systèmes GNU/Linux, BSD et Solaris dans
lesquels une implémentation de Samba est
installée. Pour partager de manière simple des ressources entre
plusieurs ordinateurs, l'utilisation de Samba est conseillée. Vu les
fonctionnalités qu'offrent ce logiciel, nous avons en usé de sa
possibilité d'émuler un domaine Windows pour le configurer en
contrôleur de domaine principal (PDC). Le contrôleur de domaine
principal est un serveur chargé du contrôle de l'authentification
des requêtes de connexion et d'accès aux ressources dans un
domaine windows qui est quant à lui un groupe d'ordinateurs
(techniquement appelé forêt) où l'accès à une
variété de ressources hébergée sur un ordinateur
est contrôlé par la PDC. Il existe divers outils pour une
configuration graphique de samba mais nous avons souhaité utiliser le
shell car celui-ci offre la possibilité de configurer tous les
paramètres de samba.
Installation
Afin d'installer les paquets minimums nécessaires pour
la suite des opérations, nous avons lancé les commandes
suivantes :
apt-get update
apt-get update --fix-missing
apt-get install ssh (pour l'accès au serveur à
distance)
apt-get install samba
Création des groupes et des
utilisateurs
Afin que tout le monde ne puisse pas accéder à
tous les fichiers, il a fallu restreindre l'accès à certains
utilisateurs et à certains groupes et pour cela nous les avons
créé au préalable. Nous avons crée trois
groupes : etudiants, profs et cadre. Chacun de ces groupes contient des
utilisateurs et nous avons créé juste ceux donc nous avions
besoins.
Figure 7 :
Création des groupes et des utilisateurs.
Dans notre cas, nous avons utilisé plusieurs options.
L'option -m qui permet de créer directement le
répertoire home du nouvel utilisateur. Ce
répertoire se situe dans /home/. L'option
-g permet à l'utilisateur de rejoindre le groupe
spécifié en paramètre. L'option -R de la
commande chmod permet d'appliquer le mode d'accès
préciser à tous les fichiers dans les sous répertoires de
manière récursive.
Après cette manipulation il faut activer ces comptes
utilisateurs dans Système> Administration> Utilisateurs et
groupes, en saisissant le mot de passe de chaque
utilisateur à la demande.
Pour que les utilisateurs aient accès aux ressources de
samba, il a fallu que nous les ajoutions à samba grâce à la
commande smbpasswd de la manière ci-dessous :
Figure 8 : Ajout des
utilisateurs au serveur Samba.
L'option -a permet juste de spécifier
le nom de l'utilisateur. Il faut faire pareil pour le compte root à fin
de lui permettre d'intégrer des postes clients au domaine.
Ajout des machines sous samba
Pour que chaque machine puisse se connecter au domaine au
démarrage, il faut qu'il ait un compte au niveau du contrôleur de
domaine samba pour cela nous avons créé un groupe ordinateurs qui
contiendra toutes les machines du domaine.
Par exemple pour joindre le poste portant le nom supemirpc3, il
faut un compte machines portant ce nom sur le PDC.
Création du groupe ordinateus
Ajoute de l'utilisateur supemirpc3$
Ajout de son mot de passe à /etc/samba/smbpasswd :
Ne pas oublier le $ à la fin du nom, tout se passe comme
ci-dessous :
Figure 9 : Ajout du
groupe des ordinateurs et d'un compte machine à Samba.
L'option -m permet de préciser que ce
compte est un compte machine et de ce fait il n'a pas de mot de passe.
Création des dossiers de
partage
Vu que le répertoire public est accessible par tout le
monde, nous avons donné le droit de lecture, écriture er
exécution des fichiers et répertoires à tout le
mode : chmod 777 /home/public.
Figure 10 :
Création des répertoires de partage.
Le répertoire profiles permet de stocker les profiles
des utilisateurs qui se connectent au domaine à fin de le permettre de
garder leur environnement de travail quelque soit le poste sur lequel ils se
connecteront, le répertoire netlogon quant à lui
permet de stocker les scripts de connexion.
Configuration de smb.conf
Le fichier smb.conf est le fichier de
configuration de samba contenu dans le répertoire /etc/samba/.
Ce fichier décrit les ressources que l'on désire
partager, ainsi que les permissions/restrictions qui leur sont
associées.
gedit /etc/samba/smb.conf pour éditer le fichier de
configuration et le modifier comme suit :
# smb.conf par A.K
#--------CONFIGURATION GLOBALE---------------------------
[global]
workgroup = labs.supemir.ma
# nom sous lequel appara®tre le serveur dans le voisinage
r(c)seau
netbios name = srvsupemir4
# ce qui appara®tra dans la rubrique d(c)tail du voisinage
r(c)seau, %v fait appara®tre le n° de version de samba
server string = %h Serveur Samba %v
# les mots de passes transitent chiffr(c)s
encrypt passwords = Yes
# lieux de stockage du journal des (c)v(c)nements
log file = /var/log/samba/log.%m
# taille max du journal
max log size = 50
# param·tre qui permet d'augmenter les performances
r(c)seau
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# pas de proxy dns
dns proxy = No
username map = /etc/samba/smbusers
# oblige les utilisateurs avoir un compte sur le serveur
pour se connecter
security = user
# crypter le mot de passe
encrypt passwords = true
# base de donn(c)es des utilisateurs, groupes et mots de passe
passdb backend = tdbsam:/var/lib/samba/pdcpass.tdb
smb passwd file = /etc/samba/smbpasswd
# synchronisation des mots de passe samba avec les mots de passe
linux
unix password sync = yes
pam password change = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n
*Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
#pour pouvoir synchroniser l'horloge des client sur celle du
serveur
time server = yes
# autorise la connection des utilisateurs sur le domaine
domain logons = yes
# ce serveur est le controleur du domaine
domain master = yes
# dans le cas de la pr(c)sence de plusieurs contr'leurs de
domaine, c'est le serveur qui est le favori
preferred master = yes
# il fait autorit(c) sur le r(c)seau local
local master = yes
# permet de gagner l'(c)lection contre les autres machines
windows
os level = 255
#sp(c)cifie que root et les user du groupe cadre peuvent joindre
le domaine sur les clients
#domain admin group = @root,@cadre
# repertoire de connexion
logon home = \\%N\%H
logon path = \\%N\profile\%U
logon script = %U.bat
# administrateur du domain
admin users = root manager
#--------CONFIGURATION DU PARTAGE DES FICHIERS-------------
[netlogon]
comment = R(c)pertoire des scripts de connextion
path = /home/netlogon/
browseable = no
writeable = no
write list = root, manager
#
[profile]
comment = R(c)pertoire des profiles de connextion
path = /home/profile
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
#
[public]
comment = R(c)pertoire Public
public = yes
path = /home/public
# il est accessible en (c)criture
writeable = yes
valid users = @profs,@cadre,@etudiants
write list = @profs,@cadre,@etudiants
read list = @profs,@cadre,@etudiants
# les fichiers cr(c)(c)s sont en lecture seule, sauf pour le
propri(c)taire
create mode = 0755
#
[cours]
comment = Repertoire des cours acc(c)ssibles par les profs
path = /home/cours
browsable=no
#valid users = @profs
valid users = @profs
write list = @profs
read list = @profs
#
[direction]
comment = Repertoire des cours acc(c)ssibles par les profs
path = /home/direction
browsable=no
valid users = @cadre
write list = @cadre
read list = @cadre
#
[amine]
comment = Repertoire amine
path = /home/amine
browsable=no
valid users = amine
#
[achraf]
comment = Repertoire achraf
path = /home/achraf
browsable=no
valid users = achraf
#
[mounir]
comment = Repertoire mounir
path = /home/mounir
browsable=no
valid users = mounir
#
[khalid]
comment = Repertoire khalid
path = /home/khalid
browsable=no
valid users = khalid
#
[niveau1]
comment = Repertoire des cours niveau1
path = /home/niveau1
#browseable = no
valid users = @profs,niveau1
write list = @profs
read list = niveau1
#
[niveau2]
comment = Repertoire des cours niveau2
path = /home/niveau2
#browseable = no
valid users = @profs,niveau2
write list = @profs
read list = niveau2
#
[niveau3]
comment = Repertoire des cours niveau3
path = /home/niveau3
#browseable = no
valid users = @profs,niveau3
write list = @profs
read list = niveau3
#
[niveau4]
comment = Repertoire des cours niveau4
path = /home/niveau4
#browseable = no
valid users = @profs,niveau4
write list = @profs
read list = niveau4
#
[niveau5]
comment = Repertoire des cours niveau5
path = /home/niveau5
#browseable = no
valid users = @profs,niveau5
write list = @profs
read list = niveau5
#
# partarge supervision
[manager]
comment = Repertoire de supervision
browseable = no
path = /home/
valid users = manager
write list = manager
read list = manager
# fin de fichier
Scripts de connexion
Etant donnée que les utilisateurs ne son pas nombreux,
nous avons créé un script pour chacun d'eux, ainsi ne seront
montés à la connexion au domaine uniquement les partages auxquels
l'utilisateur a droit.
gedit /home/netlogon/achraf.bat
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\direction
NET USE S: \\srvsupemir4\public
NET USE X: \\srvsupemir4\achraf
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
gedit /home/netlogon/amine.bat
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\direction
NET USE S: \\srvsupemir4\public
NET USE X: \\srvsupemir4\amine
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
gedit /home/netlogon/mounir.bat
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\direction
NET USE S: \\srvsupemir4\public
NET USE X: \\srvsupemir4\mounir
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
gedit /home/netlogon/khalid.bat
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\direction
NET USE S: \\srvsupemir4\public
NET USE X: \\srvsupemir4\khalid
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
gedit /home/netlogon/prof1.bat
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\niveau1
NET USE S: \\srvsupemir4\niveau2
NET USE X: \\srvsupemir4\niveau3
NET USE Y: \\srvsupemir4\niveau4
NET USE W: \\srvsupemir4\niveau5
NET USE Y: \\srvsupemir4\niveau4
NET USE W: \\srvsupemir4\public
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
gedit /home/netlogon/niveau1
REM montage du répertoire de l'utilisateur
NET USE R: \\srvsupemir4\niveau1
NET USE S: \\srvsupemir4\public
REM réglage de l'heure du client par arpport à
celle du serveur
NET TIME \\srvsupemir4\ /SET /YES
Ceci a été fait pour les 4 autres niveaux.
Test de la configuration
Avant le démarrage du serveur, nous avons
procédé à une examination de la syntaxe du fichier de
configuration grâce à la commande testparm. Pour
cela nous avons du installé le package samba-common-bin (apt-get
install samba-common-bin). Cette commande vérifie la syntaxe du
fichier de configuration par contre elle ne garantit pas le bon fonctionnement
du serveur. Elle inspecte toutes les sections du fichier de configuration, il
n'y pas d'erreur dans la syntaxe, nous avons un aperçu comme
ci-dessous.
Figure 11 :
Résultat du test de la syntaxe du fichier de configuration.
Connexion au serveur
Le serveur configuré, il est nécessaire de le
relancer pour que les modifications soient prises en compte :
service smbd stop / service smbd start. Le service smbd est
celui qui gère le partage de fichiers et d'imprimantes.
Pour vérifier que les répertoires ont
été correctement partagés nous avons utilisé la
commande smbclient de la manière suivante :
smbclient -L //127.0.0.1/ (le 127.0.0.1 car
nous sommes toujours sur le serveur, sur un machine linux à distance on
doit préciser l'adresse IP du serveur), puis saisir le mot de passe
root ; nous obtenons cet aperçu :
Figure 12 :
Aperçu des répertoires partagés sur le
serveur.
L'option -L permet de spécifier
l'hôte en renseignant son adresse IP.
La commande smbclient permet aussi à
un utilisateur d'accéder au partage sur linux.
Figure 13 :
Utilisation du serveur.
L'option -U permet de préciser
l'utilisateur qui veut se connecter au partage. Le console nous demande le mot
de passe de l'utilisateur et autorise l'accès si ce dernier est correct
et si l'utilisateur possède les droits pour accéder à ce
partage.
Connexion au partage : smbclient
Affiche des fichiers présents dans le répertoire
de partage : ls
Quitter le partage : exit
Intégration d'un client windows dans
samba
L'intégration au domaine samba permet à
l'utilisateur de monter directement ses répertoires de partage sur son
poste de travail et là il verra des lecteurs réseaux identifiants
les partages auxquels il a accès au niveau du serveur. Là c'est
plus sécurisant parce que l'utilisateur ne voit que les partages
auxquels il a droit. La procédure est la suivante :
Démarrer > clic droit sur poste de travail
> Propriétés > Nom de l ordinateur >
Modifier
Figure 14 :
Intégration d'un client windows au domaine.
Il est nécessaire de s'authentifier avec un compte
Administrateur de domaine sur notre poste client.
Notre ordinateur est désormais intégré au
domaine.
A l'ouverture de session, le client doit choisir de se
connecter au domaine afin de monter les répertoires de partage auxquels
il a accès dans l'explorateur. Voici l'aperçu de ces lecteurs
dans l'explorateur.
Figure 15 : Lecteurs
réseau associées au partage de l'utilisateur achraf.
|