Linux & Open Source

Guide essentiel de l'administration Linux

L'administration Linux est une compétence critique pour tout développeur ou ingénieur DevOps. Maîtriser les composants de base du système d'exploitation vous permet de maintenir des environnements sécurisés, efficaces et stables. Ce guide couvre les piliers fondamentaux de la gestion des systèmes Linux : utilisateurs, fichiers, paquets, services et maintenance.

Gestion des utilisateurs et des groupes

Une gestion efficace des utilisateurs est la première ligne de défense. Vous devez comprendre comment créer, modifier et supprimer des utilisateurs et des groupes. Les fichiers /etc/passwd et /etc/shadow stockent les identifiants des utilisateurs et les politiques de mot de passe.

# Créer un nouvel utilisateur avec un répertoire personnel
sudo useradd -m -s /bin/bash jdoe

# Définir un mot de passe pour le nouvel utilisateur
sudo passwd jdoe

# Ajouter l'utilisateur au groupe sudo pour des privilèges élevés
sudo usermod -aG sudo jdoe

Vérifiez toujours l'appartenance au groupe à l'aide de la commande id pour vous assurer que les permissions sont appliquées correctement.

Systèmes de fichiers et permissions

Comprendre la hiérarchie du système de fichiers Linux et les modèles de permissions est vital. Linux utilise trois types de permissions : lecture (r), écriture (w) et exécution (x), appliquées à trois catégories : propriétaire, groupe et autres.

# Afficher les permissions détaillées
ls -l /var/www/html

# Changer la propriété de manière récursive
sudo chown -R www-data:www-data /var/www/html

# Définir des permissions restrictives (755 pour les répertoires, 644 pour les fichiers)
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

Utilisez fréquemment chmod et chown pour sécuriser les répertoires sensibles. N'exécutez jamais de services en tant qu'utilisateur root sauf si c'est absolument nécessaire ; utilisez plutôt des comptes de service dédiés.

Gestion des paquets

La plupart des distributions Linux utilisent des gestionnaires de paquets basés sur RPM (Red Hat/CentOS) ou DEB (Debian/Ubuntu). Garder les logiciels à jour est crucial pour la sécurité et la compatibilité.

# Debian/Ubuntu : Mettre à jour et améliorer
sudo apt update
sudo apt upgrade -y

# CentOS/RHEL : Mettre à jour tous les paquets
sudo yum update -y
# Ou sur les versions plus récentes en utilisant dnf :
sudo dnf upgrade -y

Toujours inspecter le journal des modifications ou les notes de version avant de mettre à jour les paquets système critiques pour éviter de casser les dépendances.

Gestion des services avec systemd

Les systèmes Linux modernes s'appuient sur systemd pour la gestion des services. Il fournit une méthode standardisée pour démarrer, arrêter et surveiller les services.

# Vérifier l'état d'un service
sudo systemctl status nginx

# Activer un service pour qu'il démarre au démarrage
sudo systemctl enable docker

# Redémarrer un service après des modifications de configuration
sudo systemctl restart apache2

Utilisez journctl -u service_name pour afficher les journaux des services spécifiques, ce qui aide au dépannage des échecs de démarrage ou des erreurs d'exécution.

Maintenance du système

Une maintenance régulière assure la santé à long terme du système. Les tâches clés incluent la surveillance de l'utilisation du disque, le nettoyage des anciens journaux et la gestion des ressources système.

# Vérifier l'utilisation du disque
df -h

# Trouver les gros fichiers à nettoyer
sudo find / -type f -size +100M

# Afficher les processus actifs triés par utilisation de la mémoire
ps aux --sort=-%mem | head

Mettez en œuvre des sauvegardes automatisées et envisagez d'utiliser des outils comme logrotate pour empêcher les fichiers journaux de consommer tout l'espace disque disponible. En adhérant à ces bonnes pratiques, vous pouvez maintenir une infrastructure Linux robuste et sécurisée.

Conclusion

L'administration Linux nécessite un mélange de connaissances théoriques et de maîtrise pratique de la ligne de commande. En maîtrisant la gestion des utilisateurs, les permissions, la gestion des paquets, le contrôle des services et la maintenance de routine, vous construisez une base solide pour gérer des systèmes complexes. L'apprentissage continu et la vérification des changements sont la clé du succès à long terme dans l'administration système.

Share: