Guide des commandes Linux et administration Debian
Structure du système de fichiers Debian
Répertoires racine du système Debian
| Répertoire | Description | Contenu principal |
|---|---|---|
/ |
Racine du système | Point de montage principal |
/bin |
Binaires essentiels | Commandes de base (ls, cat, cp, mv, etc.) |
/boot |
Fichiers de démarrage | Noyau Linux, initramfs, GRUB |
/dev |
Périphériques | Fichiers spéciaux des périphériques |
/etc |
Configuration système | Fichiers de configuration globaux |
/home |
Répertoires utilisateurs | Dossiers personnels des utilisateurs |
/lib |
Bibliothèques partagées | Bibliothèques système essentielles |
/lib64 |
Bibliothèques 64-bit | Bibliothèques pour architecture 64-bit |
/media |
Points de montage amovibles | CD/DVD, clés USB montés automatiquement |
/mnt |
Points de montage temporaires | Montages manuels temporaires |
/opt |
Logiciels optionnels | Applications tierces |
/proc |
Système de fichiers virtuel | Informations sur les processus |
/root |
Répertoire de l'administrateur | Dossier personnel du compte root |
/run |
Données d'exécution | Fichiers temporaires des services |
/sbin |
Binaires système | Commandes d'administration système |
/srv |
Données de service | Données servies par le système |
/sys |
Système de fichiers virtuel | Interface avec le noyau |
/tmp |
Fichiers temporaires | Fichiers temporaires effacés au redémarrage |
/usr |
Ressources utilisateur | Applications et bibliothèques utilisateur |
/var |
Données variables | Logs, caches, bases de données |
Répertoires importants dans /usr
| Répertoire | Description |
|---|---|
/usr/bin |
Binaires utilisateur non-essentiels |
/usr/lib |
Bibliothèques pour /usr/bin |
/usr/local |
Logiciels installés localement |
/usr/sbin |
Binaires système non-essentiels |
/usr/share |
Données partagées (documentation, man pages) |
Répertoires importants dans /var
| Répertoire | Description |
|---|---|
/var/log |
Fichiers journaux (logs) |
/var/cache |
Cache des applications |
/var/lib |
Données variables des applications |
/var/tmp |
Fichiers temporaires persistants |
/var/www |
Contenu web (Apache/Nginx) |
Commandes de base Linux
Navigation et manipulation de fichiers
ls - Lister le contenu d'un répertoire
ls # Liste les fichiers et dossiers du répertoire courant
ls -l # Liste détaillée avec permissions, propriétaire, taille
ls -a # Affiche les fichiers cachés (commençant par .)
ls -lh # Liste détaillée avec tailles lisibles (Ko, Mo, Go)
ls /chemin/dossier # Liste le contenu d'un dossier spécifique
cd - Changer de répertoire
cd /home/utilisateur # Aller dans un répertoire spécifique
cd .. # Remonter d'un niveau dans l'arborescence
cd ~ # Aller dans le répertoire personnel
cd - # Revenir au répertoire précédent
pwd - Afficher le répertoire courant
pwd # Affiche le chemin complet du répertoire actuel
mkdir - Créer un répertoire
mkdir nouveau_dossier # Créer un dossier
mkdir -p dossier/sous_dossier # Créer un dossier avec ses parents
rmdir - Supprimer un répertoire vide
rmdir dossier_vide # Supprime uniquement un dossier sans contenu
rm - Supprimer des fichiers/répertoires
rm fichier.txt # Supprimer un fichier
rm -r dossier # Supprimer un dossier et son contenu
rm -rf dossier # Supprimer forcément sans confirmation
cp - Copier des fichiers/répertoires
cp fichier1 fichier2 # Copier un fichier
cp -r dossier1 dossier2 # Copier un dossier et son contenu
cp fichier /chemin/destination # Copier vers un autre emplacement
mv - Déplacer/renommer des fichiers/répertoires
mv fichier1 fichier2 # Renommer un fichier
mv fichier /nouveau/chemin # Déplacer un fichier
mv dossier1 /nouveau/chemin # Déplacer un dossier
find - Rechercher des fichiers
find /chemin -name "*.txt" # Trouver tous les fichiers .txt - Cas sensible au majuscule et minuscule
find /chemin -iname "*.txt" # Trouver tous les fichiers .txt - Cas insensible au majuscule et minuscule
find . -type f -size +10M # Fichiers > 10 Mo dans le répertoire courant
find /home -user utilisateur # Fichiers appartenant à un utilisateur
locate - Localiser des fichiers rapidement
locate nom_fichier # Recherche rapide dans l'index système
sudo updatedb # Mettre à jour l'index de recherche
Gestion des permissions
chmod - Modifier les permissions
chmod 755 fichier.txt # Définir des permissions (rwxr-xr-x)
chmod u+x script.sh # Ajouter droit d'exécution au propriétaire
chmod g-w fichier # Retirer droit d'écriture au groupe
chmod +t dossier # Activer le sticky bit sur un dossier
chmod 1777 dossier_partage # Sticky bit sur permissions rwxrwxrwt
- Sticky bit : Permet, sur un répertoire (comme
/tmp), que seuls les propriétaires puissent supprimer ou renommer leurs propres fichiers, même si d'autres ont des droits d’écriture. Représenté par untà la fin dansls -l(drwxrwxrwt).
chown - Changer le propriétaire
chown utilisateur fichier.txt # Changer le propriétaire
chown utilisateur:groupe fichier # Changer propriétaire et groupe
chgrp - Changer le groupe
chgrp groupe fichier.txt # Changer le groupe d'un fichier
Surveillance système
ps - Afficher les processus
ps aux # Liste détaillée de tous les processus
ps -ef # Autre format de listing
top - Monitorer les processus en temps réel
top # Monitorer l'utilisation système
htop - Version améliorée de top
htop # Interface interactive de surveillance
df - Afficher l'espace disque
df -h # Affichage lisible des espaces disques
df -T # Afficher les types de systèmes de fichiers
du - Afficher l'utilisation de l'espace
du -sh /chemin # Taille totale d'un dossier
du -h --max-depth=1 # Taille des sous-dossiers
free - Afficher la mémoire disponible
free -h # Mémoire utilisable en format lisible
free -m # Mémoire en MégaOctets
Informations Système
uname - Informations sur le système
uname -a # Afficher toutes les informations système
uname -s # Nom du système d'exploitation
uname -r # Version du noyau
uname -m # Architecture machine
lsblk - Lister les périphériques de bloc
lsblk # Liste des disques et partitions# Changer les permissions
chmod 755 fichier.txt
chmod u+x fichier.sh # Ajouter exécution pour le propriétaire
chmod g-w fichier.txt # Retirer écriture pour le groupe
chmod o=r fichier.txt # Définir lecture seule pour les autres
# Changer le propriétaire
chown utilisateur:groupe fichier.txt
chown utilisateur fichier.txt
chgrp groupe fichier.txt
lsblk -f # Afficher les systèmes de fichiers
lsblk -a # Afficher tous les périphériques
fdisk - Gestion des partitions
sudo fdisk -l # Lister toutes les partitions
sudo fdisk /dev/sdX # Gérer une partition spécifique
lscpu - Informations sur le processeur
lscpu # Détails complets du processeur
lscpu | grep "CPU(s)" # Nombre de processeurs
lspci - Périphériques PCI
lspci # Liste des périphériques PCI
lspci -v # Informations détaillées
lsusb - Périphériques USB
lsusb # Liste des périphériques USB
lsusb -v # Informations détaillées
cat - Afficher des informations système
cat /etc/os-release # Informations sur la distribution
cat /proc/cpuinfo # Détails du processeur
cat /proc/meminfo # Informations mémoire
hostnamectl - Informations système
hostnamectl # Afficher les informations système
hostnamectl status # Statut du système
Tableau des droits des fichiers
Représentation numérique (octale)
| Valeur | Binaire | Permissions | Description |
|---|---|---|---|
| 0 | 000 | --- | Aucun droit |
| 1 | 001 | --x | Exécution seulement |
| 2 | 010 | -w- | Écriture seulement |
| 3 | 011 | -wx | Écriture + Exécution |
| 4 | 100 | r-- | Lecture seulement |
| 5 | 101 | r-x | Lecture + Exécution |
| 6 | 110 | rw- | Lecture + Écriture |
| 7 | 111 | rwx | Tous les droits |
Structure des permissions
Les permissions sont définies pour trois entités :
- Propriétaire (user) - Premier chiffre
- Groupe (group) - Deuxième chiffre
- Autres (others) - Troisième chiffre
Exemples courants
| Permission | Signification |
|---|---|
| 755 | rwxr-xr-x (propriétaire: tous droits, groupe/autres: lecture+exécution) |
| 644 | rw-r--r-- (propriétaire: lecture+écriture, groupe/autres: lecture seule) |
| 600 | rw------- (propriétaire: lecture+écriture, groupe/autres: aucun droit) |
| 777 | rwxrwxrwx (tous droits pour tous) |
| 700 | rwx------ (propriétaire: tous droits, groupe/autres: aucun droit) |
Commandes de gestion des permissions
# Changer les permissions d'un fichier
chmod 755 fichier.txt
# Changer les permissions d'un dossier de façon récursive
chmod -R 755 dossier
# Ajouter une permission d'exécution pour le propriétaire sur un fichier
chmod u+x fichier.sh
# Ajouter une permission d'exécution pour le propriétaire sur un dossier de façon récursive
chmod -R u+x dossier
# Retirer l'écriture pour le groupe sur un fichier
chmod g-w fichier.txt
# Retirer l'écriture pour le groupe sur un dossier de façon récursive
chmod -R g-w dossier
# Définir la lecture seule pour les autres sur un fichier
chmod o=r fichier.txt
# Définir la lecture seule pour les autres sur un dossier de façon récursive
chmod -R o=r dossier
# Changer le propriétaire d'un fichier
chown utilisateur:groupe fichier.txt
# Changer le propriétaire d'un dossier de façon récursive
chown -R utilisateur:groupe dossier
# Changer le groupe d'un fichier
chgrp groupe fichier.txt
# Changer le groupe d'un dossier de façon récursive
chgrp -R groupe dossier
Gestion des serveurs Debian
Services système
systemctl start service- Démarrer un servicesystemctl stop service- Arrêter un servicesystemctl restart service- Redémarrer un servicesystemctl enable service- Activer un service au démarragesystemctl status service- Vérifier le statut d'un service
Gestion des paquets
apt update- Mettre à jour la liste des paquetsapt upgrade- Mettre à jour les paquets installésapt install package- Installer un paquetapt remove package- Supprimer un paquet
Réparation d'APT
Problèmes courants et solutions
1. Réparer les paquets cassés
Corriger les dépendances cassées :
sudo apt --fix-broken install
Forcer la configuration des paquets :
sudo dpkg --configure -a
Réparer les paquets partiellement installés :
sudo apt-get -f install
2. Nettoyer le cache APT
Nettoyer le cache des paquets :
sudo apt clean
sudo apt autoclean
Supprimer les paquets orphelins :
sudo apt autoremove
sudo apt autoremove --purge # Supprimer aussi les fichiers de configuration
3. Reconfigurer APT
Reconstruire la base de données des paquets :
sudo apt update --fix-missing
Forcer la mise à jour des sources :
sudo apt update && sudo apt upgrade
4. Problèmes de verrouillage
Supprimer les verrous APT (si aucun processus APT n'est en cours) :
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
Reconfigurer dpkg :
sudo dpkg --configure -a
5. Réinitialiser les sources APT
Sauvegarder les sources actuelles :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
Éditer les sources si nécessaire :
sudo nano /etc/apt/sources.list
Mettre à jour après modification :
sudo apt update
6. Vérifier l'intégrité du système
Vérifier les paquets installés :
sudo apt check
Simuler les actions sans les exécuter :
sudo apt -s upgrade
Forcer la réinstallation d'un paquet :
sudo apt reinstall nom_du_paquet
Administration des utilisateurs
Création et gestion des comptes utilisateurs
# Créer un compte utilisateur
sudo adduser username
# Modifier le mot de passe
sudo passwd utilisateur
# Créer un nouveau groupe
sudo addgroup nom_groupe
# Ajouter un utilisateur à un groupe
sudo adduser utilisateur groupe
# Modifier le répertoire personnel
sudo usermod -m -d /newhome/username username
# Supprimer un utilisateur
sudo deluser username
# Supprimer un utilisateur et son répertoire personnel
sudo deluser --remove-home username
# Lister les utilisateurs
cat /etc/passwd
# Lister les groupes
cat /etc/group
# Voir les groupes d'un utilisateur
groups username
Gestion des identifiants système
# Modifier le GID (identifiant de groupe) d'un utilisateur
sudo groupmod -g 900 toto
# Modifier l'UID (identifiant utilisateur) et le GID simultanément
sudo usermod -u 800 -g 900 toto
# Changer le shell par défaut d'un utilisateur
sudo usermod -s /bin/bash username
# Verrouiller un compte utilisateur
sudo usermod -L username
# Déverrouiller un compte utilisateur
sudo usermod -U username
Suppression de mot de passe
Méthode sécurisée :
# Supprimer le mot de passe d'un utilisateur
sudo passwd -d username
# Forcer le changement de mot de passe à la prochaine connexion
sudo passwd -e username
Méthode manuelle (mode recovery) :
Pour supprimer manuellement un mot de passe, démarrez en mode live et modifiez le fichier /etc/shadow. Localisez la ligne correspondant à l'utilisateur et supprimez les caractères situés entre les deux premiers séparateurs « : ».
Exemple pour l'utilisateur Michu :
michu:$6$68oL9D6yVVCMTVswSb.51oFHz/:17999:0:99999:7:::
Devient :
michu::17999:0:99999:7:::
Connexion par tunnel SSH (équivalent VPN)
Cette méthode permet d'utiliser la connexion du serveur via un tunnel SSH.
Tunnel SOCKS (Dynamic Port Forwarding)
# Créer un tunnel SOCKS sur le port local 8080
ssh user@serveur -p port -D 8080
# Exemple avec l'utilisateur Michu
ssh michu@158.136.345.678 -p 1234 -D 8080
Autres types de tunnels SSH
# Tunnel local (Local Port Forwarding)
ssh -L 8080:localhost:80 user@serveur
# Tunnel distant (Remote Port Forwarding)
ssh -R 8080:localhost:80 user@serveur
# Tunnel avec compression
ssh -C -D 8080 user@serveur
# Tunnel en arrière-plan
ssh -f -N -D 8080 user@serveur
Configuration du proxy :
Configurez votre navigateur pour utiliser le proxy SOCKS avec l'adresse 127.0.0.1 et le port 8080.
Note : L'option -p spécifie le port SSH s'il diffère du port par défaut (22).
Personnalisation et automatisation
Message d'accueil personnalisé (MOTD)
# Créer un message d'accueil personnalisé
sudo nano /etc/motd.d/01-custom
Maintenance et optimisation du système
Nettoyage APT [1]
Suppression complète du cache (supprime tous les paquets de /var/cache/apt/archives) :
sudo apt-get clean
Nettoyage intelligent (conserve les paquets ayant des équivalents dans les dépôts, supprime les versions obsolètes) :
sudo apt-get autoclean
Cette approche de nettoyage permet de récupérer de l'espace disque tout en préservant les paquets utiles pour de futures réinstallations.
Désactivation du compte root
Méthodes de désactivation du compte root
1. Verrouiller le compte root
sudo passwd -l root
2. Désactiver la connexion SSH pour root
Éditer le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
Modifier ou ajouter la ligne :
PermitRootLogin no
Redémarrer le service SSH :
sudo systemctl restart ssh
3. Désactiver le compte root avec sudo
Éditer le fichier sudoers :
sudo visudo
Ajouter la ligne pour restreindre totalement l'accès root :
root ALL=(ALL) NOALL
4. Utiliser sudo à la place de root
Créer un utilisateur avec des privilèges sudo :
sudo adduser votreutilisateur
sudo usermod -aG sudo votreutilisateur
5. Vérifier les restrictions
Tester la connexion root :
sudo -i
Précautions supplémentaires
Vérifier les connexions root :
sudo grep root /var/log/auth.log
Surveiller les tentatives de connexion :
sudo last root
Bonnes pratiques
- Utilisez toujours
sudopour les actions administratives - Créez un utilisateur distinct avec des privilèges sudo
- Utilisez des mots de passe forts
- Configurez l'authentification à deux facteurs
- Mettez à jour régulièrement le système
Aucun commentaire à afficher
Aucun commentaire à afficher