Configuration en mode partage (répertoires)

 
 


Paramètres globaux  -  Un partage publique (sans mot de passe)  - Une partage privé (avec mot de passe) - Nouveaux paramètres

 

Ce 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.

Les paramètres globaux
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 :
  • 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.
  • !!Nom de machine et de workgroup ne doivent ni avoir plus de 15 caractères, ni être identiques.
    !!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. 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.

    Maintenant que nous connaissons ces paramètres, nous pouvons créer notre premier fichier smb.conf. Il ressemblera alors à celà :

    [global]
    workgroup = MON_GROUPE
    netbios name = SAMBA
    server string = Mon serveur Samba
    guest account = smbguest
    security = share
    !!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.
    Un partage sans mot de passe
    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.

    La section du fichier smb.conf qui définit un tel partage se présentera de la façon suivante :

    [nom_de_share]
    comment = Description pour Voisinage Réseau
    path = /opt/samba/demo
    guest ok = yes
    guest only = yes
    read only = yes
    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.

    Si 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 = 0600
    directory mask = 0700
    Ils 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.
    Un partage avec un mot de passe unique Nouveaux paramètres
    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.

    Paramètres globaux  -  Un partage publique (sans mot de passe)  - Une partage privé (avec mot de passe) - Nouveaux paramètres

     
     
     
     
     
     

    (c) Août 2000, par Benoit Gerrienne