Comment vérifier si le système est en mode utilisateur unique sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier l'état de fonctionnement d'un système Linux, en particulier à déterminer si le système est en mode utilisateur unique. Vous explorerez les niveaux d'exécution (runlevels) traditionnels à l'aide des commandes runlevel et who -r, et examinerez également la cible système par défaut dans les environnements modernes systemd en utilisant systemctl get-default. Cette expérience pratique vous offrira des compétences pratiques pour comprendre et vérifier l'état opérationnel du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/whoami("User Identifying") subgraph Lab Skills linux/help -.-> lab-558810{{"Comment vérifier si le système est en mode utilisateur unique sous Linux"}} linux/which -.-> lab-558810{{"Comment vérifier si le système est en mode utilisateur unique sous Linux"}} linux/service -.-> lab-558810{{"Comment vérifier si le système est en mode utilisateur unique sous Linux"}} linux/whoami -.-> lab-558810{{"Comment vérifier si le système est en mode utilisateur unique sous Linux"}} end

Vérifier le niveau d'exécution (runlevel) avec la commande runlevel

Dans cette étape, nous allons explorer le concept de niveaux d'exécution (runlevels) dans Linux et comment vérifier le niveau d'exécution actuel à l'aide de la commande runlevel.

Les niveaux d'exécution (runlevels) représentent différents états de fonctionnement d'un système Linux. Chaque niveau d'exécution définit quels services sont démarrés et arrêtés. Par exemple, un niveau d'exécution peut être destiné à un système multi-utilisateurs avec une interface graphique, tandis qu'un autre peut être utilisé pour le mode utilisateur unique en cas de maintenance.

Bien que les distributions Linux modernes utilisent souvent des cibles systemd au lieu des niveaux d'exécution traditionnels, il reste utile de comprendre les runlevels car vous pourriez les rencontrer dans des systèmes plus anciens ou dans la documentation.

Vérifions le niveau d'exécution actuel de votre environnement LabEx. Ouvrez le terminal si vous ne l'avez pas déjà fait.

Tapez la commande suivante et appuyez sur Entrée :

runlevel

Vous devriez voir une sortie similaire à celle-ci :

N 5

Décortiquons la sortie :

  • Le premier caractère (N dans ce cas) indique le niveau d'exécution précédent. N signifie qu'il n'y avait pas de niveau d'exécution précédent (le système vient de démarrer).
  • Le deuxième caractère (5 dans ce cas) indique le niveau d'exécution actuel.

Dans les systèmes traditionnels SysVinit, les niveaux d'exécution courants incluent :

  • 0 : Arrêt (éteindre le système)
  • 1 : Mode utilisateur unique (pour la maintenance)
  • 2 : Mode multi-utilisateurs, sans réseau
  • 3 : Mode multi-utilisateurs, avec réseau (console texte)
  • 4 : Non utilisé/définissable par l'utilisateur
  • 5 : Mode multi-utilisateurs, avec réseau et interface graphique
  • 6 : Redémarrage (relancer le système)

Votre environnement LabEx fonctionne en niveau d'exécution 5, qui correspond à un système multi-utilisateurs avec un environnement de bureau graphique.

Comprendre les niveaux d'exécution vous aide à résoudre les problèmes de démarrage du système et à gérer les services système.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le niveau d'exécution (runlevel) avec who -r

Dans l'étape précédente, nous avons utilisé la commande runlevel pour vérifier le niveau d'exécution actuel. Une autre façon d'obtenir des informations similaires consiste à utiliser la commande who avec l'option -r.

La commande who est généralement utilisée pour afficher qui est connecté au système. Cependant, avec l'option -r, elle affiche le niveau d'exécution actuel.

Essayons-le. Dans votre terminal, tapez la commande suivante et appuyez sur Entrée :

who -r

Vous devriez voir une sortie similaire à celle-ci :

           run-level 5  <DATE> <TIME>

