<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ismael GALEKWA</title>
    <description>The latest articles on DEV Community by Ismael GALEKWA (@ismael_galekwa_67833ec813).</description>
    <link>https://dev.to/ismael_galekwa_67833ec813</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3163269%2F9523e455-a9b2-4c43-b69b-33e36c947c94.jpg</url>
      <title>DEV Community: Ismael GALEKWA</title>
      <link>https://dev.to/ismael_galekwa_67833ec813</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ismael_galekwa_67833ec813"/>
    <language>en</language>
    <item>
      <title>Gérer les utilisateurs avec les droits sudo en SSH via MobaXterm</title>
      <dc:creator>Ismael GALEKWA</dc:creator>
      <pubDate>Sun, 18 May 2025 21:26:41 +0000</pubDate>
      <link>https://dev.to/ismael_galekwa_67833ec813/gerer-les-utilisateurs-avec-les-droits-sudo-en-ssh-via-mobaxterm-5ag5</link>
      <guid>https://dev.to/ismael_galekwa_67833ec813/gerer-les-utilisateurs-avec-les-droits-sudo-en-ssh-via-mobaxterm-5ag5</guid>
      <description>&lt;p&gt;Lorsque vous administrez un serveur Linux à distance depuis un PC Windows, MobaXterm est un outil très pratique qui combine terminal, client SSH, SFTP et bien plus encore. Dans cet article, je vous montre comment gérer les utilisateurs avec droits sudo sur un serveur distant en utilisant une connexion SSH via MobaXterm.&lt;/p&gt;

&lt;p&gt;Prérequis&lt;br&gt;
Avant de commencer, assurez-vous d’avoir :&lt;/p&gt;

&lt;p&gt;Un PC sous Windows avec MobaXterm installé (lien officiel)&lt;/p&gt;

&lt;p&gt;L’accès à un serveur Linux via SSH (Ubuntu, Debian, CentOS, etc.)&lt;/p&gt;

&lt;p&gt;Les identifiants d’un utilisateur ayant les droits sudo (ou root)&lt;/p&gt;

&lt;p&gt;Étape 1 : Connexion SSH via MobaXterm&lt;br&gt;
Lancez MobaXterm.&lt;/p&gt;

&lt;p&gt;Cliquez sur Session &amp;gt; SSH.&lt;/p&gt;

&lt;p&gt;Renseignez l’adresse IP ou le nom de domaine du serveur distant.&lt;/p&gt;

&lt;p&gt;Saisissez le nom d’utilisateur (ex. root ou un utilisateur sudo).&lt;/p&gt;

&lt;p&gt;Cliquez sur OK pour ouvrir une session SSH.&lt;/p&gt;

&lt;p&gt;Une fois connecté, vous avez un accès en ligne de commande à votre serveur distant.&lt;/p&gt;

&lt;p&gt;Étape 2 : Lister les utilisateurs avec droits sudo&lt;br&gt;
Selon la distribution de votre serveur :&lt;/p&gt;

&lt;p&gt;Sur Ubuntu/Debian :&lt;/p&gt;

&lt;p&gt;getent group sudo&lt;br&gt;
Sur CentOS/RHEL :&lt;/p&gt;

&lt;p&gt;getent group wheel&lt;br&gt;
Cette commande affiche tous les utilisateurs membres du groupe sudo (ou wheel).&lt;/p&gt;

&lt;p&gt;Étape 3 : Ajouter un utilisateur au groupe sudo&lt;br&gt;
Si vous souhaitez accorder les droits sudo à un utilisateur existant, utilisez la commande suivante :&lt;/p&gt;

&lt;p&gt;sudo usermod -aG sudo nom_utilisateur&lt;br&gt;
Remplacez nom_utilisateur par le nom réel de l’utilisateur concerné.&lt;/p&gt;

&lt;p&gt;Pour CentOS/RHEL :&lt;br&gt;
sudo usermod -aG wheel nom_utilisateur&lt;br&gt;
Étape 4 : Créer un nouvel utilisateur avec droits sudo&lt;br&gt;
Si vous voulez créer un utilisateur directement avec des droits sudo :&lt;/p&gt;

