• Aucun résultat trouvé

corrigé

N/A
N/A
Protected

Academic year: 2022

Partager "corrigé"

Copied!
3
0
0

Texte intégral

(1)

Unix et Programmation Shell corrig´e

 juin

Vous r´epondrez aux questions en par deux lignes en moyenne.

Q 1. Citer deux informaticiens `a l’origine de GNU/linux.

R. Stallmann (GNU), L. Torwald (linux).

Q 2. Pr´eciser trois acronymes du mondeunix.

awk, Bash, pid, POSIX, sed. . .

Q 3. La commande uname permet d’obtenir des informations sur le syst`eme. Lesquelles ?

Identification de l’hˆote : nom, noyau, syst`eme d’exploitation, architecture, distribu- tion. . .

Q 4. Donner un exemple de syst`eme d’exploi- tation r´ecent bas´e sur un noyaulinux.

android.

Q 5. Rappeler l’organisation g´en´erale du syst`eme de fichiers unix.

Sous la racine : boot,dev,proc, root, etc (configuration), sbin,home (utilisateur),lib, share,bin(ex´ecutable),tmp,usr.

Q 6. Quelle est la particularit´e du r´epertoire /proc?

Il s’agit d’un r´epertoire en m´emoire vive uti- lis´e pour stocker donn´ees des processus notam- ment.

Q 7. D´ecrire avec pr´ecision le rˆole d’une ligne de shell commen¸cant par le caract`ere #.

En g´en´eral, il s’agit d’un commentaire. En premi`ere, ligne, il introduit le shebang.

Q 8. Pr´eciser 7 commandes internes popu- laires du shell bash.

alias,echo,cd,help,history,pwd,time.

Q 9. D´etailler

$ l s −i l /tmp/ f b . sh

48744 −rwxr−x−−x 1 f o o bar 35 6 j u i n 1 0 : 2 3 /tmp/ f b . sh

Le fichier/tmp/fb.shd’inode 48744 (35 oc- tets) appartient `a foo et au groupe bar. Le pro- pri´etaire `a tous les droits sur ce fichier qui est ex´ecutable par tout le monde, et ouvert en lec- ture pour le groupe.

Q 10. Commenter avec pr´ecision le r´esultat de la commande ci-dessous :

$ / u s r / b i n / t i m e −−f o r m a t=”cpu=%U”\ t i m e −p s l e e p 2

r e a l 2 . 0 0 u s e r 0 . 0 0 s y s 0 . 0 0 cpu =0.00

time existe au niveau interne et externe.

Dans l’exemple, les premi`eres information de temps sont donn´ees par la commande interne.

Q 11. Proposer une explication

$ a l i a s xp=’ i f ! c a t $ ( ( x++))

2>/dev / n u l l ; t h e n e c h o −n $x ; f i ’

$ xp ; xp ; xp ; xp 12 t r o i s

4

Une variable x initialis´ee `a 0, un fichier nomm´e ”2” contenant le mot ”trois”.

Q 12. Que fait la commande

g r e p −rE ’ ( [ 0−9 ]{1 , 3} \. ){3}[ 0−9 ] + ’

−−i n c l u d e=r∗.∗f / e t c 2>/dev / n u l l Dans la plupart des cas, cette commande ´ecrira au moins une ligne. Pourquoi ?

Recherche r´ecursive dans /etc sur les fchiers correspondants `a ”r*.*f” des lignes contenant une adresse IPv4. En particulier, la lignenameserverdu fichier resolv.conf Q 13. Pour supprimer correctement les ba- lises html du fichier index.html, quelle est la bonne commande ?

$ s e d ’ s /<[ˆ>]∗>// ’ i n d e x . html

1

(2)

$ s e d ’ s /<.∗>// ’ i n d e x . html

$ s e d ’ s /<[ˆ>]∗>//g ’ i n d e x . html

$ s e d ’ s /<.∗>//g ’ i n d e x . html La troisi`eme.

Q 14. Commenter [ / tmp/ i c i ] $

e c h o ’ cd $1 ; pwd’>cd ; chmod u+x cd ; [ / tmp/ i c i ] $ mkdir /tmp/ l a b a s [ / tmp/ i c i ] $ . / cd /tmp/ l a b a s /tmp/ l a b a s

