ConfigurationSAMBA CENTOS
ConfigurationSAMBA CENTOS
ConfigurationSAMBA CENTOS
Configuration de base
Le partage de fichiers est l'une des fonctions pivot des postes serveurs, à destination de
stations Windows ou Linux, voire des deux à la fois.
L'idée est de présenter quelques exemples faciles à suivre, ainsi que les options qui
pourraient vous être utiles.
Pour la première partie, les bases de Samba Linux et un fichier de configuration on ne peut
plus simple.
Nous partons du principe que notre serveur Samba SAMBA-TEST se trouve dans un
groupe de travail WORKGROUP (valeur par défaut des Windows) et possède l'ip
fixe 192.168.0.20 (donc sur un réseau 192.168.0.x)
# chkconfig smb on
Sous CentOS, le fichier de configuration " smb.conf " se trouve dans " /etc/samba ".
Afin de partir d'un fichier propre, on fait une copie " smb.conf " d'origine :
# cp -a /etc/samba/smb.conf /etc/samba/smb.conf.original
Si aucune option (valeur) relative à un point particulier n'est spécifiée, samba utilise le
paramètre par défaut. Il n'est donc pas nécessaire de fournir une ligne si le paramètre
n'apporte pas de nouvelle information.
Pour nos exemples, afin de simplifier, nos partages seront placés dans un dossier dédié, à
la racine, dans " /share ".
Pour ce qui concerne les règles iptables, si le Parefeu est actif, utiliser les commandes
suivantes, en root :
Si vous commettez une erreur, si vous avez un doute sur vos règles iptables ou si vous
avez injecté des règles incertaines, lancez les commandes suivantes avant de ressaisir les
règles ci dessus (ré-initialise iptables sous CentOS, seul SSH sera autorisé en entrant) :
# iptables -F
# service iptables save
# mkdir –p /share/commun
# chmod 777 /share/commun
[global]
workgroup = WORKGROUP
server string = samba-test
security = share
load printers = no
disable spoolss = Yes
# securite reseau
hosts allow = 192.168.0.
[partage_commun]
path = /share/commun
comment = Partage pour tous
public = yes
force directory mode = 777
force create mode = 777
writeable = yes
browseable = yes
# fin du fichier
A partir d'ici, vous devriez avoir à disposition un partage samba basique mais fonctionnel.
Si vous rencontrez un problème, commencez par jeter un œil du côté de Iptables, puis
vérifiez les droits sur les dossiers.
Adapté par : A.BENABED 4
Créez autant de partages que de nécessaire en suivant l'exemple de "partage_commun".
Explorez le réseau depuis une Windows ou ouvrez, dans un explorateur, l'adresse ip (ou le
nom si votre serveur dns le permet) de votre serveur précédé de '" \\ ".
Pour notre exemple, ça donne " \\192.168.0.20 "
Depuis une linux, ouvrez l'adresse " smb://192.168.0.20 " avec Nautilus.
Afin de simplifier, nous prenons l'exemple de l'accès à configurer pour deux utilisateurs
réseau, Said et Meriem, depuis leurs profils Windows respectifs.
Nous allons le modifier pour que l'accès soit autorisé uniquement aux utilisateurs déclarés
sur le serveur, via la ligne " security = " de la partie " Global "
Cette valeur était fixée à " share ", nous la passons à " user " ce qui implique la présence
de la ligne d'option relative aux mots de passe " passdb backend = "
De la même manière, dans la partie " share Definitions ", suppression de la ligne
" public = yes " puisque le dossier ne sera plus en accès libre mais limité aux utilisateurs
que nous allons déclarer.
Ajout des options " valid users = " et " write list = "
qui gèrent respectivement les utilisateurs autorisés en accès lecture seule et ceux
qui ont les droits pour créer et modifier le contenu (sous dossiers et fichiers).
Tout ceci nous donne un fichier " smb.conf " qui va ressembler à ceci (notez que "valid
users" et "write list" sont vides pour l'instant) :
[global]
workgroup = WORKGROUP
server string = samba-test
security = user
passdb backend = tdbsam
# securite reseau
hosts allow = 192.168.0.
[partage_commun]
path = /share/commun
# fin du fichier
Redémarrez Samba à ce niveau pour la future prise en compte des utilisateurs et mots de
passe !
Déclaration et gestion des utilisateurs sur le serveur CentOS pour Samba Linux
Pour pouvoir déclarer les utilisateurs dans notre "smb.conf", il faut que le serveur linux (et
donc samba) les connaisse et puisse vérifier leurs mots de passe.
Créer un utilisateur et lui affecter un mot de passe samba.
# useradd said
# smbpasswd -a said
Dans cette configuration, "Meriem" et "Said" auront pour groupe principal " sambausers "
L'option " /bin/false " peut-être modifiée ultérieurement pour chaque utilisateur (au cas
où un accès Linux SSH serait nécessaire) via le fichier " /etc/passwd ".
Les utilisateurs sont maintenant créés, retour sur le fichier "smb.conf". Pour le dossier
"partage_commun" existant, il s'agit d'en réserver l'accès exclusif au groupe "sambausers",
et donc à nos deux utilisateurs (pour cet exemple).
Nous pourrions ajouter simplement " meriem,said " aux lignes " valid users " et " write
list "
[global]
workgroup = WORKGROUP
server string = samba-test
security = user
passdb backend = tdbsam
# securite reseau
hosts allow = 192.168.0.
[partage_commun]
# fin du fichier
# mkdir /share/compta
# mkdir /share/secretariat
# chmod -R 777 /share/*
[global]
workgroup = WORKGROUP
server string = samba-test
security = user
passdb backend = tdbsam
# securite reseau
hosts allow = 192.168.0.
[compta]
path = /share/compta
comment = dossier compta
force directory mode = 777
force create mode = 777
writeable = yes
browseable = yes
valid users = said
write list = said
[secretariat]
path = /share/secretariat
comment = dossier secretariat
force directory mode = 777
force create mode = 777
writeable = yes
browseable = yes
valid users = meriem
write list = meriem
Pour ce faire, ajouter la partie suivante à vos " Share Definitions " :
Ne pas oublier de redémarrer Samba Linux pour prendre en compte toutes ces modifs :
Outre les autorisations et les limitations fixées via Samba, on peut affiner les propriétés des
dossiers partagés en utilisant les droits Natifs Linux.
Par exemple, pour affecter le dossier "commun" aux membres du groupe " sambausers ",
utiliser la commande " chgrp " :
On peut même limiter ce même dossier aux seuls " sambausers " (au sens Linux) :
Pensez dans ce cas à adapter vos options " force directory mode " et " force create
mode " pour ce dossier dans " smb.conf " :
[partage_commun]
path = /share/commun
comment = Partage pour tous
force directory mode = 770
force create mode = 770
writeable = yes
browseable = yes
valid users = @sambausers
write list = @sambausers
Redémarrer le service.
Lors du cumul des droits de partage samba et droits linux c'est le plus restrictif qui
l'emporte comme sous windows.
Rappel de quelques commandes utiles
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP AMANDINE
# pdbedit -L
smbguest:1000:Utilisateur Public Samba
said:1001: said
meriem:1003: meriem
rachid:1002: rachid
# smbpasswd -d rachid
Disabled user rachid.
Note : L'option "-v" correspond à "verbose" pour avoir un retour d'erreur, l'option "-t" per-
met de préciser le type de montage (ici cifs pour du samba ou du Windows).
A la ligne ci-dessus, il faut ajouter un identifiant valide et le mot de passe associé. On précise
donc ces éléments comme suit (avec l'option "-o" qui permet de rajouter les options) :
# mkdir /home/said/Desktop/favoris_reseau
Puis création du point de montage (dossier local) correspondant à notre exemple ("partage_commun"
sur 192.168.0.20)
# mkdir /home/said/commun_sur_samba-test
Fixez les droits pour l’utilisateur sur ces dossiers :
Pour chaque utilisateur, créez un fichier caché dans leur "/home". Pour l'exemple, c’est le fichier
caché ".pass_reseau".
# vi /home/said/.pass_reseau
Ce fichier doit présenter deux lignes (ni plus, ni moins) contenant l'identifiant et le mot de passe pour
le partage concerné. Renseignez comme suit (avec vos infos bien sûr) :
username=said
password=aA12345
# vi /etc/fstab
# partiel de fichier (fin de fstab)
Pour forcer la prise en compte des modifications du fichier "/etc/fstab" sans redémarrer le système :
# mount -a