Maîtriser Linux : permissions, processus et paquets
🎯 Objectifs
- ✅ Comprendre et modifier les permissions de fichiers
- ✅ Gérer les processus système
- ✅ Maîtriser les redirections et les pipes
- ✅ Configurer les variables d'environnement
- ✅ Installer et gérer des paquets avec APT
- ✅ Utiliser les commandes réseau essentielles
📌 Prérequis
Ce module suppose que vous maîtrisez le contenu du module Linux Débutant : navigation, gestion des fichiers, lecture et recherche.
🔐 Permissions
Chaque fichier possède 3 niveaux de permission pour 3 catégories :
| Symbole | Permission | Valeur |
|---|---|---|
r | Lecture | 4 |
w | Écriture | 2 |
x | Exécution | 1 |
Les 3 catégories : propriétaire (u), groupe (g), autres (o).
Permissions courantes
| Valeur | Signification | Usage typique |
|---|---|---|
755 | rwxr-xr-x | Scripts, dossiers |
644 | rw-r--r-- | Fichiers de config |
600 | rw------- | Clés SSH, secrets |
700 | rwx------ | Dossier .ssh/ |
Modifier les permissions
# Notation numérique
chmod 755 deploy.sh
chmod 600 ~/.ssh/id_rsa
# Notation symbolique
chmod +x script.sh # Ajouter exécution pour tous
chmod u+w,g-w fichier.txt # Écriture pour owner, retirer pour groupeChanger le propriétaire
chown devops_user:devops fichier.txt # Utilisateur + groupe
chown -R www-data:www-data /var/www # Récursif⚠️ Les clés SSH doivent être en
600, sinon SSH refusera de les utiliser.
⚙️ Processus
Voir les processus
ps aux # Tous les processus
ps aux | grep nginx # Filtrer par nom
top # Moniteur en temps réel
htop # Version améliorée (à installer)Processus en arrière-plan
./script.sh & # Lancer en arrière-plan
jobs # Lister les jobs
fg %1 # Ramener au premier planArrêter un processus
kill 1234 # Arrêt propre (SIGTERM)
kill -9 1234 # Arrêt forcé (SIGKILL)
pkill nginx # Tuer par nomInformations système
free -h # Mémoire RAM disponible
df -h # Espace disque
du -sh /var/log/ # Taille d'un dossier
uptime # Temps de fonctionnement💡
htopest bien plus lisible quetop. Installez-le avecsudo apt install htop.
🔀 Redirections et Pipes
Les 3 flux standard
| Flux | Numéro | Description |
|---|---|---|
stdin | 0 | Entrée standard (clavier) |
stdout | 1 | Sortie standard (écran) |
stderr | 2 | Sortie d'erreur |
Redirections
echo "Hello" > fichier.txt # Écrire (écrase)
echo "World" >> fichier.txt # Ajouter à la fin
ls /inexistant 2> erreurs.log # Rediriger les erreurs
ls /tmp /inexistant &> tout.log # Tout rediriger
cmd 2>/dev/null # Ignorer les erreursPipes |
Le pipe envoie la sortie d'une commande vers l'entrée de la suivante :
ls -la | wc -l # Compter les fichiers
ps aux | grep python # Filtrer les processus
cat access.log | sort | uniq -c | sort -rn | head
# # Top des lignes les plus fréquentesExemple concret - trouver les 5 plus gros fichiers de log :
du -sh /var/log/* | sort -rh | head -5💡 Les pipes sont l'outil le plus puissant du terminal. Combinez des commandes simples pour créer des traitements complexes.
🌍 Variables d'Environnement
Variables essentielles
| Variable | Description | Exemple |
|---|---|---|
$HOME | Répertoire personnel | /home/devops_user |
$PATH | Chemins des exécutables | /usr/local/bin:/usr/bin |
$USER | Utilisateur courant | devops_user |
$SHELL | Shell par défaut | /bin/bash |
$EDITOR | Éditeur par défaut | vim ou nano |
Manipuler les variables
echo $HOME # Afficher une variable
env # Lister toutes les variables
export MA_VAR="valeur" # Définir pour la session
unset MA_VAR # SupprimerLe $PATH
Le $PATH indique où le système cherche les exécutables :
echo $PATH
# /usr/local/bin:/usr/bin:/bin
# Ajouter un chemin temporairement
export PATH="$HOME/.local/bin:$PATH"Rendre permanent
Ajoutez vos variables dans ~/.bashrc :
echo 'export EDITOR="vim"' >> ~/.bashrc
source ~/.bashrc # Recharger⚠️ Ne stockez jamais de mots de passe ou de tokens dans
~/.bashrc. Utilisez un gestionnaire de secrets.
📦 Gestion des Paquets (APT)
APT est le gestionnaire de paquets de Debian/Ubuntu :
sudo apt update # Mettre à jour la liste des paquets
sudo apt upgrade # Mettre à jour les paquets installés
sudo apt install nginx # Installer un paquet
sudo apt remove nginx # Désinstaller
sudo apt search "web server" # Rechercher un paquet
sudo apt autoremove # Nettoyer les dépendances inutiles💡 Lancez toujours
apt updateavantapt installpour avoir les dernières versions.
🌐 Réseau
Commandes essentielles
ip addr # Adresses IP de la machine
ping -c 4 google.com # Tester la connectivité
ss -tlnp # Ports en écoute
curl -I https://example.com # En-têtes HTTP
curl -s https://api.example.com # Requête API silencieuseSSH - Connexion distante
ssh user@192.168.1.100 # Se connecter
scp fichier.txt user@host:/tmp/ # Copier un fichierGénérer une clé SSH
ssh-keygen -t ed25519 -C "devops_user@example.com"
# Clé privée : ~/.ssh/id_ed25519
# Clé publique : ~/.ssh/id_ed25519.pub💡 Préférez
ed25519àrsa- plus sûr et plus rapide.
📋 Points Clés
| Concept | À retenir |
|---|---|
| Permissions | chmod 755 pour scripts, 600 pour secrets |
| Processus | ps aux, kill, htop |
| Redirections | > écrase, >> ajoute, 2> erreurs |
| Pipes | cmd1 | cmd2 - chaîner les commandes |
| Variables | export VAR="val", persister dans .bashrc |
| Paquets | apt update && apt install |
| Réseau | ip addr, ss -tlnp, ssh, curl |
🏋️ Exercices du module
- Naviguer et explorer le système de fichiers - Parcourir l'arborescence, lister des fichiers
- Gérer les fichiers et répertoires - Créer, copier, déplacer, supprimer
- Permissions et propriété des fichiers - chmod, chown, droits utilisateurs
- Processus et monitoring système - ps, top, kill, surveillance
- Flux, pipes et traitement de texte - stdin, stdout, grep, sed
- Projet Capstone : Déployer et surveiller un serveur web Nginx - APT, permissions web, processus, env vars, réseau et analyse de logs
📚 Ressources
🚀 Prochaines étapes
Vous gérez maintenant les permissions et les processus Linux. Passez au niveau supérieur :
- Scripting Bash et administration système Linux - Scripting Bash, traitement de texte et administration système