Correction des TPs PDF

Title Correction des TPs
Author Mohamed Amine El
Pages 46
File Size 9.2 MB
File Type PDF
Total Downloads 203
Total Views 699

Summary

Compte rendu de TP Mohamed Amine El Moudni Mostafa Harti TP 1 (Permissions d’accès)   TP 2 (Filtrage, programmation avec awk)   TP 3 (révision de tp1 et tp2)   TP 4 (les scripts)   TP 5 (révision)   TP 6 (les processus)             TP 1   EX 1 Question 1 : Comme un utilisateur on n’a pas la possibil...


Description

Compte rendu de TP

Mohamed Amine El Moudni

Mostafa Harti

 

TP 1 (Permissions d’accès)

 

TP 2 (Filtrage, programmation avec awk) TP 3 (révision de tp1 et tp2)

 

TP 4 (les scripts)

 

TP 5 (révision)

 

TP 6 (les processus)

 

     

 

 

TP 1

 

EX 1

Question 1 : Comme un utilisateur on n’a pas la possibilité de créer un groupe ou un compte donc on doit connecter avec le  compte système (root) qui a tous les droits d'accès et pour cela il faut utiliser la commande su ( Switch User ) ,  après on créer les groupe avec la commande addgroup .  La commande 1 : su   La commande 2 : addgroup smi                             addgroup sma  2‑Pour créer un compte qui appartient à un groupe précis on doit utiliser la commande  adduser avec l'option ‑g.  La commande :  useradd tp1 ‑g smi                           useradd tp2 ‑g smi                            useradd totox ‑g smi                            useradd totoy ‑g sma  Pour activer les comptes créent il faut ajouter les mots de passe avec la commande passwd.  La commande : passwd smi                          .....                          passwd totoy 

               

 

Question 1 :

TP 1

EXPLICATION :

EX 2

Détaille la sortie de la commande ls –l  

Date de modificat

Les droits d’accès

fichier

d Dossier

Type

Propriétaire Même groupe

Autre

r

Read : voir le contenu d’un fichier, copier un fichier

w

Write : modifier un fichier, supprimer un fichier

x

Execute : exécuter un fichier

Nom du fichier

Taille en octets

Groupe

Propriétaire

Nombre de liens

Protections ou mode

 

TP 1

Question 1 : Il est nommé par shadow (en français sombre) parce qu'il contient les modes de passe codé 

EX 2

de même que toute autre information telle que les valeurs relatives à l'expiration du compte ou du mot  de passe cette fichier ne peut être lu que par le compte root ;     Le fichier shadow est : 

 Visible   Non lisible               par tous les groups.   Non exécutable  Question 2 : Comme un utilisateur on n’a pas la possibilité d'ouvrir /etc/shadow donc on bascule vers le compte  système (=root) et avec la commande cp on copier le fichier shadow de /etc dans /home/medamine  La commande : cp /etc/shadow /home/medamine/shadow.bak    On résume les droits de shadow.bak dans le tableau au‑dessous :   

Propriétaire 

Groupe 

Autre 

Visible 

OUI 

OUI 

NON 

Lisible 

OUI 

NON 

NON 

Exécutable 

NON 

NON 

NON 

Question 3 : Comme "root" on a la possibilité de supprimer shadow.bak parce qu’on a le droit d'écriture w.  Question 4 : La commande 1 : cp /etc/shadow /home/tp1  Pour que tp1 accorde la propriété on utilise la commande chown  La commande chown permet de changer le propriétaire d’un fichier ou d’un dossier.   Ce terme de « chown » pour « change the owner ».  La syntaxe :  chown [Propriétaire][Groupe] Fichier/Dossier  La commande 2 : chown tp1 shadow.bak 

TP 1

Question 5 : Avec le root ou le propriétaire on peut modifier shadow.bak mais avec le group ou les autres il est  impossible de modifier (on n’a pas le droit de modification w).  Question 6 :

On a le droit de suppression w pour TP1 donc on peut le supprimer mais on reçoit l'avertissement :   rm : supprimer fichier (protégé en écriture)  ?   

EX 3

Question 1 : Impossible de créer le répertoire /home/temp parce que /home accorde le droit d'écriture seulement pour le  root. 

Question 2 :  La commande :  

su  



mkdir /home/temp 

 

Question 3 : Pour accorder les permissions maximales sur /home/temp on utilise la commande chmod (Elle sert à changer  les permissions de lecture d'écriture et d'exécution d'un fichier ou d'un dossier)  La commande : chmod 777 /home/tmp 

Question 4 : Oui, car le répertoire /home/temp accorde les permissions totales pour les groupes. 

Question 5 : Non totox n'a pas le droit d'écriture w sur /etc               Seulement le root peut le modifier, ajouter, modifier… les fichiers de /etc 

Question 5 : On utilise la commande chown mais on reçoit l'avertissement suivant :     

   

TP 1

Question 1 :

EX 4

 Parce que tous les droits sont donnés à root     La commande : mkdir /home/rep‑smi  Question 2 : Pour changer le groupe de rep‑smi on utilise la commande chgrp  La commande : chgrp smi /home/rep‑smi  Question 3 : La commande : chmod 770 /home/rep‑smi  Question 4 : La commande :  

 

 

pico per 

                               cp per /home/rep‑smi  Question 5 : totox n'a pas le droit de supprimer per parce qu'il n’appartenant pas au groupe smi  Question 6 : OUI, tp2 supprimé le fichier per. C’est inquiétant   Le répertoire /rep‑smi donne la possibilité aux membres du groupe smi pour faire tous les choses   (supprimer, renommer, modifier..).  Question 7 : La commande (avec root) : chmod 1770 /home/rep‑smi.             

TP 2

    Question 1 :

 

EX 1

Pour afficher la liste des fichiers qui ont été créés en 2013 on peut utiliser deux commandes :  

La commande grep : 

 ls ‑l /chemin̲de̲la̲reperoire | grep "2013"   Cette commande ne traite pas le cas si la chaine " 2013 " se déplace dans un champ différents de $8 ($8 = la  date de création) ;  

Pour ne pas tromper dans l'erreur de la commande grep ont peut utiliser la commande awk qui précise le  champ de recherche ; 

ls ‑l \chemin̲de̲la̲repertoire | awk ' $8 ∼/2013/ {print $0} '  ls ‑l \chemin̲de̲la̲repertoire | awk ' $8 == 2013/ {print $0} ' 

Question 2 : Pour afficher la liste des fichiers qui n'ont pas été créés en 2012 on fait la négation de la question précède :  

Avec la commande grep : on utilise l'options ‑v qui donne les lignes ou le critère n'a pas été trouvé 

La commande : ls ‑l /chemin | grep ‑v "2012"  

Avec la commande awk : on utilise l'option [^...] = caractères interdits 

ls ‑l \chemin | awk ' $8 ∼/[^2012] {print $0} '  Autre solution : ls ‑l /chemin | awk ' $8 != 2014 {print $0} ' 

Question 3 : Pour afficher la liste des fichiers qui commencent par un "p" on peut utiliser deux commandes :  

La commande grep : avec l'option "^"        grep "^p" chemin. 

On peut appliquer cette commande pour /etc/passwd seulement  parce que le nom de fichier est au début de la  ligne pour préciser il faut utiliser la commande awk.  

La commande awk  avec l'option "^" : ls –l source ‑awk ' $9 ∼/^[p]/ {print $0} '  

Question 4 : Pour afficher la liste des fichiers dont l’utilisateur possède les droits de lecture et d’écriture on peut utiliser la  commande :  

awk : avec awk on cherche dont le premier champ qui commence par "‑rw‑" 

La commande : ls –l | awk ' $1 ∼/‑rw‑*/ {print $0}   

TP 2

grep : avec grep on cherche les lignes qui commence par ‑rw‑ 

La commande : ls –l | grep "^‑rw‑"  

Question 5 : Pour Listez tous les fichiers dont l’extension est .txt on utilise la commande grep et la commande awk.  

Avec grep on cherche les lignes qui se termine par .txt pour cela il faut utiliser l'option "$" 

La commande : grep ".txt$"  

Avec la commande awk on cherche les mots qui se terminent par .txt dans le 8ieme champs  

La commande : ls –l | awk ' $9 ∼/.txt$/ {print $0} '  

Question 6 : Pour listez tous les fichiers qui commencent par une majuscule on utilise la commande awk et grep ;  

awk : Avec awk on cherche dans le 9ieme champs pour des mots qui commence par majuscule 

Majuscule = l'intervalle [A‑Z].  La commande : ls –l | awk ' $9 ∼/^[A‑Z]/ {print $0} '   

grep : Avec grep il faut utiliser la commande ls pour listez les noms des fichiers sans les informations  après on cherche les mots qui commence par majuscule.  

La commande : ls | grep "[A‑Z] 

Question 7 : Pour Listez tous les répertoires on peut utiliser la commande grep et awk :  

Avec grep on cherche les lignes qui commencent par un "d" 

La commande : ls ‑l | grep "^d"  

Avec awk on cherche dans le premier champ (ou la ligne $0) qui commence par un "d" 

La commande : ls ‑l | awk ' $1 ∼/^d/ {print $0} ' 

Question 8 : Pour Cherchez tous les fichiers dont le nom commence par une minuscule ou un "P" majuscule il faut utiliser  l'option ‑name de find.  La commande : find /home ‑name "[a‑z,P]*" 

Question 9 : La même chose pour cette question. 

EX 1

La commande : find /home/medamine ‑name "[p‑z]*"   Question 10 : Pour cette question il faut utiliser l'option ‑mtime pour préciser le temps de modification   

La commande pour les fichiers modifiés il y'a plus de 30 jours : find /home/medmaine ‑mtime +30  



La commande pour les fichiers modifiés il y'a 30 jours : find /home/medamine ‑mtime 30 

Question 11 : Pour chercher les fichiers de type répertoire il faut utiliser la commande find avec l’option ‑type ;  La commande : find /home/medamine ‑type d 

Question 12 : Pour chercher les fichiers de taille supérieure à 100ko il faut utiliser la commande find avec l’option ‑size;  La commande : find /home/medamine ‑size +200  Avec (200 = 200*512octets = 102400 octets = 100ko)   

       

                   

TP EX 1 21 EX 1

Question 1 :

TP 2

Générez une liste en format long = ls ‑l 

EX 2

La commande cut pour isoler les droits d'accès du propriétaire pour chacun des fichiers = cut ‑c2‑4  La commande sed  pour transformer :  

le droit "r" en le mot "read" suivi d'une tabulation = sed "s/r/read\t/g" 



Le droit "w" en le mot "write" suivi d'une tabulation = sed "s/w/write\t/g" 



Le droit "x" en le mot "execute" suivi d'une tabulation = sed "s/x/execute\t/g" 

On peut collecter ces commande par un ";" on plus on ajoute option ‑e  qui est nécessaire parce que on  a plusieurs fonction d’édition, Pour sauvegarder le résultat on utiliser l'option >nom̲fichier.  Exemple : commande 1 | commande 2 | commande 3 >nom̲fichier   LA commande finale : ls ‑l | cut ‑c2‑4 | sed ‑e "s/r/read\t/g;s/w/write\t/g;s/x/execute\t/g"  Question 2 : Générez une liste, en format long        ls ‑l  La commande cut pour extraire le nom du propriétaire et du fichier       cut ‑c14‑22,53‑  la commande paste,  réunissez  la  sortie  précédente  avec  le  fichier  de  l'exercice  précédent :   la̲sortie | paste ‑ permission   La commande  sed  pour changer, sur chaque ligne, les espaces entre le nom du propriétaire et du fichier par  les trois points "..."       sed ‑e "s/ /.../1"   On remplace le g qui effectue les modifications sur toutes les occurrences trouvées par 1  indique que la  substitution ne s'applique qu'à la 1er occurrence  LA commande finale : ls ‑l | cut ‑c14‑22,53‑ | paste ‑ permission | sed ‑e "s/ /.../1" > fichier̲permision 

Question 3 : Pour détruire la première ligne on utilise la fonction de suppression d        syntaxe ' sed "xd" avec x le numéro de  ligne'   ; La commande : sed "1d"   Pour placez les titres au‑dessus de chaque colonne on utilise la fonction d'insertion i       syntaxe ' sed "xi/titres"  avec x numéro de ligne '  La commande : more fichier̲permision | sed "1d " | sed "1i\PROPRIO     NOM̲FICHIER\tPERMISSION" 

Question 4 : a) Cette commande affiche les lignes qui se termine par sh (le type de Shell = bash) dans /etc/passwd.  b) Cette commande affiche le message suivante {$1      le contenue du premier champ       user id, 

 $3        le contenue du troisième champ} pour les lignes qui commence par etu.a dans  /etc/passwd. 

TP 2 EX 2

      c) Cette commande afficher le message suivant {$1 = " le contenu du premier champ ", utilise le Bourne               Shell}  pour les lignes qui ont $7(le contenu du septième champ) = /bin/bash.        d) Cette commande afficher le message suivante {$1(le contenu), est dans le groupe programmeur}            Cette message sera afficher à condition que le contenu du quatrième champ = 200.       e) Cette commande cherche (affiche) les lignes où les conditions suivantes sont vérifiées :           "Le contenu de $3 " >= 50 et "le contenu de $3"  1  La commande :   awk ' NR>1 {somt+=$2 ; somc+=$3} END {print " les ventes totales de tomate est = "somt "\n les vents totales de  carotte est = " somc } ' legumes  Remarque : ce n’est pas l'appel de défini le séparateur car l'espace est le séparateur par défaut. 

Question 12 : Pour afficher la somme des mots dans un fichier il faut d'abord savoir le séparateur des champs après on  compte le contenu des champs dans la ligne courants (= NF ) ; Pour afficher le nombre des lignes on utilise la  variable NR   La commande :   awk ' {som += NF} END {print " la somme des mots est = "som"\n la somme des lignes est = "NR} ' legumes 

TP 3

 

EX 1

Question 1 : Il y'a deux méthodes :  1 ‑  Avec grep et cut : avec grep on cherche les lignes qui commence par un r après on applique la commande  cut sur la sortie de la commande précédente pour afficher seulement la deuxième colonne jusqu'à la fin.  La commande :   grep "^r" /etc/passwd | cut ‑c2‑  2 ‑ Avec la commande sed on remplace le r " on début " par "le vide "   La commande : cat /etc/passwd | sed ‑e "s/^r//g" 

Question 2 : Pour ajouter un # en début de ligne on utilise la commande sed et la commande awk    Avec la commande sed on remplace le début de ligne "^" par un #.  La commande : sed "s/^/#/g" /etc/passwd   Avec la commande awk on affiche le # après le contenu des lignes (=$0)  La commande : awk '{print $0 "#"}' chemin 

Question 3 : Pour ajouter un ! à la fin du ligne en utilise la commande sed ou la commande awk :   Avec sed on remplace la fin de ligne par un ! , pour éviter une erreur de syntaxe il faut utiliser les quotes  '' au lieu des guillemets "  La commande : sed 's/$/!/g' /etc/passwd   Avec la commande awk on affiche le message suivante : le contenu de $0 + !  La commande : awk '{print $0 "!"}' chemin ou nom de fichier 

Question 4 : Pour remplacer le # par un @ on utilise la commande sed tout simplement :  La commande : sed 's/#/@/g' /etc/passwd         

Question 1 :

TP 3

Pour Transformer tout le texte INFO.awk  en majuscules on peut utiliser la commande tr :  EX 2

On remplace tous les minuscules par majuscules ;  La commande : tr 'a‑z' 'A‑Z'  Question 2 : On utilise la commande sed :  On remplace le texte INFO.awk par INFO.AWK  La commande : sed 's/INFO.awk/INFO.AWK/g'  Question 3 : Pour prend en compte les caractères accentués on utilise la commande tr et la commande sed on  même temps.  On utilise la commande tr pour transformer les minuscules par les majuscules.   La commande : tr 'a‑z' 'A‑Z'  On utilise la commande sed pour transformer les caractères accentués par leurs majuscules, on utilise   l’option ‑e et on sépare les commande de sed par ;  la commande : sed ‑e 's/[éè]/E/g;s/à/A/g'  la commande finale : tr 'a‑z' 'A‑Z' | sed ‑e 's/[éè]/E/g;s/à/A/g'  Pour afficher le résultat on taper CTRL+d pour envoyer la sortie de la commande tr à la commande sed.                   

Question 0 :

TP 3

La commande : touch smi .txt 

EX 3

Question 1 : Pour compter les mots dans ce  fichier texte on utilise une boucle for pour afficher les mots du fichier après on  envoyer cette sortie à la commande uniq qui éliminer les lignes dupliquées dans un fichier trié avec l’option –c  pour Afficher le nombre d'occurrences de chaque ligne.  La commande : awk ‘{ for(i=1;iO,i‑‑) { printf "%s%s" , $i,OFS=":" } { print "\n" } } ' /etc/passwd  %s pour afficher les chiffre et les caractère. 

Question 4 : Lignes qui contiennent la chaîne "home" = condition : $0 ∼/home/  Compter le nombre de ligne : on utilise un compteur   La commande :   awk ' $0∼/home/ {cpt++} END {print " le nombre de lignes qui contient la chaine home = " cpt} ' /etc/passwd           

EX 5

Question 1 :  On utilise la commande find pour cherche les fichiers qui ’ont le nome terminent par .h 

TP 3 EX 6

Avec la commande find ‑name "*.h" (* = la chaine commence par une lettre au chiffre quelconque).  Pour rediriger les erreurs vers le fichier poubelle /dev/null on ajoute 2>/dev/null à la fin de la commande find.  La commande : find "*.h" 2>/dev/null 

Question 2 : La commande : find / ‑name "[Dd]*"   * = le nom de fichier termine par une lettre quelconque. 

Question 3 : Pour chercher les fichiers qui ont le nom ne contiennent pas de chiffre on peut utiliser l'option "!"   ou [^] (=caractères interdits).  La commande 1 : find / ‑name "[! 0‑9]"  La commande 2 : find / ‑name "[^0‑9]"   

EX 7

Question 1 : Pour chercher les fichiers dont la taille dépasse 1MO on utilise l'option ‑size de find   la commande : find ‑size +2000 ( 2000*512octets=1024000octets=1MO )  Pour chercher les fichiers dont les droits sont fixés à 644 on utilise l'option ‑perm et ‑a de find    ‑perm mode      Fichier dont les autorisations d'accès sont fixées exactement au mode indique (en notation symbolique ou  octale).   La notation symbolique utilise le mode 0 comme point de depart.   La commande : find /home ‑size +2000 ‑a ‑perm 644   Pour compter leur nombre on peut envoyez la sortie de la dernier commande a un fichier et utiliser la   commande grep pour compter le nombre des lignes.  La commande : find /home ‑size +2000 ‑a ‑perm 644 >find          grep ‑c "" find                                                                 On peut compter leur nombre on utilise la commande wc avec l'option ‑l pour compter le nombre de lignes  La commande : find /home ‑size +2000 ‑a ‑perm 644 | wc ‑l 

TP 3

Question 1 :

EX 8

L'effet de l'option "‑print" et de afficher le résultat (find utilise l'expression '‑print' par défaut)    L’effet de l'option  "‑ok" :    Syntaxe : ‑ok commande    Le roule : la commande ne s'exécute pas et le test devient faux si la réponse ne commence pas par 'y' ou 'Y'  Résumé : 

Cette commande trouver tous les fichiers qui ont un nom commence par a.t dans l'arborescence et supprimez‑les   après confirmation. 

Exemple :

    EX 9

Question 1 : Pour  lister le contenu d'un fichier sans les lignes vides on pose la condition que $0 est vide  la commande : ls ‑l | awk ' $0 ∼/./ { print NR":"$0 } ' 

.  : Champs vide. 

 

Question 1:

TP 3

Pour déterminer le nombre des mots il suffit de compter les NF (nombre de champs dans la ligne  courante)       som=som+NF  .  Pour déterminer le nombre des caractères on peut utiliser un boucle for et la fonction length pour calculer la  longueur des $i un par un et pour compter on utilise une variable som ...


Similar Free PDFs