Sysadmins : Exploitation et gestion des serveurs Linux - Partie 7
En tant qu’administrateur système Linux, vous devez avoir une bonne compréhension des concepts d’administration de base pour pouvoir exploiter et gérer efficacement et sans problème les serveurs Linux.
Dans cet article de la série RHCSA, nous mettons en lumière les concepts clés que vous devez avoir à portée de main pour vous permettre d’exécuter vos tâches comme un professionnel.
Connexion et changement d’utilisateur dans les cibles multi-utilisateurs Linux
L’une des compétences fondamentales qu’un utilisateur expérimenté ou en herbe de Linux doit connaître est la gestion des utilisateurs sur votre système.
Pour vous connecter à votre système, utilisez la syntaxe ssh :
ssh root@server-IP
OR
ssh -l user@server-IP
Une fois connecté, vous pouvez confirmer l’utilisateur auquel vous êtes actuellement connecté à l’aide de la commande.
whoami
Comme le montre le résultat ci-dessus, je suis connecté en tant qu’utilisateur appelé ravisaive.
Vous pouvez obtenir des détails supplémentaires tels que l’UID (ID utilisateur) et le GID (ID de groupe) à l’aide de la commande id.
id
Les utilisateurs Linux sont stockés dans le fichier /etc/passwd. Vous pouvez afficher la liste des utilisateurs en tapant la commande.
cat /etc/passwd
Le fichier /etc/passwd contient à la fois les utilisateurs du système et les utilisateurs réguliers.
Pour passer à un autre utilisateur, il suffit d’utiliser la commande.
su username
Par exemple, pour passer à l’utilisateur tecmint, exécutez.
su tecmint
Encore une fois, pour confirmer l’utilisateur auquel vous êtes actuellement connecté, exécutez la commande.
whoami
Les utilisateurs du système sont identifiés à l’aide du suffixe /sbin/nologin à la fin des informations sur l’utilisateur. Cela implique que vous ne pouvez pas les utiliser à des fins de connexion.
Vous ne pouvez basculer et vous connecter à des utilisateurs normaux qu’avec le /bin/bash à la fin indiquant qu’ils sont des utilisateurs shell.
Maîtriser le démarrage, le redémarrage et l’arrêt du système sous Linux
Dans cette section, nous allons voir comment redémarrer et arrêter un système.
Redémarrage d’un système Linux
Pour redémarrer votre système en tant qu’utilisateur root, essayez l’une des commandes indiquées.
reboot
systemctl reboot
shutdown -r now
init 6
telinit 6
Les deux dernières commandes indiquent au système de passer au niveau d’exécution 6, ce qui redémarre automatiquement le système.
Arrêt d’un système Linux
Pour arrêter votre système Linux, exécutez l’une de ces commandes en tant qu’utilisateur root.
halt
systemctl halt
poweroff
systemctl poweroff
shutdown -h now
init 0
telinit 0
Initialisation manuelle des systèmes dans différentes cibles
Avant l’avènement des systèmes systemd, vous pouviez facilement afficher le niveau d’exécution - actuellement appelé cibles dans le fichier /etc/inittab.
Pour afficher le niveau d’exécution auquel vous vous trouviez actuellement, il vous suffit d’exécuter la commande : runlevel. Cependant, il n’est plus utilisé. Systemd utilise des 'targets' à la place des niveaux d’exécution.
Pour vérifier la cible par défaut, utilisez la commande systemctl.
systemctl get-default
Pour afficher toutes les cibles disponibles, exécutez la commande.
systemctl list-units --type target --all
Pour définir une cible par défaut, utilisez la syntaxe suivante :
systemctl set-default TARGET.target
Par exemple, pour passer à une cible graphique, la syntaxe serait la suivante :
systemctl set-default graphical.target
Il vous suffit maintenant de redémarrer pour démarrer dans votre nouvelle cible.
Interruption du processus de démarrage pour accéder au système Linux
Si vous souhaitez apporter quelques modifications au système, vous pouvez interrompre momentanément le processus de démarrage et obtenir un shell. Supposons que vous ayez oublié le mot de passe de l’utilisateur root sur votre système et que vous souhaitiez le réinitialiser et y accéder, comment feriez-vous ?
Pour ce faire, appuyez d’abord sur la touche e
de votre clavier lorsque le menu grub2 est affiché.
Après avoir appuyé sur la touche e
dans le menu grub2, faites défiler et localisez la ligne qui commence par linux
et ajoutez l’instruction suivante à la fin de la ligne. Supprimez les mots rhgb quiet
qui viennent à la toute fin et ajoutez-y :
Le rd.break
déclenche une pause très tôt dans le processus de démarrage et enforce=0
active le mode permissif SELinux (à ne pas confondre avec selinux=0
)
Ensuite, appuyez sur Ctrl + X
pour redémarrer le système.
L’invite se transforme en.
switch_root:/#
Ensuite, vous allez monter la partition /sysroot en mode lecture et écriture.
switch_root:/# mount -o remount, rw /sysroot
Exécutez ensuite chroot /sysroot.
switch_root:/# chroot /sysroot
Vous pouvez maintenant changer le mot de passe de la racine en exécutant :
sh-4.4# passwd root
Vous serez invité à saisir un NOUVEAU mot de passe root et à le confirmer plus tard.
Enfin, montez le fichier en lecture seule.
sh-4.4# mount -o remount,ro /
Quittez deux fois et le système redémarrera. Vous devriez maintenant pouvoir vous connecter en tant qu’utilisateur root à l’aide du mot de passe nouvellement défini.
Une fois connecté, exécutez les commandes.
restorecon /etc/shadow
setenforce 1
Trouver et tuer les processus gourmands en ressources sous Linux
Les processus gourmands en mémoire exercent une pression excessive sur le processeur et la RAM et peuvent provoquer le blocage ou la fermeture soudaine d’applications et d’applications essentielles. Pour éviter cela, il est crucial de surveiller les processus qui s’exécutent sur votre système Linux, ainsi que de savoir comment les arrêter.
Pour avoir un aperçu des processus en cours d’exécution, exécutez la commande :
top
La commande top affiche une vue en temps réel des processus en cours d’exécution sur votre système, ainsi que d’autres mesures telles que la disponibilité du système, la charge moyenne, l’utilisation du processeur et l’utilisation de la mémoire.
Une amélioration de la commande top est la commande htop, qui affiche des statistiques détaillées de performances du système en temps réel et l’impact de chaque processus sur la mémoire et le processeur.
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install htop
htop
Pour terminer ou arrêter un processus, vous pouvez utiliser son PID (ID de processus) ou son nom de processus :
kill PID
Par exemple, pour arrêter un processus avec une exécution PID 1091.
kill 1091
Pour tuer un processus en utilisant son nom de processus, par exemple, firefox utilise la syntaxe suivante :
kill firefox
Comment ajuster la planification des processus sous Linux
Un planificateur est une partie du noyau qui décide quels processus exécutables seront exécutés par le processeur ensuite.
Le planificateur propose 2 grandes catégories de politiques de planification :
- Politique normale
- Politique en temps réel
La politique de planification en temps réel comprend 2 sous-catégories :
- SCHED_RR : pour les tâches ayant la même priorité, cette stratégie utilise un modèle de tourniquet. Dans cette stratégie, les tâches se voient attribuer un intervalle de temps égal.
- SCHED_FIFO – Pour les tâches ayant la même priorité, la première tâche doit céder avant que la suivante puisse être exécutée.
Pour la politique Normal, nous avons :
- SCHED_OTHER : il s’agit de la stratégie de planificateur de partage de temps par défaut utilisée pour le partage de temps normal.
Pour passer d’une politique à l’autre, nous utilisons la commande chrt, qui définit un processus avec un PID de 1091 pour utiliser SCHED_INFO désigné par l’indicateur -f
avec une priorité de 10.
chrt -f -p 10 1091
La commande ci-dessous définit le même processus PID 1091 à utiliser SCHED_OTHER indiqué par l’indicateur -o
.
chrt -0 -p 10 1091
Comment trouver et comprendre les journaux système Linux
Traditionnellement, les fichiers journaux système sont stockés dans le répertoire /var/log avec les autres fichiers journaux et leurs chemins d’accès aux fichiers de stockage sont ceux indiqués.
- /var/log/audit/audit.log – Stocke les événements SELinux
- /var/log/maillog – Stocke les messages liés au courrier
- /var/log/boot.log – Stocke les messages du journal de démarrage
- /var/log/secure – Stocke les journaux liés à l’authentification
- /var/log/cron – Stocke les journaux sur les tâches cron
- /var/log/httpd – Stocke les journaux concernant le serveur Web Apache
- /var/log/sssd – Stocke les journaux sur les services sssd
Pour afficher les fichiers journaux dans les systèmes systemd, utilisez la commande journalctl.
La commande journalctl interroge et affiche les journaux de journald, qui est un démon systemd qui collecte et stocke les données de journal. Il facilite le travail des administrateurs en ayant une vue d’ensemble des journaux pertinents du système.
journalctl
Pour afficher tous les journaux d’événements depuis le dernier démarrage, utilisez l’option -b
comme indiqué.
journalctl -b
Pour afficher tous les journaux d’événements auxquels vous avez participé aujourd’hui, utilisez la commande.
journalctl --since=today
Pour afficher les messages les plus récents, exécutez.
journalctl -f
Pour afficher le résumé du processus de démarrage, exécutez.
systemd-analyze
Pour afficher le temps passé par chaque processus au démarrage, exécutez la commande :
systemd-analyze-blame
Comment enregistrer les journaux système sous Linux
Dans le sous-thème précédent, vous avez pu avoir une vue des journaux système pertinents à l’aide de journalctl. Toutefois, par défaut, les journaux système ne survivent pas après un redémarrage.
Vous devez donc faire quelques ajustements pour permettre la préservation ou l’entreposage permanent des bûches.
Tout d’abord, créez un répertoire de journal dans /var/log.
mkdir /var/log/journal
Le seul inconvénient est qu’il peut prendre beaucoup d’espace sur votre disque dur.
Pour limiter l’utilisation de l’espace disque, vous devez modifier le fichier /etc/systemd/journald.conf.
vim /etc/systemd/journald.conf
Localisez l’attribut SystemMaxUse
et définissez l’utilisation maximale de l’espace disque. Dans ce cas, nous avons défini l’espace maximum à 100 Mo.
Ensuite, enregistrez les modifications et quittez le fichier de configuration.
Enfin, exécutez la commande ci-dessous pour que les modifications entrent en vigueur.
systemctl restart systemd-journald
Comment démarrer, arrêter, vérifier l’état des services réseau
Voyons maintenant comment gérer les services réseau.
Démarrage et arrêt d’un service
Pour démarrer et arrêter un service, par exemple SSH, utilisez la syntaxe :
systemctl start sshd.service
systemctl stop sshd.service
Vérification de l’état d’un service
Pour vérifier l’état d’un service, par exemple, pour vérifier si ssh est en cours d’exécution ou non, exécutez.
systemctl status sshd.service
Redémarrer ou recharger un service
Pour redémarrer un service, utilisez l’une des commandes suivantes :
systemctl restart name.service
systemctl try-restart name.service
systemctl reload name.service
Par exemple, pour redémarrer ssh, exécutez l’une des commandes.
systemctl restart sshd.service
Activer ou désactiver un service
Configurer un service de manière à ce qu’il démarre lors d’une exécution de démarrage du système.
systemctl enable service.name
Pour empêcher un service de démarrer automatiquement au démarrage, il suffit d’exécuter la commande :
systemctl disable service.name
Répertorier tous les services en cours d’exécution
Pour répertorier tous les services, exécutez la commande.
systemctl list-units --type service
Transfert sécurisé de fichiers entre systèmes Linux
Pour garder vos fichiers privés et confidentiels lorsque vous les envoyez d’un système à un autre, envisagez d’utiliser la commande scp. Abréviation de Secure Copy, la commande SCP s’appuie sur le protocole SSH pour chiffrer les fichiers pendant la transmission, gardant ainsi les intrus à distance.
La syntaxe est la suivante :
scp /path/to/file username@remote-IP address:/destination path
Par exemple, pour envoyer un fichier appelé linux_fundamentals à partir du répertoire de travail actuel à un système Linux distant dans le répertoire /tmp, exécutez la commande :
scp linux_fundamentals.pdf [email :/tmp
Vous serez invité à indiquer si vous souhaitez poursuivre la connexion ou non et à fournir le mot de passe du système distant. Par la suite, le fichier sera enregistré dans le répertoire spécifié sur le système distant.
Conclusion
Nous avons discuté des concepts et des compétences de base que tout administrateur système doit connaître afin d’exploiter et de gérer efficacement divers services et opérations en cours d’exécution.
Au fur et à mesure que nous avançons, nous espérons que ce guide vous a été bénéfique et qu’il vous mettra davantage au défi de devenir meilleur dans vos compétences en administration des systèmes.