Les paramètres globauxCe document va vous expliquez comment créer des partages qui pourront être accessible par n'importe qui du réseau. On vera comment protéger ou non ces ressources par un mot de passe.
Parce qu'ici nous allons utiliser le mode de sécurité share, il ne sera pas nécessaire de créer un utilisateur Unix pour chaque utilisateur Windows devant se connecter au serveur. Lisez mon document relatif aux niveaux de sécurité pour comprendre comment Samba valide un utilisateur et un mot de passe et les différences entre les niveaux de sécurité.Si après avoir correctement fait cette configuration, vous avez des difficultés à voir le serveur Samba dans le voisinage réseau de Windows, consultez ma page sur l'exploration.
Ces exemples assument que le software client que vous utilisez accepte par défaut les échanges de mots de passe non-encryptés avec un serveur SMB. Si ce n'était pas le cas ou simplement pour savoir dans quel cas vous vous trouvez, voyez ma discussion sur l'encryption des mots de passe.
La section [global] du fichier smb.conf va contenir tous les paramètres qui permettront d'influencer le comportement des deux daemons smbd et nmbd. Cette section pourra aussi servir à fixer des valeurs par défaut pour certains paramètres nécessaires à la configuration de répertoires partagés.
Pour commencer par une configuration simple, nous allons utiliser les quatre paramètres globaux suivants : workgroup, netbios name, security et guest account. Le rôle de ces paramètres est de fixer les caractéristiques suivantes :Un partage sans mot de passeNom de machine et de workgroup ne doivent ni avoir plus de 15 caractères, ni être identiques.workgroup : le nom du "groupe de travail" dans lequel le serveur doit apparaître lorsque l'on construit une liste de toutes les machines du réseau utilisée pour créer l'affichage du contenu de la fenêtre "Vosinage réseau" de Windows, par exemple. netbios name : ce paramètre fixe le nom NetBIOS du serveur Samba, autrement dit le nom qui serfa utilisé ultérieurement pour atteindre ce serveur depuis un client quel qu'il soit.
A ce point de la configuration, vérifiez que vous n'avez pas besoin d'activer l'encryption des mots de passe.Les versions de Samba antérieures à 2.0.0 utilisaient le mode de sécurité share par défaut. Depuis la première version 2.0.0, le mode par défaut est devenu user.
- security : il s'agit en fait du type d'autentification qui sera utilsée par le serveur lors de chaque connection. Des quatre valeurs possible, je vais d'abord utiliser le type share. Je décris les différents niveaux de sécurités dans ce document .
Pour compléter la similitude avec Windows, vous pouvez également contrôler le commentaire qui est affiché à côté du nom de votre machine dans la liste du Voisinage Réseau. Cela ce fait à l'aide du paramètre server string.
- guest account : on utilisera ce paramètre pour définir un compte unix devant être utilisé lors de connections anonymes. (Par exemple, si le partage le permet, lorsque le serveur n'a pas pu valider un nom d'utilisateur Windows et un mot de passe, il utilisera cet ID pour accéder aux fichiers et répertoires partagés.) Ce compte Unix est celui que l'on a définit après l'installation (dans le cas où vous avez suivi ma procédure). La valeur par défaut de ce paramètre est nobody. Faites attention qu'il n'y a pas toujours d'utilisateur Unix nobody prédéfini. S'il existe un utilisateur nobody prédéfini sur votre système, il y a de forte chance pour qu'il ne convienne pas pour différente raison (ID trop élevé, non autorisé à imprimer, ...).
Maintenant que nous connaissons ces paramètres, nous pouvons créer notre premier fichier smb.conf. Il ressemblera alors à celà :
[global]Après changement de paramètres dans la configuration d'un serveur fonctionnant, il n'est pas nécessaire de redémarrer le seveur. Les deux daemons Samba relise régulièrement la configuration.
workgroup = MON_GROUPE
netbios name = SAMBA
server string = Mon serveur Samba
guest account = smbguest
security = share
Si un partage est défini avec le paramètre guest ok = yes, alors Samba sait que l'accès à ce partage peut se faire de façon anonyme. Donc, si le nom d'utilisateur et le mot de passe qu'il a pu recevoir lui sont inconnus, il sait qu'il peut utiliser l'utilisateur définit par le paramètre guest account pour cette connection.Un partage avec un mot de passe uniqueLa section du fichier smb.conf qui définit un tel partage se présentera de la façon suivante :
[nom_de_share]La valeur entre crochets est le nom tel qu'il apparait dans la liste des partages d'un serveur. La valeur du paramètre comment est l'information qui peut également appraitre dans cette liste.
comment = Description pour Voisinage Réseau
path = /opt/samba/demo
guest ok = yes
guest only = yes
read only = yesSi quelqu'un ouvre ce partage sur son PC, on ne lui demandera pas de rentrer un mot de passe.
Au niveau Unix, toutes les opérations sur les fichiers et répertoires s'effectuera avec le compte Unix définit par le paramètre guest account de la section globale. Le paramètre guest only dit à Samba de seulement utiliser le compte invité pour ouvrir le partage.Notez que le paramètre guest account peut apparaître également dans la définition d'un partage, à ce moment il écrase la valeur fixée globalement. La conséquence de ceci est que l'on peut créer différents partages sans mot de passe qui utilisent tous un accès anonyme différent. Ce genre de configuration peut être intéressant pour des systèmes qui sont à la fois accédés via Samba et via d'autres mécanismes (FTP, NFS, ...)
En mettant le paramètre read only à no, nous laissons Samba passer n'importe quelle requête pour écrire ou effacer vers le sytème de fichier Unix. Mais pour réellement avoir un accès en écriture sur le contenu de /opt/samba/demo, vous devez permettre au compte Unix utilisé comme compte invité Samba d'avoir les droits en lecture, écriture et exécution sur ce répertoire. Ce qui donne en fait :
drwx------ 2 smbguest smbguest 1024 Feb 18 21:24 demo/D'après les permissions attribuées au répertoire demo, seul l'utilisateur Unix smbguest peut y lire et y écrire, et ce, au niveau Unix. Maintenant, suite à la présence du paramètre read only = yes, il sera impossible à tout utilisateur d'écrire dans ce répertoire via Samba, malgrès que ce soit permis au niveau Unix. Inversément, si les permissions Unix n'autorisaient pas l'écriture mais que le paramètre read only = no soit présent dans la configuration, il aurrait été impossible à tout utilisateur d'écrire dans ce répertoire via Samba.Pour finir avec le partage sans mot de passe, j'ajouterai qu'il existe deux paramètres permettant de fixer les permissions unix qui seront attribuées aux fichiers et réepertoires créés au travers de Samba. Ces deux paramètres, qui peuvent être globaux ou propore à chaque partage sont les suivant :
create mask = 0600Ils décrivent donc les permissions attibuées lors de la création de fichiers (create mask) et de répertoire (directory mask). Ces permissions sont exprimées à l'aide de leur représentation octale. Je vous renvois à la description de la commande Unix chmod (man chmod) pour plus de détails.
directory mask = 0700
[Share_2]Le paramètre username peut prendre plusieurs valeurs. Si le nom spécifié commence par un @, alors il s'agit d'un groupe unix. Dans ce dernier cas, cela permet d'utiliser tous les comptes membres de ce groupe pour essayer de valider le mot de passe.
comment = Un partage protégé
path = /opt/samba/share_2
username = shareuser1
guest ok = no
read only = no
create mask = 0640
directory mask = 0750
Si Samba tourne avec l'encryption des mots de passe activée, alors les noms d'utilisateurs qui se retrouvent dans ce paramètre sont pris hors de la liste des mots de passe encryptés (voir la page sur l'encryption des mots de passe).
Plus la liste d'utilisateur sera longue, plus le temps pris pour l'authentification sera long. Car Samba essaiera de valider le mot de passe en prenant tour à tour chaque nom d'utilisateur jusqu'à ce que la paire nom d'utilisateur / mot de passe soit acceptée par le système.
Peut-être maintenant souhaitez vous protéger l'accès à ce répertoire par deux mots de passes. L'un permettant une connection avec accès lecture et écriture et un autre ne permettant que l'accès en lecture. Pour cela, ajoutons un compte Unix au paramètre username, par exemple shareuser2. Mettons ces deux comptes Unix dans le même groupe Unix (appelé par exemple smbusers). Il a ensuite deux solutions :
drwxr-x--- 2 user1 share
1024 Feb 18 21:24 share-demo-2/
Vous pouvez aussi spécifier un groupe Unix en ajoutant un
plus (+) devant le nom.
Voici la liste des nouveaux paramètres apparaissant pour la première fois dans ce document. Lorsqu'un de ces paramètres se trouve à la fois dans la section globale et locales, dans ce cas la valeur dans une section locale (partage, ...) prend le pas sur la valeur dans la section globale. La valeur dans la section n'étant utilisée que pour donner une valeur défaut lorsque le paramètre n'est pas repris dans une section locale.
Paramètres Description Paramètres globaux : workgroup = <GROUPE> Groupe de travail où Samba est situé (maximum 15 caractères). netbios name = <NOM> Le nom du serveur (maximum 15 caractères). guest account = <UTILISATEUR> Compte unix à utiliser lors des connections anonymes (utilisateur "invité"). security = share | user | server | domain Le comportement de votre serveur en matière de protection des paratages. Voir les niveaux de sécurité. server string = texte libre Commentaire pour afficher dans les listes d'exploration. directory mask = <permissions> Permissions Unix par défaut misent sur un répertoire lors de sa création (valeur octale). create mask = <permissions> Permissions Unix par défaut misent sur un fichier lors de sa création (valeur octale). Paramètres locaux : comment = texte libre Un commentaire pour le partage. path = /répertoire/partagé Le répertoire qui sera partagé. guest ok = yes | no Permet une connection sans mot de passe Necessite un compte invité valide. guest only = yes | no Si la valeur est yes, le partage de pourra être accéder qu'en tant qu'invité. read only = yes | no Si la valeur est yes, Samba ne permettra pas d'écrire dans ce partage, même si les permissions unix le permettent. usernames=<liste d'utilisateurs>[,<liste de groupes>] Une liste d'utilisateur ou de groupes Unix, séparés par une virgule, utilisés par Samba pour vérifier le mot de passe reçu. guest account = <UTILISATEUR> Un utilisateur invité (anonyme) valide pour ce partage uniquement. create mask = <permissions> Permissions Unix par défaut misent sur un fichier lors de sa création (valeur octale). directory mask = <permissions> Permissions Unix par défaut misent sur un répertoire lors de sa création (valeur octale). read list = <liste d'utilisateurs>[,<liste de groupes>] La liste des utilisateurs à qui on autorise l'accès en lecture seule. Indépendemment de read only. write list = <liste d'utilisateurs>[,<liste de groupes>] La liste des utilisateurs à qui on autorise l'accès en lecture et écriture. Indépendemment de read only.
(c) Août 2000, par Benoit Gerrienne