Linux (Sommaire)

Le serveur samba

Introduction (Haut)

Le serveur samba est un outil qui révolutionne les petites infrastructures informatiques comme les collèges lycées centre de formation... Cet outil nous permet d'implanter des serveur fonctionnant sur linux et compatible avec Windows, MAC OS X, et autre.

Il fournit un bon niveau de sécurité et est relativement facile à implanter. on peu grâce à lui développer un serveur de fichier (le plus simple et le moins sécurisé), un serveur d'impression, un PDC (Contrôleur de Domaine Principal) ou BDC (contrôleur secondaire: backup).

Dans ce chapitre, je vais vous expliquer les principaux paramètres de configuration pour réaliser un serveur de fichier avec un exemple concret puis les paramètres supplémentaire pour un contrôleur de domaine.

Le fichier de configuration (Haut)

Dans la plupart des distributions, le serveur samba est pré-installer et pré-configurer. La configuration se trouve dans le fichier /etc/samba/smb.conf. Ce fichier de configuration ressemble fort à un fichier .INI des systèmes windows avec des ses sections.

Sections (Haut)

Les sections sont déclarées entre crochet: [] celle que l'on trouvera toujours est la section GLOBAL. On y trouvera la configurationglobal du serveur qui déterminera si samba tourne en tant que serveur de fichier, PDC ou BDC... C'est souvent la section la plus importante.

Ensuite vienne d'autres sections spécialisées comme HOMES, PRINTERS, PROFILES, NETLOGON,... que nous verrons par la suite.

Les commentaires (Haut)

Pour bien débuter (ou même quand on est pro ;) ) lorsqu'on édite un fichier de configuration ou un code source de programme, il est nécessaire voir obligatoire de commenter son fichier. Les commentaires nous permettrons de nous y retrouver de mieux mémoriser se qu'on est en train de faire et surtout savoir ce que vient faire cette ligne de m... dans notre fichier qu'on a créer 4 ans auparavant.