&lt;p&gt;sudo adduser nouvel_utilisateur&lt;br&gt;
sudo passwd nouvel_utilisateur&lt;br&gt;
sudo usermod -aG sudo nouvel_utilisateur&lt;br&gt;
Pour CentOS/RHEL :&lt;br&gt;
sudo usermod -aG wheel nouvel_utilisateur&lt;br&gt;
Étape 5 : Modifier les privilèges sudo via visudo (avancé)&lt;br&gt;
Pour accorder des droits sudo personnalisés à un utilisateur, utilisez la commande :&lt;/p&gt;

&lt;p&gt;sudo visudo&lt;br&gt;
Ajoutez une ligne comme celle-ci à la fin du fichier :&lt;/p&gt;

&lt;p&gt;nom_utilisateur ALL=(ALL:ALL) ALL&lt;br&gt;
Utilisez toujours visudo pour éviter de casser la configuration du système en cas d’erreur de syntaxe.&lt;/p&gt;

&lt;p&gt;Étape 6 : Vérifier que l’utilisateur a bien les droits sudo&lt;br&gt;
Reconnectez-vous avec le nouvel utilisateur (ou ouvrez un nouveau terminal dans MobaXterm), puis tapez :&lt;/p&gt;

&lt;p&gt;sudo whoami&lt;br&gt;
Si la commande retourne root, tout fonctionne correctement. &lt;/p&gt;

&lt;p&gt;Avec MobaXterm, gérer les utilisateurs sudo sur un serveur Linux à distance devient simple et rapide. En suivant les étapes ci-dessus, vous pouvez créer des utilisateurs, leur accorder ou révoquer les droits sudo, et sécuriser l’accès à vos serveurs. Que vous soyez un développeur, un sysadmin ou un passionné de Linux, maîtriser cette compétence est essentiel.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Automatiser l’envoi d’un message WhatsApp quotidien avec Python et Cron</title>
      <dc:creator>Ismael GALEKWA</dc:creator>
      <pubDate>Thu, 15 May 2025 08:13:28 +0000</pubDate>
      <link>https://dev.to/ismael_galekwa_67833ec813/automatiser-lenvoi-dun-message-whatsapp-quotidien-avec-python-et-cron-2dnc</link>
      <guid>https://dev.to/ismael_galekwa_67833ec813/automatiser-lenvoi-dun-message-whatsapp-quotidien-avec-python-et-cron-2dnc</guid>
      <description>&lt;p&gt;Objectif&lt;br&gt;
Dans cet article, nous allons créer un petit script Python qui s’exécute automatiquement chaque jour à 6h00 du matin pour envoyer un message WhatsApp automatique à un coach. Le message est simple :&lt;/p&gt;

&lt;p&gt;"Bonjour Coach "&lt;/p&gt;

&lt;p&gt;Ce projet allie automatisation système (cron) et API de messagerie (WhatsApp via Twilio). Parfait pour un usage personnel, professionnel ou pédagogique.&lt;/p&gt;

&lt;p&gt;Prérequis&lt;br&gt;
Avant de commencer, voici ce dont vous avez besoin :&lt;/p&gt;

&lt;p&gt;Un compte gratuit Twilio&lt;/p&gt;

&lt;p&gt;Python 3 installé sur votre machine&lt;/p&gt;

&lt;p&gt;pip pour installer les bibliothèques&lt;/p&gt;

&lt;p&gt;Accès au crontab sur un système Linux/macOS&lt;/p&gt;

&lt;p&gt;🛠️ Étape 1 : Créer un compte Twilio et activer WhatsApp&lt;br&gt;
Allez sur &lt;a href="https://www.twilio.com/" rel="noopener noreferrer"&gt;https://www.twilio.com/&lt;/a&gt; et créez un compte.&lt;/p&gt;

&lt;p&gt;Accédez à la console WhatsApp Sandbox ici :&lt;br&gt;
&lt;a href="https://www.twilio.com/console/sms/whatsapp/learn" rel="noopener noreferrer"&gt;https://www.twilio.com/console/sms/whatsapp/learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Envoyez le code de vérification (join xxxx) au numéro WhatsApp fourni par Twilio pour activer votre numéro personnel.&lt;/p&gt;

&lt;p&gt;Copiez votre Account SID et Auth Token depuis la console.&lt;/p&gt;

