Ajout d'un partage
Sommaire
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
- Option globale
- Pour les partages Samba qui doivent être accessibles avec un utilisateur et un mot de passe
- Option spécifique
valid users = <utilisateur>
- Option spécifique
- Les partages ne doivent pas être visibles depuis la racine du serveur
- Option spécifique
browseable = no
- Option spécifique
- 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
- Option globale
- Les partages ont une restriction d'accès sur IP (si besoin est)
- Option spécifique
hosts allow = 192.
- Option spécifique
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é :
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é:
Exemple de retour où le service est dans un état inconnu :
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 :
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é :
[root@myserver ~]# systemctl status smb ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: active (running) since mar. 2021-02-02 12:03:41 CET; 2h 50min ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 5676 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smb.service ├─5676 /usr/sbin/smbd --foreground --no-process-group ├─5678 /usr/sbin/smbd --foreground --no-process-group ├─5679 /usr/sbin/smbd --foreground --no-process-group ├─5680 /usr/sbin/smbd --foreground --no-process-group └─6016 /usr/sbin/smbd --foreground --no-process-group févr. 02 12:03:41 myserver.mydomain.local systemd[1]: Starting Samba SMB Daemon... févr. 02 12:03:41 myserver.mydomain.local smbd[5676]: [2021/02/02 12:03:41.401881, 0] ../../lib/util/become_daemon.c:136(daemon_ready) févr. 02 12:03:41 myserver.mydomain.local systemd[1]: Started Samba SMB Daemon. févr. 02 12:03:41 myserver.mydomain.local smbd[5676]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
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 :
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
[]
- Sera défini par les crochets
- Dossier local à partager
- Option spécifique
path
- Option spécifique
- Description du partage
- Option spécifique
comment
- Option spécifique
- Si lecture seule
- Option spécifique
read only = yes
- Option spécifique
- Si lecture et écriture
- Option spécifique
read only = no
- Option spécifique
create mask = 0660
- Option spécifique
directory mask = 0770
- Option spécifique
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
[]
- Sera défini par les crochets
- Dossier local à partager
- Option spécifique
path
- Option spécifique
- Description du partage
- Option spécifique
comment
- Option spécifique
- Utilisateur(s) de connexion
- Option spécifique
valid users
- Option spécifique
- Si lecture seule
- Option spécifique
read only = yes
- Option spécifique
- Si lecture et écriture
- Option spécifique
read only = no
- Option spécifique
create mask = 0660
- Option spécifique
directory mask = 0770
- Option spécifique
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
- ↑ Extrait de l'article "Samba (informatique)" sur le Wikipedia Français : https://fr.wikipedia.org/wiki/Samba_(informatique)