Passer au contenu principal

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

Cas insensible 

locate - Localiser des fichiers rapidement

locate nom_fichier             # Recherche rapide dans l'index système
sudo updatedb                  # Mettre à jour l'index de recherche

Voici tout le texte avec l'ajout du sticky bit dans la partie "Gestion des permissions" :


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 un t à la fin dans ls -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 service
    • systemctl stop service - Arrêter un service
    • systemctl restart service - Redémarrer un service
    • systemctl enable service - Activer un service au démarrage
    • systemctl status service - Vérifier le statut d'un service

    Gestion des paquets

    • apt update - Mettre à jour la liste des paquets
    • apt upgrade - Mettre à jour les paquets installés
    • apt install package - Installer un paquet
    • apt 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 sudo pour 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