SAMBA : Présentation,Fonctionnalités et Mise en place d'un serveur de partage de fichiers - Partie 4

2-2 Création des utilisateurs Samba
Nous avons mis le type de sécurité de notre serveur Samba à user (security = user). Cela implique donc que notre serveur Samba demande à tout utilisateur qui veut accéder au partage des identifiants de connexion (nom d’utilisateur et mot de passe). Il va donc falloir créer au préalable ces identifiants au niveau de notre serveur.
Avant toute chose, il faut savoir que les utilisateurs Samba fonctionnent en conjonction avec les comptes utilisateurs systèmes. En termes plus simples, les utilisateurs Samba que nous voulons ajouter doivent déjà exister sur notre serveur en tant qu’utilisateurs systèmes. Si par exemple, nous voulons créer l’utilisateur john dans Samba, il faut que l’on s’assure que l’utilisateur john est déjà présent sur le système. Si tel n’est pas le cas, nous devrons d’abord le créer.
Pour créer notre utilisateur système john, nous ferons :
adduser john
Il nous sera ensuite demandé les informations supplémentaires de notre utilisateur système à saisir tel que son mot de passe, etc.
Note importante : Il arrive parfois qu’en entrant en mode root vous n’arriviez pas à exécuter les commandes présentes nativement sous Linux et vous recevez un message tel que ‘commande introuvable’. Et bien, cela est probablement lié au chemin d’accès PATH de l’utilisateur root. Ce chemin d’accès spécifie l’endroit où le système doit chercher les commandes exécutables et donc si certains répertoires correspondant aux commandes exécutables ne sont pas incluses dans ce PATH, le système sera incapable de trouver les commandes même si elles sont installées.
Pour en avoir le cœur nette, faites dans le terminal
echo $PATH
Le résultat devrait inclure des chemins comme /usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin, /bin.
Si tel n’est pas le cas, nous sommes en présence du cas évoqué ci-dessus. Alors la solution est la suivante : il faut ajouter au fichier /root/.bashrc cette ligne
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
Ensuite vous enregistrez la modification effectuée et vous redémarrez la machine. Une fois en mode root, vous devriez être capable d’exécuter toutes les commandes.
Utilisation de smbpasswd
La commande smbpasswd est employée pour gérer les mots de passe des utilisateurs Samba sur un serveur Samba. Elle permet de définir, modifier et supprimer les mots de passe des utilisateurs Samba dans la base de données des mots de passe Samba.
Ajouter un utilisateur Samba
Pour ajouter un utilisateur système à Samba nous exécuterons la commande smbpasswd de la manière suivante :
smbpasswd -a nom_utilisateur
Il nous sera ensuite demandé de saisir un mot de passe pour l’utilisateur Samba. Ici, le mot de passe que l’on saisira n’a rien à voir avec le mot de passe de l’utilisateur système, il peut ( et est même conseillé) être différent.
Dans le cas de l’utilisateur john nous aurons donc :
smbpasswd -a john
New SMB password:
Retype new SMB password:
Added user john.
Modifier le mot de passe d’un utilisateur Samba
Si l’utilisateur Samba existe déjà et nous souhaitons modifier son mot de passe, nous pouvons exécuter selon la syntaxe suivante :
smbpasswd nom_utilisateur
Nous serons invités à saisir le nouveau mot de passe et à le confirmer.
Pour modifier le mot de passe de l’utilisateur john, nous ferons donc :
smbpasswd john
New SMB password:
Retype new SMB password:
Supprimer un utilisateur de la base Samba
Pour supprimer un utilisateur Samba (mais pas du système), on fera un
smbpasswd -x nom_utilisateur
Pour supprimer l’utilisateur john, nous ferons donc :
smbpasswd -x john
Désactiver un utilisateur Samba
Pour désactiver le compte d’un utilisateur Samba sans le supprimer, on fera un
smbpasswd -d nom_utilisateur
Pour désactiver l’utilisateur john, nous ferons donc :
smbpasswd -d john
Réactiver un utilisateur Samba
Pour réactiver un utilisateur Samba désactivé, on fera un
smbpasswd -e nom_utilisateur
Pour réactiver le compte désactivé de john, nous ferons donc :
smbpasswd -e john
Changer le mot de passe de l’utilisateur courant
Si vous êtes connecté en tant qu’utilisateur Samba et vous souhaitez changer votre propre mot de passe Samba, vous pouvez simplement employer la commande smbpasswd sans spécifier d’utilisateur
smbpasswd
Il vous sera demandé d’entrer votre ancien mot de passe puis le nouveau.
N.B :-Les fichiers ou les bases de données dans lesquelles Samba stocke les mots de passe sont généralement localisées dans le répertoire /var/lib/samba/private .
-La commande smbpasswd ne peut gérer que les mots de passe stockés dans des fichiers et dans des bases de données tdbsam
Utilisation de pdbedit
La commande pdbedit permet de gérer la base des utilisateurs Samba. Elle permet d’ajouter, modifier, supprimer et afficher les informations sur les utilisateurs et leurs détails dans la base de données. Contrairement à smbpasswd qui n’est limité qu’au format tdbsam, la commande pdbedit peut en plus prendre en charge le format ldapsam et dispose en général de fonctionnalités plus avancées.
Ajouter un utilisateur Samba
Pour ajouter un utilisateur Samba avec la commande pdbedit on utilise la commande selon la syntaxe suivante :
pdbedit -a -u nom_utilisateur
Ici,
-a : désigne l’ajout d’un nouvel utilisateur à la base de données Samba
-u : permet de spécifier le nom de l’utilisateur
Si nous voulions donc ajouter l’utilisateur john à Samba avec la commande pdbedit nous ferions donc
pdbedit -a -u john
Et ensuite on nous demandera de choisir un mot de passe pour john
Lister tous les utilisateurs Samba
Pour lister tous les utilisateurs qui sont enregistrés dans la base de données Samba on utilise la commande suivante :
pdbedit -L
Avec cette commande on obtient les UID et les groupes des utilisateurs Samba.
Pour avoir beaucoup plus de détails on fait :
pdbedit -Lv
Parmi ces détails nous avons : Unix username, NT username , Full name,etc… (des informations plus complètes sur notre utilisateur Samba et son fonctionnement)
Supprimer un utilisateur Samba
Pour supprimer un utilisateur Samba on utilise la commande selon la syntaxe suivante :
pdbedit -x -u nom_utilisateur
Pour supprimer l’utilisateur john, nous ferons donc :
pdbedit -x -u john
Définir la date d’expiration du mot de passe d’un utilisateur Samba
Nous pouvons définir une date à laquelle le mot de passe d’un utilisateur expirera à l’aide de la chaîne "password can change time" .
On l’utilise de la manière suivante :
pdbedit -u nom_utilisateur -P "password can change time" -t timestamp_correspondant
Ici, timestamp_correspondant désigne le timestamp Unix pour une date donnée (cela veut dire le nombre de secondes écoulées depuis le 1er Janvier 1970 à minuit UTC jusqu’à notre date spécifique). Cela fait beaucoup me direz-vous ! Eh bien, on ne nous demande pas de calculer ce timestamp, on peut tout simplement l’obtenir avec une autre commande
date --date="YYYY-MM-DD HH:MM:SS" +%s
YYYY-MM-DD : représente la date (année-mois-jour).
HH:MM:SS : représente l'heure (heure-minute-seconde), optionnel si vous souhaitez définir une heure spécifique. .
+%s : indique à la commande de retourner le timestamp Unix.
Par exemple, si nous voulons obtenir le timestamp Unix pour le 31 décembre 2025 , nous ferons :
date --date="2025-12-31" +%s
1767142800
Cela nous donne donc comme cela nous le montre au dessus un grand nombre qui correspond à ce timestamp.
En fonction de cela, si nous voulions configurer le 31 décembre 2025 comme date d’expiration pour le mot de passe de l’utilisateur john, nous ferions donc :
pdbedit -u john -P "password can change time" -t 1767142800
Définir la date d’expiration du compte utilisateur Samba lui-même
Pour définir la date d’expiration pour le compte utilisateur Samba lui-même (date après laquelle l’utilisateur ne pourra plus se connecter), on utilise la chaîne "account expire time"
On l’utilise de la manière suivante :
pdbedit -u nom_utilisateur -P "account expire time" -t timestamp_correspondant
Si nous voulions configurer le 31 décembre 2025 comme date d’expiration pour le compte de l’utilisateur john, nous ferions donc :
pdbedit -u john -P "account expire time" -t 1767142800
Forcer l’utilisateur à changer son mot de passe à la prochaine connexion
Pour faire changer à un utilisateur son mot de passe à sa prochaine connexion, on exécute la commande selon la syntaxe suivante :
pdbedit -u nom_utilisateur -c "[U]"
"[U]" : signifie que l’utilisateur doit changer son mot de passe à la prochaine connexion
Pour forcer l’utilisateur john à changer son mot de passe à la prochaine connexion nous ferons donc :
pdbedit -u john -c "[U]"
Verrouiller un compte utilisateur
Pour verrouiller un compte utilisateur pour empêcher tout accès, on exécute la commande selon la syntaxe suivante :
pdbedit -u nom_utilisateur -c "[X]"
"[X]" : signifie que le compte est verrouillé
Pour verrouiller le compte de l’utilisateur john nous ferons donc :
pdbedit -u john -c "[X]"
Pour déverrouiller le compte lorsqu’il est verrouillé, on exécute la commande selon la syntaxe suivante :
pdbedit -u nom_utilisateur -c "" (on ne met rien entre les griffes)
Dans le cas de l’utilisateur john dont le compte est verrouillé, nous ferons donc pour le déverrouiller :
pdbedit -u john -c ""
Désactiver un compte utilisateur
Pour désactiver un compte utilisateur pour empêcher tout accès, on exécute la commande selon la syntaxe suivante :
pdbedit -u nom_utilisateur -c "[D]"
"[D]" : signifie que le compte est désactivé
Pour désactiver le compte de l’utilisateur john nous ferons donc :
pdbedit -u john -c "[D]"
Pour réactiver le compte désactivé, la méthode est la même que pour le déverrouillage du compte verrouillé.
N.B :Bien que verrouiller et désactiver un compte Samba semblent dans ce cas être des actions similaires, il existe tout de même une nuance entre les états verrouillé et désactivé d’un compte :
Un compte verrouillé : Cela veut dire qu’un utilisateur ne peut pas se connecter temporairement suite à un évènement ou à une politique de sécurité. Ici le compte reste actif mais l’utilisateur est empêché de se connecter jusqu’à ce que certaines conditions soient remplies. L’état verrouillé est un état temporaire
Un compte désactivé : Cela signifie que l’utilisateur ne peut plus se connecter du tout car son compte est explicitement marqué comme désactivé. L’état désactivé est un état permanent à moins que l’administrateur ne réactive le compte.