[ / tmp/ i c i ] $

Q 15. Dans l’exemple ci-dessous, sur quel hˆote est ex´ecut´e la commande who?

[ ] $ s s h pl@192 . 1 6 8 . 0 . 1 0 0 who pl@192 . 1 6 8 . 0 . 1 0 0 ’ s password : ∗∗∗

p l t t y 1 2013−06−06 0 7 : 5 7 p l p t s /1 2013−06−06 1 3 : 1 9 p l p t s /2 2013−06−06 1 3 : 0 5 p a t p t s /3 2013−06−06 1 3 : 3 2

Rappeler les ´etapes `a suivre pour ex´ecuter des commandes sur une machine distantes sans fournir de mot de passe.

pl ex´ecutewhosur 192.168.0.100. Il convient de cr´eer une paire de cl´es priv´ee/publique (sshkeygen), et de d´eposer la cl´e publique sur les hˆotes cibl´es (ssh-copy-id).

Q 16. Ecrire un script : whereis user hosts, pour d´eterminer sur quel hˆote est connect´e un utilisateur donn´e.

– user : utilisateur

– hosts: fichier contenant la liste des hotes accessibles parssh.

Utiliser les commandes : ping,sshetwho.

#! / b i n / b a s h while read h o s t do

i f p i n g −qc1 $ h o s t then

i f [ s s h $ h o s t ”who | g r e p $1 ” ] then

echo $1 on $ h o s t e l s e

echo $ h o s t f i

e l s e

echo $2 a b s e n t f i

done < $2

Q 17. Le script (??) a ´et´e utilis´e pour obtenir les traces (??).

– Commenter ce script.

Le script straceles appels syst`eme du type flagsd’une commande passer via bash. La sortie est filtr´ee par une combinaisongrep/sed.

– Quelle commande de d´ebogage a ´et´e utilis´ee ? strace

– Donner un autre exemple de commande de d´ebogage.

ltrace

– Quelle commande a ´et´e trac´ee ? cat </tmp/src | wc -l >/tmp/dst

– Repr´esenter sh´ematiquement les processus, fichiers et descripteurs de fichiers mis en jeux par la commande trac´ee.

2

(3)

Fig. 1 – pid, descripteurs.

1 e x e c v e ( ” / b i n /;−)

2 open ( ” / dev / t t y ” , O RDWR|O NONBLOCK) = 3 3 open ( ” / p r o c / meminfo ” , O RDONLY) = 3

4 r e a d ( 3 , ”MemTotal : 1798268 kB\nMemF ” . . . , 1 0 2 4 ) = 1024 5 c l o n e ( P r o c e s s 23357 a t t a c h e d

6 c h i l d s t a c k =0 , f l a g s=CLONE CHILD CLEARTID|CLONE CHILD SETTID|SIGCHLD, c h i l d 7 [ p i d 2 3 3 5 6 ] c l o n e ( P r o c e s s 23358 a t t a c h e d

8 c h i l d s t a c k =0 , f l a g s=CLONE CHILD CLEARTID|CLONE CHILD SETTID|SIGCHLD, c h i l d

9 [ p i d 2 3 3 5 7 ] dup2 ( 4 , 1 ) = 1

10 [ p i d 2 3 3 5 8 ] dup2 ( 3 , 0 ) = 0

11 P r o c e s s 23356 s u s p e n d e d

12 [ p i d 2 3 3 5 7 ] open ( ” / tmp/ s r c ” , O RDONLY) = 3

13 [ p i d 2 3 3 5 7 ] dup2 ( 3 , 0 ) = 0

14 [ p i d 2 3 3 5 7 ] e x e c v e ( ” / b i n / c a t ” , [ ” c a t ” ] , [ /∗ 53 v a r s / ] ) = 0 15 [ p i d 2 3 3 5 8 ] open ( ” / tmp/ d s t ” , O WRONLY|O CREAT|O TRUNC, 0 6 6 6 ) = 3

16 [ p i d 2 3 3 5 8 ] dup2 ( 3 , 1 ) = 1

17 [ p i d 2 3 3 5 8 ] e x e c v e ( ” / u s r / b i n /wc ” , [ ” wc ” , ”−l ” ] , [ / 53 v a r s / ] <u n f i n i s h e d 18 [ p i d 2 3 3 5 8 ] <. . . e x e c v e resumed> ) = 0

19 [ p i d 2 3 3 5 7 ] r e a d ( 0 , ” gnu p o s i x Bash s e d awk\n ” , 3 2 7 6 8 ) = 23

20 [ p i d 2 3 3 5 7 ] w r i t e ( 1 , ” gnu p o s i x Bash s e d awk\n ” , 23 <u n f i n i s h e d . . .>

21 [ p i d 2 3 3 5 7 ] <. . . w r i t e resumed> ) = 23 22 [ p i d 2 3 3 5 8 ] <. . . open resumed> ) = 3 23 [ p i d 2 3 3 5 7 ] r e a d ( 0 , ” ” , 3 2 7 6 8 ) = 0 24 P r o c e s s 23356 resumed

25 P r o c e s s 23357 d e t a c h e d

26 [ p i d 2 3 3 5 8 ] r e a d ( 3 , ”# L o c a l e name a l i a s d a t a b a s e .\n # ” . . . , 4 0 9 6 ) = 2512 27 P r o c e s s 23356 s u s p e n d e d

28 [ p i d 2 3 3 5 8 ] r e a d ( 3 , ” ” , 4 0 9 6 ) = 0

29 [ p i d 2 3 3 5 8 ] r e a d ( 0 , ” gnu p o s i x Bash s e d awk\n ” , 1 6 3 8 4 ) = 23 30 [ p i d 2 3 3 5 8 ] r e a d ( 0 , ” ” , 1 6 3 8 4 ) = 0

31 [ p i d 2 3 3 5 8 ] w r i t e ( 1 , ”1\n ” , 2 ) = 2 32 P r o c e s s 23356 resumed

33 P r o c e s s 23358 d e t a c h e d

34 −−− SIGCHLD ( C h i l d e x i t e d ) @ 0 ( 0 ) −−−

Fig. 2 – capture des appels syst`emes.

f l a g s=read , w r i t e , open , dup2 , e x e c v e , c l o n e

s t r a c e −f e t r a c e=$ f l a g s bash −c ” $1 ” &> t r a c e s . a l l g r e p −vE ’ ( l i b|s h a r e|ELF| \. s o| −1 ) ’ t r a c e s . a l l \

| s e d ’ s / bash .∗/ ;−) / ’ | c u t −c1−75 > t r a c e s . t x t Fig. 3 – script de tra¸cage.

3

Références

Documents relatifs

Le diagramme de Black en BO donne un d´ephasage toujours sup´erieur ` a 180 ◦ on peut aussi calculer le d´enominateur de la BF et appliquer le crit`ere de

Si la quantit´e de mati`ere de l’une des esp`eces chimiques pr´esentes dans un syst`eme chimique `a l’´etat d’´equilibre est modifi´ee, ce syst`eme ´evolue pour s’opposer

D´ efinition (rang d’un syst` eme ´ echelonn´ e) : Le rang r d’un syst`eme ´echelonn´e `a p ´equations et n inconnues est ´egal au nombre d’´equations qui n’ont pas un

Si cette ´ etape est trop exigeante du point de vue computationnel, on peut approximer le crit` ere ` a minimiser au moyen d’une somme de Riemann.

b) Montrer qu’en ajoutant simultan´ ement ` a chaque ´ equation d’un syst` eme un multiple d’une autre, on peut changer

Pour r´ esoudre un syst` eme, on va faire des combinaisons lin´ eaires d’´ equations, et produire ainsi des ´ equations plus simples... Nombre

Pour chacune des valeurs propres, d´ eterminer un vecteur propre associ´ e.. b) D´ eterminer une matrice P et une matrice diagonale D telles que C = P

1. Architecture en couches. Ouvrir et fermer une session Unix. Les commandes Unix. Le manuel en ligne d’Unix. Le fichier Unix. Op´erations ´el´ementaires sur les fichiers.