ESR

Partiel 2022 ESR Première Session

Partiel 2022 ESR Première Session

Partiel 2022 ESR Première Session

Proposition de correction partiel 2022 ESR Première Session

Exercice 1 : COURS

Question 1 :

Expliquer comment est créé un processus dans Linux

Réponse 1 :

Un processus est créé avec un PID à partir d'un PPID. Il peut passer par différents états. On fait un fork pour créer un processus dans Linux.

Question 2 :

Comment est-il possible de changer le shell de conenxion d'un utilisateur? L'utilisateur a-t-il accès à ce réglage ?

Réponse 2 :

En éditant le fichier /etc/passwd mais il faut avoir les droits root. Pour changer le shell par défaut de son utilisateur linux on peut utiliser $chsh.

Voir ici

Question 3 :

Quel est le rôle du fichier /etc/profile ?

Réponse 3 :

C'est un script qui se lance à chaque nouvelle connexion d'un utilisateur. Si je modifie le /etc/profile.d et que j'y rajoute un echo "Hello" si je fais un su - alice lors d ela conenxion d'alice on aura un Hello qui s'affichera à l'écran.

Exercice 2 : ECRITURE DE COMMANDES

Question 1 :

Donner une commande qui copie tous les fichiers du répertoire d'accueil de l'utilisateur Durand dont le nom commence par "facture" dans le sous répertoire Charge de cet utilisateur. On suppose que le sous-répertoire Charge existe.

Réponse 1 :

Question 2 :

Donner une commande qui attribue les droits d'exécution pour les autres à tous les fichiers de l'utilisateur Dupond qui ont pour groupe "master"

Réponse 2 :

Question 3 :

Donner une commande qui affiche les utilisateurs dont le groupe principal a pour gid : 1022.

Réponse 3 :

Question 4 :

Donner une commande qui compte le nombre d'utilisateurs dont le groupe principal a pour gid : 1022

Réponse 4 :

Question 5 :

Donner une commande qui trie les lignes d’un fichier de type carnet d’adresses (de nom carnet) sur le champs “”nom“ et affiche les 15 premières lignes triées. Nous supposons que les différents champs de chaque ligne du fichier carnet sont séparés par des espaces, que le premier champs de chaque ligne contient le nom et que le fichier carnet est stocké dans le répertoire courant.

Réponse 5 :

Exercice 3 : Interprétation de script shell

Commenter ligne par ligne le script bash ci-dessous (en utilisant les numéros de lignes), puis résumer sa fonction en quelques lignes. Pour vous aider dans votre démarche, vous proposerez un nom parlant pour chacune des variables utilisées.

A la ligne 2 on teste si $1 est un répertoire.
$1 étant le premier paramètre passé par la fonction.
Ligne 3: On incrément la variable TD
Ligne 5: Pour chaque fichier dans le répertoire
Ligne 6 : Si le fichier existe
Ligne 7: On exécute la fonction func2 avec $f comme paramètre.
Ligne 10 si $1 n'était pas un répertoire alors on teste si le fichier existe et est exécutable.
Ligne 11: On incrémente la variable TE
Ligne 13: Sinon on incrémente la variable TF
Ligne 17: on déclare des variables dont D= $1
Ligne 19: On exécute la fonction func2 avec comme paramètre $D
Ligne 21: On affiche la valeur de TD
Ligne 22: On affiche la valeur de la variable TE
Ligne 23: On affiche la valur de la variable de TF.

Exercice 4 : Ecriture de Script shell

Dans cet exercice, nous vous demandons d’écrire des scripts shell permettant de gérer une “cor-beille“ depuis un terminal.

Question 1 : Nettoyage de la corbeille

Écrire le shell script ~/Corbeille/nettoyage.sh qui va effacer de la corbeille tous les fichiers qui ont plus de 30 jours.
Ce script doit :
1. créer le répertoire ~/Corbeille/fichiers/ si il n’existe pas encore,
2. effacer tout les fichiers du répertoire ~/Corbeille/fichiers/ qui ont plus de 30 jours.