&lt;p&gt;Étape 2 : Installer les dépendances Python&lt;br&gt;
Dans un terminal, exécutez :&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
pip install twilio&lt;br&gt;
Étape 3 : Écrire le script Python&lt;br&gt;
Créez un fichier whatsapp_message.py :&lt;/p&gt;

&lt;p&gt;python&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
from twilio.rest import Client&lt;/p&gt;

&lt;h1&gt;
  
  
  --- Vos identifiants Twilio ---
&lt;/h1&gt;

&lt;p&gt;account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'&lt;br&gt;
auth_token = 'your_auth_token'&lt;br&gt;
from_whatsapp_number = 'whatsapp:+14155238886'  # Numéro sandbox Twilio&lt;br&gt;
to_whatsapp_number = 'whatsapp:+243xxxxxxxxx'   # Numéro WhatsApp du Coach&lt;/p&gt;

&lt;h1&gt;
  
  
  ---------------------------------
&lt;/h1&gt;

&lt;p&gt;client = Client(account_sid, auth_token)&lt;/p&gt;

&lt;p&gt;message = client.messages.create(&lt;br&gt;
    body='Bonjour Coach ',&lt;br&gt;
    from_=from_whatsapp_number,&lt;br&gt;
    to=to_whatsapp_number&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;print(f" Message envoyé ! SID : {message.sid}")&lt;br&gt;
Remplace les valeurs account_sid, auth_token et to_whatsapp_number par les tiennes.&lt;/p&gt;

&lt;p&gt;Étape 4 : Automatiser avec Cron (Linux/macOS)&lt;br&gt;
Ouvrir l’éditeur crontab&lt;br&gt;
bash&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
crontab -e&lt;br&gt;
Ajouter cette ligne pour exécuter le script chaque jour à 6h00 :&lt;br&gt;
bash&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
0 6 * * * /usr/bin/python3 /chemin/vers/whatsapp_message.py &amp;gt;&amp;gt; /home/ismael/logs/whatsapp.log 2&amp;gt;&amp;amp;1&lt;br&gt;
0 6 * * * = tous les jours à 6h00 du matin&lt;/p&gt;

&lt;p&gt;Remplace /usr/bin/python3 par le chemin de ton interpréteur (which python3)&lt;/p&gt;

&lt;p&gt;Crée le dossier /home/ismael/logs s’il n’existe pas&lt;/p&gt;

&lt;p&gt;Étape 5 : Test manuel du script&lt;br&gt;
Avant de dépendre du cron, teste ton script manuellement :&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
python3 whatsapp_message.py&lt;br&gt;
Tu devrais recevoir le message "Bonjour Coach " sur ton WhatsApp personnel via la sandbox Twilio.&lt;/p&gt;

&lt;p&gt;(Optionnel) Sécuriser les identifiants avec .env&lt;br&gt;
Pour éviter de stocker tes identifiants en clair :&lt;/p&gt;

&lt;p&gt;Installe python-dotenv :&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
pip install python-dotenv&lt;br&gt;
Crée un fichier .env :&lt;/p&gt;

&lt;p&gt;ini&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
TWILIO_SID=ACxxxxxxxxxxxxxxxxxxxxxx&lt;br&gt;
TWILIO_TOKEN=your_auth_token&lt;br&gt;
TO_NUMBER=whatsapp:+243xxxxxxxxx&lt;br&gt;
Modifie ton script Python :&lt;/p&gt;

&lt;p&gt;python&lt;br&gt;
Copier&lt;br&gt;
Modifier&lt;br&gt;
from twilio.rest import Client&lt;br&gt;
from dotenv import load_dotenv&lt;br&gt;
import os&lt;/p&gt;

&lt;p&gt;load_dotenv()&lt;/p&gt;

&lt;p&gt;account_sid = os.getenv("TWILIO_SID")&lt;br&gt;
auth_token = os.getenv("TWILIO_TOKEN")&lt;br&gt;
from_whatsapp_number = 'whatsapp:+14155238886'&lt;br&gt;
to_whatsapp_number = os.getenv("TO_NUMBER")&lt;/p&gt;

&lt;p&gt;client = Client(account_sid, auth_token)&lt;/p&gt;

&lt;p&gt;message = client.messages.create(&lt;br&gt;
    body='Bonjour Coach ',&lt;br&gt;
    from_=from_whatsapp_number,&lt;br&gt;
    to=to_whatsapp_number&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;print(f" Message envoyé ! SID : {message.sid}")&lt;br&gt;
Résultat final&lt;br&gt;
Grâce à cette solution, votre coach (ou n’importe quel contact autorisé via Twilio) recevra un message WhatsApp personnalisé tous les jours à 6h00. &lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Ce projet est une belle démonstration de ce qu’on peut faire avec un peu de Python, des APIs simples et une tâche planifiée. Vous pouvez aller encore plus loin en :&lt;/p&gt;

&lt;p&gt;Envoyant des alertes système ou météo&lt;/p&gt;

&lt;p&gt;Intégrant des rappels personnalisés&lt;/p&gt;

&lt;p&gt;Utilisant un vrai numéro WhatsApp Twilio (payant)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Automatiser l'Envoi de Rapports Système au SysAdmin Chaque Minute avec Python &amp; Cron</title>
      <dc:creator>Ismael GALEKWA</dc:creator>
      <pubDate>Thu, 15 May 2025 07:57:34 +0000</pubDate>
      <link>https://dev.to/ismael_galekwa_67833ec813/automatiser-lenvoi-de-rapports-systeme-au-sysadmin-chaque-minute-avec-python-cron-2kc8</link>
      <guid>https://dev.to/ismael_galekwa_67833ec813/automatiser-lenvoi-de-rapports-systeme-au-sysadmin-chaque-minute-avec-python-cron-2kc8</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Dans cet article, nous allons apprendre à automatiser un script Python qui surveille les performances d'un serveur et envoie un rapport par email toutes les minutes. Ce rapport comprend&amp;nbsp;:&lt;br&gt;
L'utilisation du processeur (CPU)&lt;br&gt;
La consommation de mémoire (RAM)&lt;br&gt;
L'espace disque disponible&lt;br&gt;
Et même l'adresse IP publique du serveur&lt;/p&gt;

&lt;p&gt;C'est un excellent exercice de sysadmin et un outil utile en production.&lt;br&gt;
Prérequis&lt;br&gt;
Avant de commencer, assure-toi d'avoir&amp;nbsp;:&lt;br&gt;
Un serveur Linux ou une machine virtuelle&lt;br&gt;
Python 3 installé (python3 --version)&lt;br&gt;
Un accès à crontab&lt;br&gt;
Un compte email pour l'envoi (ex.&amp;nbsp;: Gmail)&lt;/p&gt;

&lt;p&gt;Étape 1&amp;nbsp;: Installer les dépendances&lt;/p&gt;

&lt;p&gt;Ouvre ton terminal et exécute&amp;nbsp;:&lt;br&gt;
pip3 install psutil requests&lt;br&gt;
Ces bibliothèques permettent de récupérer les stats système (psutil) et de connaître l'IP publique (requests).&lt;/p&gt;

&lt;p&gt;Étape 2&amp;nbsp;: Le Script&amp;nbsp;Python&lt;br&gt;
Crée un fichier server_report.py&amp;nbsp;:&lt;br&gt;
import psutil&lt;br&gt;
import smtplib&lt;br&gt;
import socket&lt;br&gt;
import requests&lt;br&gt;
from email.mime.text import MIMEText&lt;br&gt;
from datetime import datetime&lt;/p&gt;

&lt;h1&gt;
  
  
  Configuration
&lt;/h1&gt;

&lt;p&gt;TO_EMAIL = "&lt;a href="mailto:sysadmin_aws_cdkin4@mtech-rdc.org"&gt;sysadmin_aws_cdkin4@mtech-rdc.org&lt;/a&gt;"&lt;br&gt;
FROM_EMAIL = "&lt;a href="mailto:your_email@example.com"&gt;your_email@example.com&lt;/a&gt;"  # Remplace avec ton email&lt;br&gt;
EMAIL_PASSWORD = "your_password"       # Mot de passe d'application si Gmail&lt;br&gt;
SMTP_SERVER = "smtp.gmail.com"&lt;br&gt;
SMTP_PORT = 587&lt;br&gt;
def get_server_stats():&lt;br&gt;
    mem = psutil.virtual_memory()&lt;br&gt;
    disk = psutil.disk_usage('/')&lt;br&gt;
    cpu = psutil.cpu_percent(interval=1)&lt;br&gt;
    hostname = socket.gethostname()&lt;br&gt;
    local_ip = socket.gethostbyname(hostname)&lt;br&gt;
    public_ip = requests.get("&lt;a href="https://ifconfig.me%22).text.strip(" rel="noopener noreferrer"&gt;https://ifconfig.me").text.strip(&lt;/a&gt;)&lt;br&gt;
    return f"""&lt;br&gt;
RAPPORT DU SERVEUR - {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}&lt;br&gt;
IP publique : {public_ip}&lt;br&gt;
IP locale : {local_ip}&lt;br&gt;
Hostname : {hostname}&lt;br&gt;
CPU utilisé : {cpu} %&lt;br&gt;
RAM utilisée : {mem.percent} %&lt;br&gt;
Disque utilisé : {disk.percent} %&lt;br&gt;
Espace libre : {round(disk.free / (1024**3), 2)} Go&lt;br&gt;
-- Fin du rapport --&lt;br&gt;
"""&lt;br&gt;
def send_email(subject, body):&lt;br&gt;
    msg = MIMEText(body)&lt;br&gt;
    msg['Subject'] = subject&lt;br&gt;
    msg['From'] = FROM_EMAIL&lt;br&gt;
    msg['To'] = TO_EMAIL&lt;br&gt;
    try:&lt;br&gt;
        server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)&lt;br&gt;
        server.starttls()&lt;br&gt;
        server.login(FROM_EMAIL, EMAIL_PASSWORD)&lt;br&gt;
        server.send_message(msg)&lt;br&gt;
        server.quit()&lt;br&gt;
        print(" Rapport envoyé.")&lt;br&gt;
    except Exception as e:&lt;br&gt;
        print(f" Erreur : {e}")&lt;br&gt;
if &lt;strong&gt;name&lt;/strong&gt; == "&lt;strong&gt;main&lt;/strong&gt;":&lt;br&gt;
    stats = get_server_stats()&lt;br&gt;
    send_email(" Rapport Automatique du Serveur", stats)&lt;br&gt;
Astuce sécurité&amp;nbsp;: utiliser un mot de passe d'application&lt;br&gt;
Si tu utilises Gmail, crée un mot de passe d'application (dans tes paramètres de sécurité) pour ne pas exposer ton mot de passe principal.&lt;br&gt;
Étape 3&amp;nbsp;: Tester le&amp;nbsp;script&lt;br&gt;
python3 server_report.py&lt;br&gt;
Tu devrais recevoir un email avec les stats du serveur dans ta boîte de réception.&lt;br&gt;
Étape 4&amp;nbsp;: Automatiser avec&amp;nbsp;cron&lt;br&gt;
Ouvre l'éditeur de tâches planifiées&amp;nbsp;:&lt;br&gt;
crontab -e&lt;br&gt;
Ajoute cette ligne pour exécuter le script chaque minute&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;* * * * /usr/bin/python3 /chemin/vers/server_report.py&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Vérifie le chemin exact de Python avec which python3&lt;br&gt;
&amp;nbsp;⚠️ Mets le chemin complet de ton script&lt;/p&gt;

&lt;p&gt;Étape 5&amp;nbsp;: Visualiser les logs en temps&amp;nbsp;réel&lt;br&gt;
Si tu veux voir les sorties du script (comme les erreurs ou confirmations)&amp;nbsp;:&lt;br&gt;
tail -f /var/log/syslog  # ou /var/log/cron.log selon ta distro&lt;br&gt;
Tu peux aussi rediriger la sortie du script vers un fichier de log&amp;nbsp;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;* * * * /usr/bin/python3 /chemin/vers/server_report.py &amp;gt;&amp;gt; /home/ismael/logs/server.log 2&amp;gt;&amp;amp;1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion&lt;br&gt;
En combinant Python et Cron, tu peux créer un outil de monitoring système minimaliste, mais puissant. Tu es maintenant capable de surveiller l'état de n'importe quel serveur et d'envoyer des alertes automatiquement à ton SysAdmin.&lt;br&gt;
Cette solution est idéale pour&amp;nbsp;&lt;br&gt;
Les petits projets auto-hébergés&lt;br&gt;
Le monitoring d'urgence&lt;br&gt;
L'apprentissage de l'administration système&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
