Partage
  • Partager sur Facebook
  • Partager sur Twitter

Démarage de Linux

suite au cours Auditez le mode de démarrage du serveur

    13 mars 2022 à 15:52:36

    Bonjour,

    je regarde ce qui se passe au démarrage de mon serveur en suivant ce cours https://openclassrooms.com/fr/courses/2035746-auditez-la-securite-dun-systeme-dexploitation/6338774-auditez-le-mode-de-demarrage-du-serveur.


    J'ai tapé la commande systemctl get-default, il donne le résultat suivant : graphical.target


    En exécutant cette commande systemctl list-units --type target, je vois bien graphical.target.


    Je fais ensuite :ls -lrtha /etc/systemd/system/graphical.target.wants/ le serveur réponds
    impossible d'accéder à '/etc/systemd/system/graphical.target.wants/': Aucun fichier ou dossier de ce type

    en faisant un ls du répertoire /etc/systemd/system/
    voici le résultat
    dbus-org.freedesktop.timesync1.service sockets.target.wants
    default.target.wants sshd.service
    getty.target.wants sysinit.target.wants
    multi-user.target.wants syslog.service
    network-online.target.wants timers.target.wants
    redis.service

    je ne comprends pas ou est graphical.target.
    Quelqu'un a une explication?

    Merci d'avance.
    Christophe

    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2022 à 16:08:58

      Bonjour,

      quand vous postez du code, utilisez la balise prévu pour, ça vous prend plus de temps à poster, mais pour le lecteur, c'est bien plus facile à lire. Merci.

      Je trouve cela étonnant que vous ayez

      systemctl get-default
      
      graphical.target


      Vous avez dû taper une commande qui n’apparaît ni dans le cours, ni dans votre question, ou alors vous n'utilisez pas l'image centos7 proposé dans le cours, ou alors il y a une erreur dans votre question.

      /lib/systemd/system
      

      Ce dossier contient est le répertoire par défaut des fichiers 'unités' installés d'origine par le système d'exploitation ou ultérieurement lors de l'installation d'un paquet.

      Normalement, on ne touche pas à ces fichiers.


      /etc/systemd/system

      Chaque fichier de ce dossier dont le nom est identique au nom d'un des fichiers de /lib/systemd/system aura la priorité sur celui-ci. C'est la précédence. Si l'on veut changer une 'unité', c'est ici que cela se passe.


      Exemple:

      Je suis avec une ubuntu 20.04, en mode graphique dès le démarrage. J'ai ceci:

      thierry@client-kerb:/etc/systemd/system$ ll default.target
      ls: Zugriff auf 'default.target' nicht möglich: Datei oder Verzeichnis nicht gefunden
      

      => je n'ai pas de fichier default.target dans le dossier /etc/systemd/system, aucun 'override' (réécriture) n'a eu lieu. La précédence n'a donc pas lieu d'être.


      De plus:

      thierry@client-kerb:~$ cd /lib/systemd/system
      thierry@client-kerb:/lib/systemd/system$ ll default.target 
      lrwxrwxrwx 1 root root 16 Jan 10 05:56 default.target -> graphical.target
      

      Le dossier contenant les fichiers unités par défaut contient default.target , il s'agit d'un lien symbolique vers la cible graphical.target du même dossier.

      C'est pour toutes ces raisons que je boote graphiquement…


      Si je fais:

      thierry@client-kerb:/etc/systemd/system$ sudo systemctl isolate multi-user.target 
      [sudo] Passwort für thierry: 

      Je passe tout de suite en mode ligne de commande, je n'ai plus de gui (gnome, plasma, xfce…).

      par contre

      thierry@client-kerb:/etc/systemd/system$ systemctl get-default
      graphical.target
      

      get-default indique simplement ce qui se passe au démarrage…


      Je repasse maintenant en mode graphique:

      thierry@client-kerb:/etc/systemd/system$ sudo systemctl isolate graphical.target 


      Maintenant, si je veux pouvoir booter en mode ligne de commande, c'est comme ceci:

      thierry@client-kerb:/etc/systemd/system$ sudo systemctl set-default multi-user.target 
      Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.
      

      Un lien symbolique a automatiquement été créé dans /etc/systemd/system. La précédence jouera son rôle et la target par défaut au prochain démarrage sera la ligne de commande: multi-user.target .

      Pour le moment, je suis toujours avec mon interface graphique (gnome, plasma…)

      Si je veux savoir maintenant savoir dans quel mode je suis, je tape:

      thierry@client-kerb:/etc/systemd/system$ runlevel
      3 5
      

       Cela confirme que je suis toujours avec le mode 5 de SysV, i.e mode graphique.


      Je pourrais redémarrer en cli, mais je préfère reconfigurer le mode par défaut au démarrage en graphique:

      thierry@client-kerb:/etc/systemd/system$ sudo systemctl set-default graphical.target 
      Removed /etc/systemd/system/default.target.
      Created symlink /etc/systemd/system/default.target → /lib/systemd/system/graphical.target.

      Ubuntu a automatiquement supprimé le lien symbolique… et en a créé un autre, cette fois-ci vers graphical.target.


      thierry@client-kerb:/etc/systemd/system$ ll default.target
      lrwxrwxrwx 1 root root 36 Mär 19 15:41 default.target -> /lib/systemd/system/graphical.target

      Après avoir un peu joué avec la default.target, ubuntu laisse un lien symbolique dans /etc/systemd/system.


      Mon avis: il l'aurait supprimé, c'était pareil car le lien symbolique default.target dans /lib/systemd/system pointe vers graphical.target de /lib/systemd/system.


      Pour finir avec le .wants
      je pense que ce sont des services dont le démarrage est souhaité avant qu'un autre service démarre. Mais si ces services (les wants) n'ont pas démarré, le service qui les a souhaité démarra quand même.

      Ces wants peuvent être écrit dans de multiples endroits. Dans le service lui-même ou sinon dans un dossier séparé. C'est cela dont il est ici question…


      Exemple: toujours dans ubuntu.

      le fichier /etc/systemd/system/default.target contient un wants (display-manager.service)

      #  SPDX-License-Identifier: LGPL-2.1+
      #
      #  This file is part of systemd.
      #
      #  systemd is free software; you can redistribute it and/or modify it
      #  under the terms of the GNU Lesser General Public License as published by
      #  the Free Software Foundation; either version 2.1 of the License, or
      #  (at your option) any later version.
      
      [Unit]
      Description=Graphical Interface
      Documentation=man:systemd.special(7)
      Requires=multi-user.target
      Wants=display-manager.service
      Conflicts=rescue.service rescue.target
      After=multi-user.target rescue.service rescue.target display-manager.service
      AllowIsolate=yes
      


      Le dossier /etc/systemd/system/default.target.wants n'est pas vide, il contient:

      thierry@client-kerb:/etc/systemd/system$ ll default.target.wants/
      insgesamt 8
      drwxr-xr-x  2 root root 4096 Mai 26  2021 ./
      drwxr-xr-x 22 root root 4096 Mär 19 15:41 ../
      lrwxrwxrwx  1 root root   40 Mai 26  2021 e2scrub_reap.service -> /lib/systemd/system/e2scrub_reap.service
      

      La cible du lien symbolique pointe vers /lib/systemd/system/graphical.target.


      Mais ce fichier /lib/systemd/system/graphical.target contient aussi des wants, et le dossier contenant /lib/systemd/system/graphical.target contient aussi un dossier /lib/systemd/system/graphical.target.wants

      etc…

      -
      Edité par DenebeDenebe 19 mars 2022 à 16:12:25

      • Partager sur Facebook
      • Partager sur Twitter
        20 mars 2022 à 11:16:00

        Tout ça n'est qu'une histoire de systemd, pas obligatoire puisque quelques distrib n'utilisent même pas systemd...Bref du coup un man systemd devrait suffire à avoir les réponses.
        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2022 à 16:03:31

          @maroufle

          Oui, mais le cours traite de systemd et sa question en découle directement. De plus toutes les distributions majeures intègrent aujourd'hui systemd.

          Pour la man, je suis d'accord, on y trouve des informations intéressantes, encore faut-il s'y connaître un peu, avoir une petite expérience, savoir chercher un mot dans le 'pager', ce n'est pas toujours très simple pour tout un chacun…

          @Christophe

          L'image CentOS que le cours propose, n'a pas d'environnement graphique, c'est un serveur.

          Le seul fichier */graphical.target présent, est celui de /usr/lib/systemd/system/gaphical.target. Mais cela ne veut pas dire pour autant que vous pouvez utiliser une interface graphique.

          Si vous voulez utiliser une interface graphique, vous pouvez par exemple installer GNOME:

          [root@fichesproduits system]# yum groupinstall "GNOME-Desktop"


          Je ne l'ai pas fait. Cela va probablement créer un dossier /etc/systemd/system/graphical.target.wants/ , il contiendra les services dont le démarrage est souhaité (mais pas obligatoire) par l'unité graphical.target. Ce dossier aura la précédence (la priorité) sur le dossier /usr/lib/systemd/system/graphical.target.wants/.

          Vous pourrez alors démarrer en mode graphique.

          -
          Edité par DenebeDenebe 26 mars 2022 à 16:04:33

          • Partager sur Facebook
          • Partager sur Twitter
            27 mars 2022 à 11:44:30

            @DenebeDenebe systemd pourquoi pas, beaucoup de distribs l'utilisent c'est vrai, après ça reste une question spécifique à ce système de démarrage.

            Sinon j'ai pas trop de solutions, installer GNOME c'est bien beau mais si X11 n'est pas configuré, ça ne servira à rien.

            Peut être que si tu veux avoir une interface graphique tu peux tenter un startx (pour démarre X11 et pas GNOME qui a besoin de X11), mais rien ne dit qu'il soit installé et configuré sur un serveur.

            J'ai pris un serveur CentOS il n'y a pas longtemps, il me semblait qu'il était basé sur un RedHat et c'est bien le cas vu que le gestionnaire de paquet est yum.

            A vrai dire de base, si c'est chez OVH, ils ne configurent aucune interface graphique de base.

            Pour configurer X11 ou autre, et systemd surtout, ce lien chez RedHat ne me semble pas si mal...Suivant le runlevel et pleins d'autres options.

            https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-targets

            • Partager sur Facebook
            • Partager sur Twitter

            Démarage de Linux

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown