Title | Correction des TPs |
---|---|
Author | Mohamed Amine El |
Pages | 46 |
File Size | 9.2 MB |
File Type | |
Total Downloads | 203 |
Total Views | 699 |
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...
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 ...