Questions d'entretien Linux
1. Expliquez les permissions de fichiers sous Linux.
Chaque fichier a trois niveaux de permissions : propriétaire (user), groupe (group), autres (others). Trois types de permissions : lecture (r=4), écriture (w=2), exécution (x=1). Représentation : -rwxr-xr-- signifie propriétaire rwx (7), groupe r-x (5), autres r-- (4), soit 754 en octal. Permissions speciales : SUID (execute avec les droits du propriétaire), SGID (execute avec les droits du groupe), Sticky bit (seul le propriétaire peut supprimer dans un répertoire partage). Commandes : chmod, chown, chgrp.
2. Comment fonctionne la gestion des processus sous Linux ?
Chaque processus à un PID (Process ID) et un PPID (Parent PID). Le processus init/systemd (PID 1) est l'ancetre de tous les processus. Commandes : ps aux (liste les processus), top/htop (monitoring temps réel), kill PID (envoie un signal, SIGTERM par défaut), kill -9 PID (SIGKILL, force l'arrêt). Les processus peuvent être en foreground ou background (cmd &). Utilisez nohup ou disown pour detacher un processus du terminal. nice et renice ajustent la priorité.
3. Qu'est-ce que systemd et comment gérer les services ?
systemd est le système d'init et gestionnaire de services par défaut sur la plupart des distributions Linux modernes. Commandes : systemctl start/stop/restart nom.service, systemctl enable/disable (démarrage automatique), systemctl status (état du service), journalctl -u nom.service (logs du service). Les fichiers unit (.service) définissent le comportement du service. systemd gere aussi les timers (equivalent cron), les montages, et les sockets.
4. Expliquez la gestion de la mémoire sous Linux.
Linux utilise la mémoire virtuelle : chaque processus à son propre espace d'adressage. Le noyau gere la mémoire physique (RAM) et le swap (espace disque utilise quand la RAM est pleine). Commandes : free -h (mémoire totale, utilisee, buffers/cache), vmstat (statistiques de mémoire virtuelle). Le OOM Killer (Out Of Memory) tue les processus quand la mémoire est epuisee. Le cache de pages (page cache) utilise la RAM libre pour accélérer les lectures disque — c'est normal qu'il soit eleve.
5. Comment diagnostiquer les problèmes de performance sous Linux ?
Méthodologie USE (Utilization, Saturation, Errors) par Brendan Gregg. Outils : top/htop (CPU, mémoire par processus), iostat (I/O disque), vmstat (mémoire, swap, CPU), sar (historique de performances), strace (trace les appels système d'un processus), lsof (fichiers ouverts par processus), netstat/ss (connexions réseau), dmesg (messages du noyau). Commencez par identifier la ressource saturee (CPU, mémoire, I/O, réseau) puis investiguez le processus responsable.
6. Comment configurer le réseau sous Linux ?
Commandes : ip addr (interfaces et adresses IP), ip route (table de routage), ss -tlnp (ports en écoute), ping/traceroute (diagnostic connectivité), dig/nslookup (résolution DNS). Configuration : NetworkManager (nmcli) pour les desktops et serveurs modernes, fichiers dans /etc/netplan/ (Ubuntu) ou /etc/sysconfig/network-scripts/ (RHEL). iptables/nftables pour le filtrage de paquets. firewalld pour la gestion simplifiée du pare-feu.
7. Qu'est-ce que LVM et pourquoi l'utiliser ?
LVM (Logical Volume Manager) ajoute une couche d'abstraction entre les disques physiques et les systèmes de fichiers. Composants : PV (Physical Volume, le disque), VG (Volume Group, pool de stockage), LV (Logical Volume, partition logique). Avantages : redimensionnement a chaud (agrandir/réduire les volumes), snapshots (copies instantanées pour les sauvegardes), striping (performance), et gestion flexible du stockage sans repartitionner les disques.
8. Expliquez le fonctionnement de SSH et les bonnes pratiques.
SSH (Secure Shell) fournit un accès distant chiffre. L'authentification utilise des clés publiques/privées (plus secure que les mots de passe). Configuration dans /etc/ssh/sshd_config : desactivez l'authentification par mot de passe (PasswordAuthentication no), desactivez le login root (PermitRootLogin no), changez le port par défaut (optionnel), utilisez Fail2Ban pour bloquer les tentatives de brute force. ssh-agent gere les clés en mémoire. Les tunnels SSH (-L, -R, -D) permettent le port forwarding securise.
9. Comment automatiser les tâches sous Linux ?
cron : planification de tâches periodiques. Editez avec crontab -e, syntaxe "minute heure jour mois jour_semaine commande". systemd timers : alternative moderne a cron avec gestion des dépendances et logging integre. at : exécution unique à un moment spécifique. Ansible : automatisation de la configuration sur plusieurs serveurs (playbooks YAML). Scripts Bash pour les tâches complexes. Bonnes pratiques : logguez les sorties, gérez les erreurs, utilisez flock pour éviter les executions concurrentes.
10. Comment gérer les conteneurs avec Linux (namespaces et cgroups) ?
Les conteneurs reposent sur deux fonctionnalités du noyau Linux : les namespaces isolent les ressources (PID, réseau, montage, utilisateurs, IPC, hostname) pour que chaque conteneur ait sa propre vue du système. Les cgroups (Control Groups) limitent et comptabilisent les ressources (CPU, mémoire, I/O) pour chaque conteneur. Docker, Podman et containerd utilisent ces mécanismes. Comprendre ces fondamentaux aide à debugger les problèmes de conteneurs et à comprendre les limites de l'isolation.