Administration Réseaux & Scripting 1 - Copie - Part Suite
Administration Réseaux & Scripting 1 - Copie - Part Suite
Multiutilisateurs: plusieurs
Multitâche: exécution simultanée utilisateurs de travailler à partir
de plusieurs programmes. de plusieurs terminaux (écran et
clavier) sur un seul ordinateur.
Une distribution Linux est un ensemble cohérent de logiciels assemblés autour du noyau Linux
et prêt à être installé. Il existe des distributions associatives ou communautaires (Debian,
CentOS) ou commerciales (RedHat, Ubuntu).
SYSTEMD
BIOS MBR GRUB KERNEL
/INIT
BIOS
Activation d'une
partition comme
partition de
démarrage.
Chargement de noyau
Grub - décompression
7. Lancement du Kernel
– Activation de la mémoire
– Initialisation des pages/tables mémoire
– Détection CPU
– Initialisation de la prise en compte hardware
SYSTEMD
/INIT
8. Initialisation FS:
Montage de Root FS
PID=1 init
PID=0 scheduler (ordonnancement des processus)
9. Extraction du systemd: vous pouvez voir l’ensemble des fichiers dans /usr/bin/systemd ou
/usr/lib/systemd/system
10. Init historique:
Nom serveur
Timezone
Check disk
Montage FS
Suppression fichier tmp
Configuration interfaces réseau
Démarrage démons et réseau
Processus init
Le lancement du système commence par le boot-> init, une fois que le chargement du noyau en
mémoire est achevé, il lance le premier processus : /bin/init. L’init est considéré comme le père
de tous les processus qui seront créés après par l’appel system fork().
• Quel fichier sera exécuté à un instant donné pour assurer le chargement du système ?
• Quel est le runlevel, c’est-à-dire le niveau d'exécution par défaut ?
• Comment effectuer le lancement des services pour un runlevel donné?
Services et Démons
Un daemon (ou "démon« (en anglais daemons ou encore «Deferred Auxiliary Executive
Monitor»). ) est un processus en arrière-plan sous Linux qui fonctionne sans interface
utilisateur. Il est souvent lancé au démarrage et tourne en continu pour gérer des
services comme le réseau, les logs, ou la planification des tâches.
■ Le chargement des modules dans le noyau (gestion des périphériques).
Les opérations de maintenance, diagnostics, modifications de logiciels, etc., nécessitent parfois l’arrêt du
système. Cet arrêt peut être planifié, périodique ou impromptu et demander une réactivité immédiate.
Tous les systèmes Unix, y compris ceux fonctionnant sur PC doivent être mis hors service en utilisant les
commandes décrites dans cette section. Ceci garantit l’intégrité du disque et la terminaison propre des
différents services du système. Arrêt programmé du système :
• utilisateurs prévenus de l’arrêt ;
• intégrité des systèmes de fichiers assurée ;
• est arrêté ;
• est redémarré.
Commandes de mise hors service :
• shutdown: La commande shutdown éteint le système;
• halt: provoque un arrêt immédiat du système;
• reboot: provoque un redémarrage immédiat du système .
Résumé
SYSTEMD
BIOS MBR GRUB KERNEL
/INIT
■ Sh, le shell aux normes POSIX : Utilisé pour les scripts basiques avec une syntaxe
minimale pour assurer la portabilité avec les différents distribution Linux.
Let’s Practice
■ csh, shell orienté commandes en C : inspiré du langage C, ce shell est orienté vers
les développeurs et facilite la manipulation de boucles et conditions en C
Let’s Practice
1. Exercice pour sh (Shell POSIX)
■ Créer un script « Welcome.sh » portable qui affiche un message de bienvenue avec le nom
de l'utilisateur connecté.
■ Sauvegardez le fichier.
■ Rendez-le exécutable
■ Exécuter le script.
Shell
■ bash, Bourne Again Shell, shell de Linux : Utilisé largement dans les scripts
d’administration système
Let’s Practice
Option courtes
Regroupement d’options
~/test/
│
└── linux/
├── fichier1.txt
├── fichier2.txt
Filtres sur les fichiers (Globbing & Redirections)
Globbing:
Définition: C'est une méthode utilisée par le shell pour faire correspondre plusieurs fichiers en utilisant
des caractères spéciaux :
Pour afficher que les lignes en double ou plus et supprime celles qui apparaissent une seule fois.-D :
La commande uniq
Sans argument, la commande uniq ne va pas afficher les lignes identiques qui se suivent du fichier
prenoms.txt :
Pour n’afficher que les lignes n’apparaissant qu’une seule fois, il faut utiliser l’option -u :
La commande uniq
Enfin, pour compter le nombre d’occurrences de chaque ligne, il faut utiliser l’option -c :
La commande xargs
La commande xargs est un utilitaire sous Linux qui permet de construire et d'exécuter des lignes de
commandes à partir de l'entrée standard. Elle est souvent utilisée pour passer des arguments à
d'autres commandes, surtout lorsqu'il y a un grand nombre d'arguments ou lorsque les arguments
contiennent des espaces.
21/11/2024 61
La commande awk
Exemple:
Afficher des colonnes spécifiques :
awk '{print $1, $3}' fichier.txt #afficher 1, 2 ligne
Rechercher et afficher des lignes contenant un motif :
awk '/success/' fichier.txt #afficher la ligne contenant success
Spécifier un séparateur de champs :
awk -F',' '{print $1, $2}' fichier.csv #option –F pour les séparation ‘,’
Utiliser des conditions :
awk '{if ($3 > 50) print $1, $2}' fichier.txt # lignes où val de la 3ème colonne>50
Calculer la somme d'une colonne :
awk '{somme += $2} END {print somme}' fichier.txt #somme des val de la 2ème colonne
Afficher une ligne spécifique:
awk 'NR == 5' fichier.txt #afficher 5ème ligne
21/11/2024 62
La commande awk
fichier.txt
Formater la sortie :
awk '{printf "Nom: %-10s Âge: %-3s\n", $1, $2}' fichier.txt
21/11/2024 63
Récap:
Option Description Exemple
-F Définit le séparateur de champs dans le fichier (par awk -F',' '{print $1, $2}' fichier.csv
'séparateur' défaut : espace ou tabulation).
print Affiche les champs ou toute la ligne. awk '{print $1, $3}' fichier.txt
/motif/ Rechercher les lignes contenant un motif spécifique awk '/motif/' fichier.txt
(supporte les expressions régulières).
NR Numéro actuel de la ligne en cours de traitement. awk 'NR == 5' fichier.txt
$n Représente le nᵉ champ d'une ligne. awk '{print $2}' fichier.txt
BEGIN Exécute une action avant de lire le fichier. awk 'BEGIN {print "Début"} {print
{action} $1}' fichier.txt
END Exécute une action après avoir lu tout le fichier. awk 'END {print "Fin du fichier"}'
{action} fichier.txt
if (condition) Ajoute une condition pour traiter ou afficher des awk '{if ($3 > 50) print $1}'
données. fichier.txt
Relational Opérateurs de comparaison : <, <=, ==, !=, >=, > awk '{if ($1 == "Nom") print $2}'
Operators fichier.txt
21/11/2024 64
Récap:
Option Description Exemple
Logical Opérateurs logiques : && (et), || (ou), ! (non). awk '{if ($2 > 10 && $3 < 20) print $0}'
Operators fichier.txt
somme += $n Effectue des calculs sur les champs d'une colonne (ici, somme awk '{somme += $2} END {print somme}'
cumulée). fichier.txt
length($n) Renvoie la longueur d'un champ ou d'une chaîne de caractères. awk '{print $1, length($1)}' fichier.txt
printf Permet de formater l'affichage des données (similaire à printf en awk '{printf "Nom: %-10s Age: %3d\n",
C). $1, $2}' fichier.txt
substr($n, start, Extrait une sous-chaîne d'un champ. awk '{print substr($1, 1, 3)}' fichier.txt
length)
match($n, Recherche un motif dans un champ et renvoie l'index de départ. awk '{if (match($1, "abc")) print $1}'
"motif") fichier.txt
ORS / OFS Définit les séparateurs de sortie (par défaut : \n pour ORS, awk 'BEGIN {OFS=";"} {print $1, $2}'
espace pour OFS). fichier.txt
getline Lit la prochaine ligne ou entrée, souvent utilisé dans des awk '{getline nextline; print $1, nextline}'
conditions complexes. fichier.txt
Exercice:
Tout d’abord, crée un dossier de travail et un fichier contenant du texte
/home/utilisateur/
└── test_shell/
Ajoute du texte dans un fichier data.txt avec des lignes dupliquées
Éditeur de texte VI
Éditeur de texte VI
Visual (VI) est un éditeur de texte très populaire sous Linux malgré une ergonomie qui semble limitée.
C’est en effet un éditeur entièrement en mode texte : chacune des actions se faisant avec une touche du
clavier ou des commandes dédiées.
Ses fonctionnalités sont :
• Insertion, suppression, modification de texte ;
• Copie de mots, lignes ou blocs de texte ;
• Recherche et remplacement de caractères.
Les commandes
L'option -c de la commande vi permet d'exécuter une commande directement après l'ouverture d'un fichier.
Exemple:
Dans cette exemple il va ouvrir le fichier prenom.txt et ce positionner directement à la ligne ou ce trouve le mot « Xavier »
Exemple
Avant: Après:
L’éditeur vim reprend l’interface et les fonctions de VI avec de nombreuses améliorations. Parmi ces
améliorations, l’utilisateur dispose de la coloration syntaxique, très utile pour éditer des scripts shell.
Pour sortir de VI, il faut, depuis le mode Commandes, taper sur : puis saisir :
• q pour sortir sans sauvegarder ;
• w pour enregistrer son travail ;
• wq ou x pour sortir et sauvegarder.
Pour forcer la sortie sans confirmation, il faut ajouter ! aux commandes précédentes.
N.B: Il n’y a pas de sauvegarde automatique, il faut donc penser à sauvegarder son travail régulièrement.
Mode opératoire
Dans VI, il existe 3 modes de travail :
Le mode Commandes:
C’est le mode par défaut au démarrage de VI. Pour y accéder à partir d’un des autres modes, il suffit de
taper sur la touche ECHAP. Toutes les saisies sont interprétées comme des commandes et les actions
correspondantes sont exécutées. Ce sont essentiellement des commandes permettant la modification de
texte (copier, coller, …).
Le mode Insertion:
C’est le mode de modification du texte. Pour y accéder à partir du mode Commandes, il faut taper sur des
touches particulières qui effectueront une action en plus de changer de mode. La saisie du texte ne
s’effectue pas directement sur le fichier mais dans une zone tampon de la mémoire. Les modifications ne
sont effectives que lors de l’enregistrement du fichier.
Le mode Ex:
C’est le mode de modification du fichier. Pour y accéder, il faut d’abord passer en mode Commandes, puis
saisir la commande Ex commençant fréquemment par le caractère :. La commande est validée en appuyant
sur la touche ENTREE.
Déplacer le curseur
En mode Commandes, il existe plusieurs façons de déplacer le curseur. La souris n’étant pas active, il est
possible de le déplacer caractère par caractère, mais des raccourcis existent pour aller plus vite. VI reste en
mode Commandes après le déplacement du curseur. Le curseur est placé sous le caractère désiré.
Cmd
G
Déplacer le curseur Description
Déplace le curseur à la dernière ligne du
Exemple
Appuyer sur 'G' amènera le curseur à la fin du document.
fichier.
gg Déplace le curseur à la première ligne du Appuyer sur 'gg' amènera le curseur au début du document.
fichier.
:n Déplace le curseur à la ligne `n` (remplacez Pour aller à la ligne 10, tapez ':10' puis appuyez sur 'Entrée'.
`n` par le numéro de ligne).
Ctrl + f Avance d'une page. Appuyer sur 'Ctrl + f' fera défiler le document d'une page vers le bas.
Ctrl + b Recule d'une page. Appuyer sur 'Ctrl + b' fera défiler le document d'une page vers le haut.
Ctrl + d Avance de la moitié d'une page. Appuyer sur 'Ctrl + d' fera défiler le document de la moitié de la page
vers le bas.
Ctrl + u Recule de la moitié d'une page. Appuyer sur 'Ctrl + u' fera défiler le document de la moitié de la page
vers le haut.
$ Déplace le curseur à la fin de la ligne. Si le curseur est au début de la ligne, appuyer sur '$' déplacera le
curseur à la fin de cette ligne.
0 Déplace le curseur au début de la ligne. Appuyer sur '0' amènera le curseur au début de la ligne courante.
^ Déplace le curseur au premier caractère Si la ligne commence par des espaces, appuyer sur '^' déplacera le
non vide de la ligne. curseur au premier caractère.
Cmd
h
Déplacer le curseurSi le curseur est sur le 'e' dans 'exemple', appuyer sur 'h'
Description
Déplace le curseur vers la gauche
Exemple
Définition: Un inode (Index Node) est une structure de données utilisée par le système de fichiers
Linux pour stocker des informations sur un fichier.
Chaque fichier a un inode qui contient :
L’identifiant unique du fichier.
Les permissions et le propriétaire.
La taille du fichier.
La date de création/modification.
L’emplacement sur le disque.
Types de fichiers
Comme dans tout système, afin de pouvoir se retrouver dans l’arborescence et la gestion des fichiers, il
est important de respecter des règles de nommage des fichiers.
• Les fichiers sont codés sur 255 caractères ;
• Tous les caractères ASCII sont utilisables ;
• Les majuscules et minuscules sont différenciées ;
• Pas de notion d’extension.
Détails du nom d’un fichier:
Types de fichiers
• Ce sont des fichiers textes, programmes (sources), exécutables
(après compilation) ou fichiers de données (binaires, ASCII) et
Ordinaires
multimédias
Un lien symbolique vers un fichier ou un répertoire crée un nouvel inode qui pointe vers le même bloc de
données.
ln -s fichier1.txt fichier4.txt
N.B:
Lien physique : même inode = même fichier. Supprimer l’original ne supprime pas les liens.
Lien symbolique : pointeur vers le fichier d’origine. Supprimer l’original rend le lien cassé.
Attributs des fichiers
Linux est système d’exploitation multi-utilisateurs où l’accès aux fichiers est contrôlé. Ces contrôles
sont fonctions :
• Des permissions d’accès au fichier ;
• Des utilisateurs (ugo)
Il existe 4 droits d’accès aux fichiers :
• read (lecture) ;
• write (écriture) ;
• execution (exécution) ;
• - aucun droit.
Les types d’utilisateurs associés aux droits d’accès des fichiers sont :
• user (propriétaire) ;
• group (groupe propriétaire) ;
• others (les autres) ;
Attributs des fichiers
Gestion des attributs
L’affichage des droits se fait à l’aide de la commande ls -l
Droit 777
TP 4
Gestion de fichiers
Gestion des groupes
Toute entité (personne physique ou programme particulier) devant interagir avec un système UNIX
est authentifié sur cette machine par un utilisateur ou user. Ceci permet d'identifier un acteur sur un
système UNIX. Un utilisateur est reconnu par un nom unique et un numéro unique (la
correspondance nom/numéro est stockée dans le fichier /etc/passwd). Chaque utilisateur est
membre d’au moins un groupe : c’est son groupe principal.
Fichiers important a savoir:
Fichier /etc/group : contient les informations de groupes (séparées par :).
Fichier /etc/gshadow : contient les informations de sécurité sur les groupes (séparées par :)
Gestion des utilisateurs
• /etc/passwd
• /etc/shadow
Commandes usuelles pour les utilisateurs
su:
Définition: su (substitute user ou switch user) est une commande Unix permettant d’exécuter un
interpréteur de commandes en changeant d’identifiant de GID et de UID.
N.B: Cette commande est surtout utilisée pour obtenir les privilèges d’administration à partir d’une session
d’utilisateur normal, c’est-à-dire, non privilégiée.
Programme sudo
Définition: sudo (abréviation de substitute user do, en anglais : «exécuter en se substituant à l’utilisateur») est
une commande qui permet à l’administrateur système d’accorder à certains utilisateurs (ou groupes
d’utilisateurs) la possibilité de lancer une commande en tant qu’administrateur, ou comme autre utilisateur, tout
en conservant une trace des commandes saisies et des arguments
- Visudo: configuration au niveau de ce fichier permet un utilisateur de devenir “sudoer”.
Commande chown/chgrp:
• Chown: est un appel système et une commande LINUX nécessitant les droits de root pour changer le
propriétaire d’un fichier ou dossier (de l’anglais change the owner).
• Chgrp: Permet de changer le groupe d’utilisateur possédant un fichier ou un dossier. Contrairement à chown la
commande n’est pas réservée au super-utilisateur, le propriétaire peut aussi effectuer un changement de
groupe s’il fait partie du groupe de destination.
Changer le propriétaire et groupe d’un fichier
Exemple:
Par exemple si on veut attribuer l’utilisateur milou et le groupe tintin au fichier myfile.txt
Les droits: À chaque fichier est associée une liste de permissions qui déterminent ce que chaque utilisateur a le
droit de faire du fichier(r,w,x).
Umask est un masque de création de fichier qu’il faut soustraire des permissions standards pour obtenir les
droits de tout nouveau fichier ou dossier créé par l’utilisateur.
Chmod est la commande qui permet de changer les permissions des fichiers et des dossiers.
Les commandes les plus utilisées pour la gestion des utilisateurs et des groupes:
• Créer un nouvel utilisateur avec useradd
• Définir un mot de passe avec passwd
• Créer de nouveaux groupes groupadd
• Ajouter un utilisateur à un groupe gpasswd
• Modifier les paramètres utilisateur et groupe Verrouiller un compte man usermod
• Lister les information sur l’expiration du mot de passe chage -l utilisateur
• Supprimer un compte et un groupe userdel
N.B: Pour toutes ces opérations vous devez disposer des droits root.
Gestionnaires de paquets
Un gestionnaire de paquets est un (ou plusieurs) outil(s) automatisant le processus d’installation,
désinstallation, mise à jour de logiciels installés sur un système informatique.
Un paquet est une archive comprenant les fichiers informatiques, les informations et procédures nécessaires à
l’installation d’un logiciel sur un système d’exploitation, en s’assurant de la cohérence fonctionnelle du système
ainsi modifié. Il permet de :
• Installation, mise à jour, et désinstallation ;
• Utilisation des paquets provenant de supports variés (CD d’installation, dépôts sur internet, partage
réseau, etc.) ;
• Vérification des sommes de contrôle de chaque paquet récupéré pour en vérifier l’intégrité ;
• Vérification des dépendances logicielles afin d’obtenir une version fonctionnelle d’un paquetage
On trouve deux grands types de système de paquets selon les grandes familles de distributions Linux :
Dpkg: Est utilisé pour installer, supprimer et fournir des informations à propos des paquets *.deb qui sont
supportés par les distributions basées Debian. C’est un outil de bas niveau, dpkg -i , dpkg -r permettent
d’installer ou de désinstaller des fichiers .deb. Pour ces tâches, on préfère utiliser des outils plus avancés
comme apt-get
Rpm: est l’autre système de base. Il permet d’installer, mettre à jour, désinstaller, vérifier et rechercher des
paquets, avec les droits de l’utilisateur root
Dpkg
rmp