Cette sortie confirme que le système est actuellement en niveau d'exécution 5. La date et l'heure indiquent quand le système est entré dans ce niveau d'exécution.

En comparant les sorties de runlevel et de who -r, vous pouvez constater que les deux commandes fournissent des informations sur le niveau d'exécution actuel, bien que le format diffère. who -r donne une sortie plus descriptive, incluant la date et l'heure.

Utiliser différentes commandes pour obtenir des résultats similaires est courant dans Linux. Il est utile de connaître plusieurs façons d'obtenir les informations dont vous avez besoin, car certaines commandes peuvent être disponibles sur certains systèmes tandis que d'autres ne le sont pas, ou une commande peut fournir des informations plus détaillées qu'une autre.

Pratiquez l'utilisation de runlevel et de who -r pour vous familiariser avec la vérification de l'état de fonctionnement du système.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter la cible par défaut avec systemctl get-default

Comme mentionné précédemment, les distributions Linux modernes utilisent souvent systemd au lieu du système traditionnel SysVinit. systemd utilise des « cibles » (targets) qui sont similaires en concept aux niveaux d'exécution (runlevels), mais offrent plus de flexibilité.

Une cible est un groupe d'unités systemd (telles que des services, des points de montage, des sockets, etc.) que le système doit démarrer ou arrêter pour atteindre un état souhaité. La cible par défaut est l'état dans lequel le système démarre.

Nous pouvons utiliser la commande systemctl pour interagir avec systemd. La sous-commande get-default affiche la cible par défaut.

Remarque : En raison de la nature de l'environnement LabEx s'exécutant dans un conteneur Docker, la commande systemctl peut se comporter différemment ou afficher des informations limitées par rapport à une installation complète d'un système d'exploitation. Cependant, nous pouvons toujours l'utiliser pour comprendre le concept des cibles par défaut.

Dans votre terminal, tapez la commande suivante et appuyez sur Entrée :

systemctl get-default

Vous devriez voir une sortie similaire à celle-ci :

graphical.target

Cette sortie indique que la cible par défaut de ce système est graphical.target. Cette cible inclut généralement tous les services nécessaires pour un système multi-utilisateurs avec un environnement de bureau graphique, ce qui correspond au niveau d'exécution 5 que nous avons vu précédemment.

D'autres cibles courantes incluent :

  • multi-user.target : Similaire au niveau d'exécution 3, un système multi-utilisateurs sans interface graphique.
  • rescue.target : Un mode utilisateur unique pour la récupération du système.
  • reboot.target : Utilisé pour redémarrer le système.
  • poweroff.target : Utilisé pour éteindre le système.

Bien que vous ne puissiez pas changer la cible par défaut dans cet environnement LabEx, comprendre comment la vérifier avec systemctl get-default est une compétence fondamentale pour la gestion des systèmes basés sur systemd.

Vous avez maintenant appris trois façons différentes de vérifier l'état de fonctionnement du système ou son état de démarrage par défaut : runlevel, who -r et systemctl get-default.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, nous avons appris à vérifier l'état de fonctionnement du système dans Linux. Nous avons commencé par explorer le concept des niveaux d'exécution (runlevels), qui représentent différents états du système, et utilisé la commande runlevel pour déterminer le niveau d'exécution actuel. Nous avons compris la signification de la sortie, y compris les niveaux d'exécution précédent et actuel, et passé en revue les niveaux d'exécution courants dans les systèmes traditionnels SysVinit.

Nous avons ensuite appris une méthode alternative pour vérifier le niveau d'exécution en utilisant la commande who -r, qui fournit des informations similaires sur le niveau d'exécution du système. Enfin, nous avons examiné comment les distributions Linux modernes, qui utilisent souvent systemd, gèrent les états du système grâce à des cibles (targets) au lieu des niveaux d'exécution traditionnels, et utilisé la commande systemctl get-default pour identifier la cible par défaut.