Ajout d'un partage

De Wiki de Jordan LE NUFF
< Technique‎ | Linux‎ | Samba
Sauter à la navigation Sauter à la recherche

Présentation

Cette page a pour objet de décrire comment ajouter un partage Samba sur un serveur Linux.

Définition

Samba est un logiciel d'interopérabilité qui implémente le protocole propriétaire SMB/CIFS de Microsoft Windows dans les ordinateurs tournant sous le système d'exploitation Unix et ses dérivés de manière à partager des imprimantes et des fichiers dans un réseau informatique. Samba facilite l'interopérabilité entre systèmes hétérogènes Windows-Unix. Il offre la possibilité aux ordinateurs d'un réseau d'accéder aux imprimantes et aux fichiers des ordinateurs sous Unix et permettent aux serveurs Unix de se substituer à des serveurs Windows.[1]

Description

La configuration principale de Samba a été préalablement réalisée de cette façon :

cp /etc/samba/smb.conf /etc/samba/smb.conf.default
sed -i -e 's/^\([^#].*\)/#\1/g' /etc/samba/smb.conf
sed -i -e 's/^#\[global\]/[global]\n\tguest account = www\n\tmap to guest = Bad User/' /etc/samba/smb.conf

Le fichier de configuration de Samba est /etc/samba/smb.conf.