Un commentaire commence par un dièse (#) ou un point-virgule (;). Un commentaire ne peut être que sur une nouvelle ligne, c'est à dire qu'il ne pourra pas se trouver devant ou derrière un paramètre ou sa valeur. Tout manquement à ces deux règles engendrera un fonctionnement non souhaiter de votre serveur.

Les paramètres (Haut)

Les paramètres sont très nombreux c'est pourquoi je ne vous les présentez pas tous. Toutes fois je vous présenterez les plus courants...

tout d'abord, voici la syntaxe générale d'un paramètre.

Syntaxe

Paramètre = [sa_valeur]

Rien de bien compliquer jusque là.

Sections Paramètre Exemple Description
GLOBAL workgroup WORKGROUP Nom du groupe de travail windows ou du nom de domaine
netbios name SERVEUR Nom netbios du serveur
server string serveur Nom apparaissant dans le voisinage réseaux windows
security share Définit le niveau de sécurité.
Ici share veut dire partager, on ne demande pas de mot de passe l'identification se fait suivant différents paramètres c'est le niveau de sécurité le plus faible
guest account nobody Spécifie le compte UNIX que samba doit utiliser pour les connections en mode invité. Il est à noté que le compte doit exister sur la station UNIX
PARTAGE path /home/partage chemin du dossier partagé
comment Mon dossier partagé Commentaire de la ressource
read only no si "no" = on autorise l'écriture dans ce dossier
si "yes" = on ne peut que lire
browseable yes si "yes" = la ressource apparaît dans l'explorateur
guest ok yes Les comptes invité peuvent accéder a cette ressource

Samba en serveur de fichier (Haut)

Voici un exemple de fichier de configuration pour réaliser un serveur de fichier. Ce serveur de fichier partage 3 dossiers.
cet exemple n'utilise que les paramètres vu précédemment.

[global]
	# Définition du groupe de travail
	workgroup = WORKGROUP
	
	; Nom NETBIOS du serveur
	netbios name = NICO
	
	; c'est le nom qui apparait dans le voisinage réseau
	server string = Nico 
	
	; Niveau de sécurité partage public
	security = share 
	
	# Les utilisateurs logués en tant qu'invité utiliseront le compte invite
	guest account = nobody 

[partage]
	#====== Definition du partage nommé partage ======
	
	# On défini le chemin du fichier partager
	path = /home/partage 
	
	# Description du partage	
	comment = partage public 
	
	# On autorise l'ecriture
	read only = no 
	
	# Le partage sera visible dans l'explorateur
	browseable = yes 
	
	# les Invite on le droit d'y acceder
	guest ok = yes 

[Divers]
	path = /mnt/win_d
	comment = Disque divers
	read only = yes
	browseable = yes
	guest ok = yes
	
[DL Linux]
	path = /home/Fichiers téléchargés/
	read only = no
	browseable = yes
	guest ok =yes

Samba en controleur de domaine (Haut)

Fichier de configuration

Avant de vous donnez tel quel le fichier de configuration nécéssaire pour faire tourner samba en controleur de domaine, je vais d'abord vous donner de nouveaux paramètres dont vous aurez besoin. Les voicis donc:

Section Paramètre Exemple Description
GLOBAL local master yes Un local master browser relève les ordinateurs présents sur le réseaux par la méthodes de broadcast. En gros il envoi une requete a tout le monde et il note qui lui répons.
Ce paramètre autorise ou nom à participer aux élections du local master
domain master yes Le domain master collecte la liste des local master browser. Comme précédament on autorise notre serveur a participer aux élections
prefered master yes On force les élections au démarrage
oslevel 65 Permet de gagner aux élections (on triche hihihi)
domain logons yes Gestion des authentifications sur le domaine.
encrypt password yes Crypter le mot de passe
smb passwd file /etc/samba/smbpasswd Spécifie l'emplacement du fichier où seront enregistrer les mots de passe
unix password sync no Ne pas synchroniser les mots de passes unix et samba. Mettre à no
passwd program /usr/bin/passwd %u Spécifie le programme permettant de changer les mots de passe.
%u spécifie le nom d'utilisateur samba

Cette configuration permet à samba de fonctionner en tant que controleur de domaine mais ce n'est pas suffisant.
En effet, il nous faut maintenant créer les comptes samba.

Création des comptes utilisateur (Haut)

Nous allons créer deux utilsateurs: nvincent et jvincent. Ils ferons tous les deux partie du groupe users. Commençons d'abord par créer les comptes UNIX. pour se faire, nous allons utilser la commande adduser.

adduser nvincent -g users
adduser jvincent -g users

Maintenant nous allons créer le compte invite qui sera utilisé pour les utilisateurs non identifier et qui ne disposerons de quasiment aucun droit.

adduser invite
nous n'utilsons pas l'option -g car linux créra automatiquement un groupe nommé comme l'utilisateur à savoir invite.

Affectation des mots de passe samba (Haut)

Nous allons maintenant affexter les mots de passe samba à ses utilisateur pour se faire nous utiliserons la commande smbpasswd qui va s'utiliser comme suit.

Pour un nouvel utilisateur:
smbpasswd -a [nom_utilisateur]
New SMB password: *****
Retype new SMB password: *****
Password changed for user [nom_utilisateur]

Vous n'avez donc plus qu'à faire cette manipulation avec nos deux utilisateur créer précédament. Il faut aussi le faire avec le compte invite mais nous ne spécifions pas de mot de passe pour se compte.

Créations des comptes pour les clients windows (haut)

Lorsqu'une machine de type Windows 2000 / XP souhaite se connecter à notre controleur de domaine, un copte lui correspondant doit etre spécifier dans le fichier smbpasswd. Ces comptes se différencie par le fait qu'il se termine par un $ et ils ne pocéderons ni shell, ni répertoire personnel.
Ce qui nous donne pour une machien s'appelant Win2k:

groupadd machines
adduser win2k$ -g machines -s /dev/falsel -d /dev/null

Affectation du mot de passe root samba (Haut)

Pour des raisons de sécurité évidentes, il est déconseiller de mettre le même mot de passe root pour samba et pour notre machine serveur! Ce mot de passe root samba vous sera demandé lorsque que vous rejoindrai une machine à un domaine.
D'où la commande suivante:

smbpasswd -a root

voilà pour notre serveur. il ne nous reste plus qu'à configurer le partage du répertoire personnel...

Partage du repertoire personnel et des profiles (Haut)

Le principal avantage d'un domaine est de retrouver notre session windows identique quelque soit le poste utilisé. Pour le réaliser, notre session est enregistrée sur le serveur il nous faut donc définir ses resources et les partager.

Ces deux ressources dans samba ont chacun leur section spécifque à savoir [profiles] pour les profiles et [homes] pour les répertoires personnels.

Section "profiles"

Voici ce que nous allons mettre dans la section profiles. Je vous expliquerai ensuite les nouvelles directives utilisées.

[profiles]
path = /hom/export/profile
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700

Nous avons donc deux nouveaux paramètre: "create mask" et "directory mask". Elle servent a spécifier les droits que les utilisateurs auront lors de la création d'un nouveau fichier. On peut les comparé à la commande chmod.

create mask 700 voudras donc dire que les fichiers créer par un utilisateur ne pourront etre accéder que par cet utilisateur qui aura tous les droits dessus et personne d'autres.
Si ce que je vous dit là c'est du chinois, je vous redirige vers la section Droit d'accès.

Quand à dirctory mask bah c'est pareil mais pour les répertoire créer par l'utilisateur.

Section Homes

Comme précédamant je vais vous donner ce que l'on met dans cette section et je vous expliquerai le paramètre qu'on a pas encore vu. Donc voici cette fameuse section homes.

[homes]
comment = Repertoire personnel
browseable = no
writeable = yes
invalid users = invite

Bon en fait c'est pas très compliqué, invalid users çà veut dire ce que çà veut dire... on ne partage pas de repertoire personnel avec les invités...

Configuraton complète de samba en PDC. (Haut)

 
[global]
	# Définition du nom de domaine
	workgroup = MONDOMAINE
	
	; Nom NETBIOS du serveur
	netbios name = NICO
	
	; c'est le nom qui apparait dans le voisinage réseau
	server string = Nico 
	
	; Niveau de sécurité user, demande un login et un mot de passe
	security = user
        encrypt passwords = yes
        unix password sync = no
        passwd program = /usr/passwd %u
        passwd chat = *New* %n\n *Re* %n\n *pa*
	
	; Gestion de l'authentification sur le domaine
	domain logons = yes
	
	# Les utilisateurs logués en tant qu'invité utiliseront le compte invite
	guest account = invite 
	
	local master = yes
	domain master = yes
	oslevel = 65 
	prefered master = yes
        
[profiles]
        path = /home/export/profile
        browseable = no
        writeable = yes
        create mask = 0700
        directory mask = 0700
        
[homes]
        comment = Repertoire Personnel
        browseable = no
        writeable = yes
        invalid users = invite

[partage]
	#====== Definition du partage nommé partage ======
	
	# On défini le chemin du fichier partager
	path = /home/partage 
	
	# Description du partage	
	comment = partage public 
	
	# On autorise l'ecriture
	read only = no 
	
	# Le partage sera visible dans l'explorateur
	browseable = yes
	
	# les Invite on le droit d'y acceder
	guest ok = yes 

sommaire | système de fichier | droit d'accès | commandes utiles | commande grep et regex | raccourcis | serveur samba

Site perso de Nicolas VINCENT E-Mail Webmaster
Dernière modification: 11/05/2007. 1 visiteurs consultent ce site actuellement

Valid CSS! Valid HTML 4.01! logo de firefox