Réponse 1 : (0.25 car erreurs)

if[ -d ~/Corbeille/fichiers] ; then
cd ~/Corbeille/fichiers/ ;
find -ctime 30 | rm
else
mkdir ~/Corbeille/fichiers/
fi

Réponse 2 (0.25 car partie illisible):

if[ $@ -ne 1 ]; then
echo "Une seul paramètre unique";
exit 1;
elif[ -d $1 ]
echo "Fichier uniquement";
exit(2);
else
if [! find ~/Corbeille/fichiers/ -name $1]; then
mv $1 ~/Corbeille/fichiers/
./~/Corbeille/nettoyage.sh
mv $1 $(date-$file $1--
else
echo "Ficheir déjà présent";
exit(3);
fi
fi

Réponse 3 :

Exercice 5 : Mise en place du réseau d’un institut de recherche (3/5)

Questions

Comme base de découpage, on propose l’une des trois plages réseaux suivantes : 12.0.0.0, 164.20.0.0 et 194.42.10.0

1. Qu’est-ce que ces trois plages réseaux ont en commun ? Que cela implique-t-il en terme d’utilisation ? (0/0.5)

2. À quelle classe chacune de ces plages appartient-elle ? (0.5/0.5)

La plage réseau 12.0.0.0 est de classe A.
La plage réseau 164.20.0.0 est de classe B.
La plage réseau 190.42.10.0 est de classe C.

3. Quelle plage sera-t-il préférable de retenir pour notre solution ? Justifier. (0.5/0.5)

Il est préférable de retenir la classe B donc la plage réseau 164.20.0.0 car on aura besoin de plus de 254 adresses et de moins de 4500 adresses.
Pour SR1 on a besoin de 31+2+1=64 adresses.
Pour SR2 on a besoin de 240+2+1=243 adresses
Pour SR3 on a besoin de 63+2+1=66 adresses.

Soit 343 ce qui ets trop pour une plage réseau de classe C n epouvant contenir que 254 adresses. On retient donc la plage réseau de classe B qui peut stocker jusqu'à 45000 adresses. On aurait pu aussi retenir la plage réseau de classe A mais on ne veut pas stocker plus de 2 millions d'adresses et dans l'énoncé on souhaite un découpage au plus juste. On retient donc la plage d'adresse réseau de classe B (164.20.0.0).

4. Combien de sous-réseaux seront-ils nécessaires, en comptant les interconnexions entre bâti-ments ? Justifier. (0.75/1)

3 sous réseaux seront nécessaires.
En effet, il suffit juste de rajouter 2 adresses réseaux dans chaque batiment pour les routeurs de chaque batiment permettant ainsi l'interconnexion des batiments. On a donc:
SR1= 31+2+1+3=37 donc 1 sous réseau (- de 255)
SR2= 240+2+1+3=246 donc 1 sous réseau (- de 255)
SR3 = 63+2+1+3=69 donc 1 sous résau (- de 255).
IL MANQUE L'EQUIPEMENT COMMUN ET L'INTERCONNEXION

5. Quelle sera la taille de chaque sous-réseau ? Préciser votre méthode de calcul. (0.75/1)

SR1= 37 adresses. La puissance de 2 supérieur est 2 puissance 6. La taille du sous réseau SR1 est de 64 adresses.

SR2= 246 adresses. La puissance de 2 supérieur est 2 puissance 8 (256). La taille du sous réseau SR2 est de 256 adresses.

SR3= 66 adresses. La puissance de 2 supérieur est 2 puissance 7 (128). La taille du sous réseau SR3 est de 128 adresses.

6. Effectuer le découpage du réseau privé retenu à la troisième question de l’exercice :
— Détailler l’ensemble de la procédure utilisée.
— Donner la liste des sous-réseaux obtenus et leurs paramètres : adresse de réseau, masque
en décimal et en notation CIDR, nombre d’adresses, nombre total de machines, adresse
de la passerelle, adresse de broadcast, dernière adresse utilisée.

Rappel: SR1=34 adresses. SR2= 243 adresses. SR3= 66 adresses 164.20.0.0 Plages d'adresses réseaux obtenues. On commence par les sous réseaux ayant le plus de machines SR2

SR2
Adresse de réseau: 164.20.0.0
Masque (décimal): 255.255.0.0 (erreur c'est 255.255.255.0)
Masque CIDR : 23 car 11111111.11111111.11111101.00000000
Nombres adresse: 243 (240 machines + adresse réseau + 2 adresses réservées)
Nombre machines: 240
Adresse passerelle : 164.20.0.254
Adresse broadcast: 164.20.0.0.255
Dernière adresse utilisée: 164.20.0.253

SR3
Adresse de réseau: 164.20.1.0
Masque (décimal): 255.255.254.0 (erreur c'est 255.255.255.158)
Masque CIDR : 23 car 11111111.11111111.00100010.00000000
Nombres adresse: 66 (63 machines + adresse réseau + 2 adresses réservées)
Nombre machines: 63
Adresse passerelle : 164.20.0.254 (erreur c'est 164.20.1.126)
Adresse broadcast: 164.20.0.0.255 (erreur c'est 164.20.0.0.127)
Dernière adresse utilisée: 164.20.1.253

SR1
Adresse de réseau: 164.20.2.0 (erreur c'est 164.20.1.128)
Masque (décimal): 255.255.0.0 (erreur)
Masque CIDR : 23 car 11111111.11111111.11111101.00000000
Nombres adresse: 66 (63 machines + adresse réseau + 2 adresses réservées)
Nombre machines: 63
Adresse passerelle : 164.20.2.254 (erreur)
Adresse broadcast: 164.20.2.255 (erreur)
Dernière adresse utilisée: 164.20.2.253 (erreur)

Vu que chaque sous réseaucontient moins de 254 adresses, on incrément 164.20.0.0 de 1 pour chaque sous réseau.

Adresse passerelle est une adresse réservée à 164.20.0.254.
Adresse broadcast est une adresse réservée à 164.20.0.255.
La dernière adresse utilisée est donc avant ces deux dernières soit 164.20.0.253.
L'adresse réseau à l'emplacement 164.20.0.0.
On incrément de 1 pour chaque sous réseau.

Partiel 2021 ESR Deuxieme session

Partiel 2021 ESR Deuxieme session

Partiel 2021 ESR Deuxieme session

Proposition de correction partiel 2021 ESR Deuxieme Session

Exercice 1 : Ecriture de commandes

Créer dans votre répertoire d'accueil (/homr/user) un répertoire repNom où Nom est remplacé par votre nom.

exo1q1

Utilisation de la commande mkdir pour la création du répertoire.

La commande pwd permet d'afficher le chemin d'accès vers le répertoire où se situe l'utilisateur qui a entré la commande. Si un utilisateur se trouve dans le répertoire "/home/utilisateur" la commande pwd lui retournera : "/home/utilisateur"

Question 2 : Créer dans le répertoire repNom deux répertoires Exercice1Nom et Exercice2Nom où Nom est remplacé par votre nom.
exo1q2

Utilisation de la commande mkdir pour la création de répertoire et de la commande cd pour se positionner dans le bon répertoire

Question 3 : Créer dans le répertoire Exercice1Nom deux fichiers vides infoNom et contenuRepNom où Nom est remplacé par votre nom.

exo1q3

On utilise la commande touch pour créer des fichiers vides

Question 4 : 1. Afficher le contenu détaillé du répertoire Exercice1Nom.

exo1q4

On utilise la commande ls -l pour afficher le contneu détaillé d'un répertoire

Question 4 : 2. Ecrire le contenu détaillé du répertoire Exercice1Nom dans le fichier contenuRepNom, la première ligne du fichier doit contenir le nombre total de block occupés par la liste de fichiers.

exo1q4p2

Utilisation de la commande > pour re-directionner la série standard d’une commande sur un fichier

Question 4 : 3. Afficher le contenu du fichier contenuRepNom sans la première ligne.

exo1q4p3

Utilisation de la commande tail -n +2 pour afficher un fichier à partir de sa deuxième ligne

Question 4 : 4. Ecrire le contenu du fichier contenuRepNom sans la première ligne dans un fichier temporaire tmpNom.

exo1q4p4

Utilisation de la commande tail -n +2 pour afficher un fichier à partir de sa deuxième ligne et de la commande > pour re-directionner la série standard d’une commande sur un fichier

Question 4 : 5. Remplacer le contenu du fichier contenuRepNom par le contenu du fichier temporaire tmpNom.

exo1q4p5

Utilisation de la commande cat pour afficher le contenu d’un fichier et de de la commande > pour re-directionner la série standard d’une commande sur un fichier

Question 4 : 6. Supprimer le fichier temporaire tmpNom.

exo1q4p6

Utilisation de la commande rm pour supprimer un fichier

Question 4 : 7. En utilisant le contenu du fichier contenuRepNom, afficher le nombre total de fichiers/répertoires du répertoire Exercice1Nom.

exo1q4p7

Utilisation de la commande wc -l qui compte le nombre de lignes d’un fichier, appliquée au fichier contenuRepNom qui contient le contenu du répertoire

Question 5:

Ecrire un shell script script1Nom qui recopie chaque ligne du fichier contenuRepNom dans le fichier infoNom en ajoutant à la suite de chaque ligne :

1. “”F“ s’il s’agit d’un fichier ou “”R“” s’il s’agit d’un répertoire.

2. la taille du fichier (répertoire).

Le script script1Nom est sauvegardé dans le répertoire Exercice1Nom.

exo1q5script exo1q5rep

Partiel 2020 ESR Première session

Partiel 2020 ESR Première session

Partiel 2020 ESR Première session

Question 1 : Comment sont déterminés les droits d’exécution d’un processus ? Justifier votre réponse à l’aide d’un exemple.

Les droits du processus sont détemrinés par l'utilisateur qui a lancé le processus et son groupe.

Question 2 : Qu’est-ce qu’une variable d’environnement, donner sa principale particularité. Citez deux variables d’environnement.

Les variables d'environnement sont définies par le système. Toutes ces variables sont utilisables dans les fichiers de commandes et en ligne de commande.

Ces variables prédéfinies n’ont pas besoin d’être exportées, elles sont transmises automatiquent aux processus fils.

Les commandes env et printenv listent les variables d’environnement et celles exportées avec la commande export.

HOME et PWD sont deux exemplles de variables d'environnement.

Question 3 : A quoi sert le fichier /etc/passwd ? Donner des exemples d’informations contenues dans ce fichier.

Le fichier /etc/passwd est une base de données textuelle d'informations sur les utilisateurs qui peuvent se connecter au système.

Nom d'utilisateur,Mot de passe,Identifiant d'utilisateur (UID),identifiant de groupe (GID) sont des exemple d'info contenues dans ce fichier

Question 4 : Comment trouver l’adresse de sous-réseau lorsqu’on ne connait que l’adresse IP d’une machine et le masque de sous-réseau ?

Ecriture de commandes (3 points)

Question 1 : Donner une commande qui ajoute le droit de lecture au groupe sur tous les fichiers ayant l’extension tex du répertoire Texte de l’utilisateur Durand.

find ~Durand.tex -exec chmod g+r {}\;

Question 2 : Donner une commande qui affiche les processus s’exécutant sur la machine courante dont le nom contient la chaîne de caractères bash.

grep ’’bash’’ | ps

Question 3 : Donner une commande qui déplace tous les fichiers dont le nom commence par VS du répertoire courant dans le répertoire d’accueil de l’utilisateur RENE.

mv VS* ~RENE

Question 4 : Donner une commande qui affiche les noms de login des utilisateurs connectés triés par ordre alphabétique.

who -login | sort