Le fonctionnement prévu est le suivant :

  • Pour les partages Samba qui doivent être accessibles sans devoir rentrer un utilisateur ou un mot de passe
    Option globale map to guest = Bad User
    Option spécifique guest ok = yes
    Option spécifique guest only = yes
  • Pour les partages Samba qui doivent être accessibles avec un utilisateur et un mot de passe
    Option spécifique valid users = <utilisateur>
  • Les partages ne doivent pas être visibles depuis la racine du serveur
    Option spécifique browseable = no
  • Les fichiers et dossiers partagés du serveur appartenant, par exemple, au groupe mygroup, Samba doit donc faire accéder les utilisateurs aux fichiers et dossiers avec un utilisateur appartenant au groupe mygroup (en l’occurrence, l'utilisateur myuser par exemple)
    Option globale guest account = myuser
  • Les partages ont une restriction d'accès sur IP (si besoin est)
    Option spécifique hosts allow = 192.

Mise en œuvre

Premier ajout

Vérifications

Lors de l'ajout du premier partage Samba, le service n'est ni démarré, ni activé au démarrage du serveur et le pare-feu n'est pas ouvert pour ce dernier.

Pour vérifier l'activation du service au démarrage du serveur, lancer la commande suivante :

systemctl is-enabled smb

Exemple de retour où le service n'est pas activé :

Putty icon.png Console SSH

Pour vérifier l'état actuel du service, lancer la commande suivante :

systemctl is-active smb

Exemple de retour où le service n'est pas démarré:

Putty icon.png Console SSH

Exemple de retour où le service est dans un état inconnu :

Putty icon.png Console SSH

Pour vérifier l'état du pare-feu pour Samba :

firewall-cmd --query-service=samba

Exemple de retour où le pare-feu n'est pas ouvert pour Samba :

Putty icon.png Console SSH

Activation

Ainsi, pour activer le service au démarrage et le démarrer, lancer les commandes suivantes :

systemctl enable smb
systemctl start smb

Pour ouvrir le pare-feu pour Samba et de façon permanente, lancer les commandes suivantes :

firewall-cmd --add-service=samba
firewall-cmd --add-service=samba --permanent

Une fois ces étapes réalisée, passer à l'étape "d'ajout d'un partage".

Partage supplémentaire

Vérifications

Pour ajouter un partage, s'assurer, au préalable, que le service est activé et que le pare-feu est ouvert pour Samba.

Pour vérifier l'état du service, lancer la commande suivante :

systemctl status smb

Exemple de retour où le service est activé :

Putty icon.png Console SSH

Pour vérifier l'état du pare-feu pour Samba :

firewall-cmd --query-service=samba

Exemple de retour où le pare-feu est ouvert pour Samba :

Putty icon.png Console SSH

Dans le cas ou l'une de ces vérifications ne serait pas correcte, se référer à l'étape "du premier ajout"

Ajout d'un partage sans authentification

Pour ajouter un partage, il faut définir les éléments suivants :

  • Nom du partage
    Sera défini par les crochets []
  • Dossier local à partager
    Option spécifique path
  • Description du partage
    Option spécifique comment
  • Si lecture seule
    Option spécifique read only = yes
  • Si lecture et écriture
    Option spécifique read only = no
    Option spécifique create mask = 0660
    Option spécifique directory mask = 0770

Ainsi, un partage en lecture seule aura la section de configuration suivante :

[MYAPP_LOG]
        comment = Logs applicatifs MyApp
        path = /opt/httpd/MyApp/LOG
        read only = yes
        browseable = no
        guest ok = yes
        guest only = yes
        hosts allow = 192.

Alors qu'un partage en lecture/écriture aura la section de configuration suivante :

[MYAPP_LOG]
        comment = Logs applicatifs MyApp
        path = /opt/httpd/MyApp/LOG
        read only = no
        create mask = 0660
        directory mask = 0770
        browseable = no
        guest ok = yes
        guest only = yes
        hosts allow = 192.

Il est possible d'éditer le fichier /etc/samba/smb.conf pour y ajouter la section de configuration désirée.

Pour éditer le fichier de configuration au travers d'un script, il est également possible de le faire avec ces lignes :

sed 's/\\t/\t/g' <<EOF >> /etc/samba/smb.conf

[MYAPP_LOG]
\tcomment = Logs applicatifs MyApp
\tpath = /opt/httpd/MyApp/LOG
\tread only = no
\tcreate mask = 0660
\tdirectory mask = 0770
\tbrowseable = no
\tguest ok = yes
\tguest only = yes
\thosts allow = 192.
EOF

Une fois la modification apportée dans le fichier /etc/samba/smb.conf, recharger la configuration Samba avec la commande suivante :

smbcontrol all reload-config

Ajout d'un partage avec authentification

Pour ajouter un partage, il faut définir les éléments suivants :

  • Nom du partage
    Sera défini par les crochets []
  • Dossier local à partager
    Option spécifique path
  • Description du partage
    Option spécifique comment
  • Utilisateur(s) de connexion
    Option spécifique valid users
  • Si lecture seule
    Option spécifique read only = yes
  • Si lecture et écriture
    Option spécifique read only = no
    Option spécifique create mask = 0660
    Option spécifique directory mask = 0770

Dans un premier temps, créer chaque utilisateur côté UNIX et lui donner les droits d'accès nécessaires au partage :

useradd -g mygroup -M myuser

Définir le mot de passe de connexion à utiliser :

passwd myuser

Créer l'utilisateur côté Samba avec le même identifiant et le même mot de passe :

smbpasswd -a myuser

Ainsi, un partage en lecture seule aura la section de configuration suivante :

[MYAPP_LOG]
        comment = Logs applicatifs MyApp
        path = /opt/httpd/MyApp/LOG
        read only = yes
        browseable = no
        valid users = myuser, myseconduser, @mygroup
        hosts allow = 192.

Alors qu'un partage en lecture/écriture aura la section de configuration suivante :

[MYAPP_LOG]
        comment = Logs applicatifs MyApp
        path = /opt/httpd/MyApp/LOG
        read only = no
        create mask = 0660
        directory mask = 0770
        browseable = no
        valid users = myuser, myseconduser, @mygroup
        hosts allow = 192.

Il est possible d'éditer le fichier /etc/samba/smb.conf pour y ajouter la section de configuration désirée.

Pour éditer le fichier de configuration au travers d'un script, il est également possible de le faire avec ces lignes :

sed 's/\\t/\t/g' <<EOF >> /etc/samba/smb.conf

[MYAPP_LOG]
\tcomment = Logs applicatifs MyApp
\tpath = /opt/httpd/MyApp/LOG
\tread only = no
\tcreate mask = 0660
\tdirectory mask = 0770
\tbrowseable = no
\tvalid users = myuser, myseconduser, @mygroup
\thosts allow = 192.
EOF

Une fois la modification apportée dans le fichier /etc/samba/smb.conf, recharger la configuration Samba avec la commande suivante :

smbcontrol all reload-config

Références

  1. Extrait de l'article "Samba (informatique)" sur le Wikipedia Français : https://fr.wikipedia.org/wiki/Samba_(informatique)