Le compte root est réservé pour l’administration d’un poste Linux.
Il est important de ne jamais ouvrir un ordinateur en environnement graphique en utilisant le compte root.
En fait, on pourrait aller encore plus loin, l’utilisation du compte root devrait être limité au maximum. Lorsqu’on voudra administrer un poste de travail ou un serveur, que ce soit en mode console (CLI) ou en mode graphique (GUI), il est recommender d’utiliser un compte régulier (sans privilège administration). Chaque utilisateur à qui on voudra permettre d’administrer l’ordinateur Linux sera ajouté dans un groupe spécifique (nom du groupe dépend de la distribution) qui lui permettra de donner des commandes privilégiées en la faisant précéder par la commande sudo.
Par exemple,
systemctl start httpd
sera préfixé par sudo comme ceci:
sudo systemctl start httpd
Il y a plusieurs avantages à ceci:
Dans Alma Linux (ainsi que Fedora, RedHat et plusieurs autres), le groupe qui permet d’ajouter l’option sudo à ses utilisateurs est “wheel”, alors que d’autres distributions utiliseront le groupe “sudo”.
La commande pour ajouter l’usager “alain” dans le groupe wheel est:
su - (pour ouvrir un “shell” et obtenir le privilège root)
usermod -aG wheel alain (pour ajouter alain dans le groupe wheel)
exit (pour quitter ce shell root)
Une fois le groupe ajouter, dépendant de la distribution, on doit reconnecter l’utilisateur ou encore redémarrer l’ordinateur. Il est également possible de forcer l’utilisation de ce nouveau groupe dans la même fenêtre en utilisant la commande
newgrp wheel
Les commandes ls* s’avèrent utiles afin de mieux connaître les capacités physiques et logicielles de base.
La commande lscpu rassemble des informations sur l’architecture du processeur à partir de sysfs et de /proc/cpuinfo.
Les informations incluent, par exemple, le nombre de CPU, threads, cœurs, sockets et nœuds NUMA (Non-Uniform Memory Access).
Elle affiche également des informations sur les caches CPU et le partage de cache, la famille, le modèle du processeur, etc.
La commande lsmem répertorie les étendues de mémoire disponibles. Les blocs de mémoire répertoriés correspondent à la représentation des blocs de mémoire dans sysfs. La commande affiche également la taille du bloc de mémoire et la quantité de mémoire en état en ligne et hors ligne.
Les colonnes affichées sont :
Total: Mémoire installée totale (MemTotal et SwapTotal dans /proc/meminfo).
Used (utilisée) : Mémoire utilisée par le système (calculée comme total - libre - tampons - cache).
Free (libre): Mémoire inutilisée par le système (MemFree et SwapFree dans /proc/meminfo).
Shared (partagée) : Mémoire partagée utilisée (principalement) par tmpfs (Shmem dans /proc/meminfo).
Buffers (tampons) : Mémoire utilisée par les tampons du noyau (tampons dans /proc/meminfo).
Astuce: La commande free avec l’option -m affiche la sortie en Mo et l’option -g en Go.
lsmod est un utilitaire qui permet d’afficher la liste des modules du répertoire /proc/, montrant quels modules du noyau sont actuellement chargés.
La commande lsblk répertorie les informations sur tous les périphériques de bloc disponibles ou spécifiés.
La commande lsblk lit le système de fichiers sysfs et udev db afin de recueillir ses informations.
La commande affiche tous les périphériques de bloc (sauf les disques RAM) sous forme d’arborescence par défaut.
Les commandes internes sont livrées par l’interpréteur de commandes directement (comme par exemple bash), comme une primitive. Elles sont disponibles à tout moment pour un utilisateur du système.
Les commandes externes ne sont pas fournies par l’interpréteur de commandes. Elles sont généralement présentes sur le système sous la forme d’un fichier binaire compilé ou d’un fichier disposant des droits d’exécution (comme un script).
Il est possible de connaître le type de commandes à l’aide de type:
type cd permet de connaître si cd est une commande interne (une primitive du shell)
type id
type ls
L’interpréteur de commandes bash peut accéder aux commandes externes en utilisant la variable d’environnement PATH qui indique les chemins à parcourir sur l’arborescence des disques afin de trouver ces commandes.
Pour afficher le contenu de la variable PATH on peut utiliser la commande echo, comme ceci:
echo $PATH en préfixant le nom de la variable, ici PATH par le $
La commande file permet d’obtenir des informations sur le contenu d’un fichier. Elle permet de savoir la source d’un fichier et/ou du binaire qui l’a créé. Elle peut s’avérer utile si on possède un fichier dont le type de contenu est inconnu ou lorsque l’on a des doutes quant au contenu de ce fichier.
Par exemple,
file toto.txt
file nomFichier
La commande stat affiche des informations sur un fichier. Elle permet d’obtenir :
La commande man permet d’afficher les pages du manuel d’utilisation d’une commande. Par exemple, man ls permet d’afficher le manuel d’utilisation de la commande ls, alors que man man permet d’afficher le manuel d’utilisation de l’aide (ou de man).
Une autre façon de consulter la documentation d’une commande est de faire suivre la commande en question par l’option –help. Par exemple, pour avoir la documentation de la commande ls, on peut faire ls –help
La commande apropos commande permet d’afficher des informations sur une commande.
La commande history est un outil intégré à l’interpréteur de commandes (shell) qui affiche une liste des commandes utilisées dans la session du terminal. Cette commande permet de réutiliser toute commande listée sans à avoir à la saisir à nouveau. L’utilisation de la commande history sans options ni argument permet d’afficher la liste des dernières commandes.
Pour exécuter une commande afficher dans la liste obtenue par history on peut taper l’instruction
!chiffre par exemple !25 permet d’exécuter la commande 25 de l’historique des commandes.
!! permet de répéter la dernière commande.
!chaine permet de chercher dans l’historique des commandes (en partant de la dernière et en remontant) la commande qui commence par chaine par exemple !syst trouvera la commande qui commence par syst et l’exécutera. (le raccourci clavier ctrl-r sert à effectuer une recherche dans l’historique des commandes)
!?chaine permet de chercher dans l’historique des commandes la dernière commande qui contient la chaine (pas nécessairement en début de ligne)