Uploaded by giveaway giveaway

183-INF1070-final-sujet

advertisement
1:1
INF1070 Utilisation et administration des systèmes informatiques
Examen Final — Automne 2018
Samedi 15 décembre — Durée 3 heures
Jean Privat & Alexandre Blondin Massé
Aucun document ni appareil électronique n’est autorisé. Répondez et rendez seulement le formulaire (dernière page).
L’annexe est détachable. Les questions faisant apparaître le symbole ♣ peuvent présenter plusieurs bonnes réponses. Les
autres ont une unique bonne réponse. Des points négatifs pourront être affectés à de très mauvaises réponses.
1 Expressions régulières
Question 1
Laquelle des expressions régulières étendues (ERE) suivantes reconnaît les adresses IPv6 comme
2001:0db8:0000:85a3:0000:0000:ac1f:8001 ?
A ([0-9][a-f]{4}:){7}[0-9][a-f]{4}
B ([0-9a-f:]{4}){8}
C ([0-9][a-f]{4}:){8}
D ([0-9a-f]{4}:){7}[0-9a-f]{4}
E ([0-9a-f]{4}:){8}
F ([0-2][0-9][0-9]\.){3}[0-2][0-9][0-9]
Question 2 ♣ Parmi les expressions régulières étendues (ERE) suivantes, lesquelles trouvent une correspondance dans
le mot « prestidigitateur » ?
C [^aeiou]{3}
D (i[tr]|[ea][ug]){2,}
A (.)...\1
B ^[^restidi]
G (.)(.).*\1\2
H [aeiou]{2}
E (.)\1
F .*..$
Question 3 ♣ Parmi les expressions régulières étendues (ERE) suivantes, lesquelles trouvent une correspondance
seulement avec les noms de fichiers qui se terminent par l’une des extensions .txt, .text ou .tex ?
A \.te?xt?$
B [.]t(xt|ext|ex)$
C {.tex,.text,.tex}$
D ^.*\.(tex|text|txt)$
E \.te?xt$|\.text?$
F \.txt|\.text|\.tex$
Question 4 ♣ Parmi les mots suivants, lesquels ont une correspondance avec les deux expressions régulières étendues
(ERE) « ^[sinus]+(di?|f?or?)*(m[es])?$ » et « ^[a-l]*[p-z]*[^issues]*$ » ?
A sud
B info
C nord
D nid
E sors
F informe
2 Processus
Question 5 ♣ Parmi les énoncés suivants, indiquez tous ceux qui sont vrais concernant les processus en Unix.
A Les processus sont isolés et ne peuvent pas collaborer ensemble
B Tout processus est rattaché à un terminal
C Tout processus est associé à un utilisateur
D Un démon est un processus qui ne peut pas être interrompu
E Tout processus a au moins un processus enfant
F Une tâche shell (job) peut regrouper plusieurs processus
G Pour un programme donné, il existe au plus un seul processus à la fois
H Deux processus qui coexistent ont nécessairement des identifiants (PID) distincts
Question 6
Alice a lancé depuis un terminal le programme ./long_calcul, mais il n’est toujours pas terminé. Que
devrait-elle faire pour récupérer le contrôle de son terminal sans perdre le travail en cours ?
A Appuyer sur Ctrl-C puis taper bg
B Appuyer sur Ctrl-C puis taper fg
C Maintenir Ctrl et appuyer sur fg
D Appuyer sur Ctrl-Z puis taper bg
E Taper %bg suivi de la touche Entrée
F Appuyer sur Ctrl-Z puis taper fg
1:2
2.1 Les commandes ps et jobs
Dans un terminal, j’entre la commande « ps -e -o uid,pid,ppid,c,sz,stime,tty,time,cmd » et j’obtiens le résultat suivant (certaines lignes non pertinentes ont été supprimées par économie d’espace) :
UID
root
root
root
avahi
root
avahi
root
gdm
gdm
root
root
whoopsie
alice
geoclue
alice
alice
alice
alice
alice
alice
alice
alice
alice
alice
bob
bob
alice
alice
alice
alice
alice
PID PPID C
SZ
1
0 0 56441
270
1 0 41086
295
1 0 11766
920
1 0 11855
934
1 0 250305
946 920 0 11769
1000
1 0 76552
1151
1 0 19247
1153 1151 0 28079
1476
1 0 72442
1477
1 0 110386
1581
1 0 97146
1589
1 0 19245
1834
1 0 116749
4323 1589 7 193804
4421 4323 0 6075
4496 4421 0 5304
4498 1589 6 8174
4534 4498 0 6251
4568 4498 0 6251
4602 4498 0 6380
4981 4498 0 6252
5019 4534 85 1903
5020 4534 22 1874
5030 4981 0 1877
5031 4568 0 3399
5032 4498 0 6251
5235 4602 0 12182
5236 4602 8 202123
5248 4602 0 9342
5249 4602 0 1871
STIME TTY
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:38 ?
16:59 ?
16:59 pts /0
16:59 pts /0
16:59 ?
16:59 pts /2
16:59 pts /3
16:59 pts /4
17:07 pts /1
17:07 pts /2
17:07 pts /2
17:07 pts /1
17:08 pts /3
17:08 pts /5
17:10 pts /4
17:10 pts /4
17:10 pts /4
17:10 pts /4
TIME CMD
00:00:02 /sbin/init splash
00:00:01 /lib/ systemd /systemd - journald
00:00:00 /lib/ systemd /systemd - udevd
00:00:00 avahi - daemon : running
00:00:01 /usr/lib/ snapd / snapd
00:00:00 avahi - daemon : chroot helper
00:00:00 /usr/sbin/cups - browsed
00:00:00 /lib/ systemd / systemd --user
00:00:00 (sd -pam)
00:00:00 /usr/lib/x86_64 -linux -gnu/ boltd
00:00:14 /usr/lib/ packagekit / packagekitd
00:00:00 /usr/bin/ whoopsie -f
00:00:00 /lib/ systemd / systemd --user
00:00:00 /usr/lib/geoclue -2.0/ geoclue -t 5
00:00:50 /usr /[...]/ gnome -terminal - server
00:00:00 bash
00:00:00 tmux
00:00:41 tmux
00:00:00 -bash
00:00:00 -bash
00:00:00 -bash
00:00:00 -bash
00:02:39 cat /dev/ urandom
00:00:41 tr -cd ABC
00:00:00 tail -f error .log
00:00:00 nc -l 8888
00:00:00 -bash
00:00:00 xeyes
00:00:00 gnome - calculator
00:00:00 ps -e -o uid ,pid ,ppid ,[...]
00:00:00 tee ps.out
suivi de la commande « jobs » :
[1] [2]+
Running
Running
xeyes &
gnome - calculator &
Question 7 ♣ Parmi les énoncés suivants, indiquez tous ceux qui sont vrais.
A Le terminal courant est identifié par pts/0
B L’identifiant du processus parent de xeyes est 5235
C Le processus qui a le plus consommé de temps CPU a le PID 5019
D Je suis l’utilisateur alice
E Le PID du processus le plus ancien est 934
F Le processus de PID 5235 a été lancé en arrière-plan
Question 8 ♣
Parmi les commandes kill suivantes, lesquelles vont terminer l’exécution d’un processus avec succès ?
A kill -9 1581
B kill %1
C kill -s SIGTERM 4602
D kill %2
E kill 1
F kill 5019
1:3
3 Shell avancé
Question 9 ♣
A
B
C
D
Parmi les commandes suivantes, lesquelles affichent, entre autres, une ligne contenant « toto » ?
( echo toto; echo tata ) | tail -n 1
echo toto | echo tata
echo tata > tr o a
echo toto 2>/dev/null
E echo toto > tata; cat tata
F ( echo otot >&2; echo toto ) | rev
G echo toto | ( echo tata; tail -n 1 )
H echo to | ( ta="$(cat -)"; echo "$ta$ta" )
Question 10
Alice et Bob souhaitent communiquer. Pour s’amuser, ils s’entendent pour chiffrer leurs messages de
façon très simple avec un algorithme non cryptologiquement sécuritaire. Alice procède de la manière suivante pour envoyer
un message à Bob : cat message | tr a-z u-zf-ta-e | rev > message.enc
Quelle commande, parmi les suivantes, permet à Bob de déchiffrer le message envoyé par Alice ?
A tr u-zf-ta-e a-z < message.enc | rev
B tac message.enc | tr u-zf-ta-e a-z
C cat message.enc | tr a-z u-zf-ta-e | rev
Question 11 ♣
D tac message.enc | tr a-z u-zf-ta-e
E cat message.enc | rev | untr a-z u-zf-ta-e
F rev | tr u-zf-ta-e a-z < message.enc
Considérez les cinq lignes de commandes suivantes :
echo 1; sleep 2; sleep 3
# C1
sleep 1 & sleep 2 & sleep 3
# C2
sleep 1 && sleep 2 && sleep 3 # C3
sleep 1 || sleep 2 || sleep 3 # C4
sleep 1 | sleep 2 | sleep 4
# C5
Parmi les énoncés suivants, lesquels sont vrais en prenant en compte la durée d’exécution totale de chaque ligne de
commande ?
A C5 dure 7 secondes
B C1 est plus lent que C5
C C1 dure 5 secondes
D C4 dure 1 secondes
E C2 dure 6 secondes
F C3 dure 3 secondes
4 Scripts
Question 12
Considérez le script exécutable suivant nommé oui_ou_non :
#!/ bin/sh
if [ "$#" -ne 1 ]; then
exit 1
fi
if [ "$1" = oui ]; then
echo oui
./ oui_ou_non non
elif [ "$1" = non ]; then
echo non
exit 2
fi
Qu’est-ce qui sera affiché sur la sortie standard si on lance la commande « ./oui_ou_non oui; echo $? »
A
B
C
D
E
Seulement « oui »
« non », suivi de « oui », suivi de « 1 »
« non », suivi de « oui », suivi de « 2 »
« non », suivi de « oui », suivi de « 0 »
« oui » suivi de « non »
F Seulement « non »
G « oui », suivi de « non », suivi de « 2 »
H « oui », suivi de « non », suivi de « 0 »
I « oui », suivi de « non », suivi de « 1 »
J « non » suivi de « oui »
1:4
Question 13 ♣
Soit un répertoire /opt/inf1070 accessible à l’utilisateur.
$ ls -l /opt/ inf1070 /
lrwxrwxrwx 1 inf1070 inf1070
5 dec 15 14:00 exam -> final
-rwxr -xr -x 1 inf1070 inf1070 3754 dec 15 14:00 final
-rwxr -xr -x 1 inf1070 inf1070 3541 oct 27 14:00 intra
$ pwd
/home/ etudiant /
$ echo $PATH
/usr/local/bin :/ usr/bin :/ bin
Quelles sont les différentes façons d’exécuter le script shell final à partir du répertoire courant ?
C sh /opt/inf1070/final
D /bin/sh final
A final
B /opt/inf1070/exam
Question 14
E ./opt/inf1070/final
F ./final
Considérez le script exécutable suivant nommé subst :
#!/ bin/sh
a=4
b=" echo $a"
a=5
echo "$b"
Qu’est-ce qui sera affiché sur la sortie standard si on lance la commande « ./subst »
A echo 4
B 4
C echo $a
D "$b"
E 5
F echo 5
G $b
H "echo $a"
4.1 Le script groupes.sh
Soit le script shell exécutable groupes.sh suivant :
#!/ bin/sh
echo " Bonjour $USER "
echo "Vos groupes :"
id -Gn | grep -Eow $1
echo "Au revoir $(id -un )"
Voici un exemple d’utilisation du script :
$ id -Gn
privat adm cdrom floppy sudo audio dip video plugdev input netdev lpadmin docker
$ ./ groupes .sh '\w+o'
Bonjour privat
Vos groupes :
sudo
audio
video
Au revoir privat
Question 15 ♣ Lorsque j’exécute la commande « USER=blondin ./groupes.sh '.u\w+' », quelles sont les différences
avec l’affichage de l’exemple ?
A La ligne ”sudo” n’est plus affichée
B Une nouvelle ligne ”plugdev” est affichée
C Un message d’erreur est affiché sur la sortie d’erreur
D La ligne ”video” n’est plus affichée
E La ligne ”Au revoir privat” a changé
F La ligne ”Bonjour privat” a changé
1:5
Question 16 ♣
Même question pour la commande « id=blondin ./groupes.sh 'audio video' ».
A La ligne ”Bonjour privat” a changé
B La ligne ”Au revoir privat” a changé
C La ligne ”video” n’est plus affichée
D Une nouvelle ligne ”plugdev” est affichée
E La ligne ”sudo” n’est plus affichée
F Un message d’erreur est affiché sur la sortie d’erreur
5 Réseaux
Question 17 ♣ Soit l’URL https://www.info.uqam.ca/~privat/inf1070/ de la page web du cours. Lesquelles des
affirmations suivantes sont vraies ?
A uqam.ca est un TLD (top level domain)
B Le navigateur web doit déterminer l’adresse MAC du serveur pour accéder à la page web
C www.info.uqam.ca est un nom d’hôte (hostname)
D Le protocole utilisé est HTTP sur TLS
E privat est l’utilisateur du serveur qui a démarré le processus du démon web (httpd)
Question 18
Que signifie le I de IP ?
A Implicit
B 1 (en chiffre romain)
C Information
D Interface
E Internet
F Intermediate
G Intranet
H Infrastructure
Question 19 ♣ Lesquelles des affirmations suivantes sur la cybersécurité sont vraies ?
A Pour héberger un serveur web, il faut acheter un certificat cryptographique
B Les pages web en HTTPS garantissent la confidentialité du contenu des messages
C ssh est une version sécurisée de sh (le shell POSIX)
D Le chiffrement symétrique n’est pratiquement plus utilisé (pas assez sécuritaire)
E Les pages web en HTTPS garantissent l’anonymat de l’adresse IP du client
Question 20 ♣ À l’instar de la commande nc, la commande socat, que nous n’avons pas vue en classe, permet d’ouvrir
et de se connecter aux sockets (voir l’annexe pour consulter le manuel expliquant son utilisation).
Sur la machine locale ying (d’adresse IP 132.208.138.246), on exécute les commandes suivantes
echo toto | nc -l 8881 &
echo toto | nc -l 8882 &
echo tata | nc -l 8883 &
socat tcp - listen :8884 exec:cat &
socat tcp - listen :8885 exec :" nc yang 8886" &
Sur la machine distante yang (d’adresse IP 132.208.132.48), on se connecte par SSH puis, on exécute les commandes
suivantes
echo tata | nc -l 8881 &
echo otot | nc -l 8882 &
echo toto | nc -l 8883 &
socat tcp - listen :8884 exec:rev &
socat tcp - listen :8885 exec :" tr a o" &
socat tcp - listen :8886 exec :" nc localhost 8883" &
Parmi les commandes suivantes, lesquelles lorsqu’exécutées sur la machine locale ying affichent le message toto sur leurs
sorties standard ?
A nc yang 8882
B nc localhost 8885
C nc localhost 8881
D echo toto | nc ying 8883
E echo otot | nc 132.208.132.48 8884
Annexe détachable
cat Concatène des fichiers et les affiche sur la sortie standard. Si aucun fichier n’est fourni, ou si le fichier est « - »,
cat lit l’entrée standard.
echo Affiche une ligne de texte.
grep Recherche les lignes correspondant à un motif donné.
Par défaut, grep affiche les lignes qui contiennent une correspondance au motif.
-E, --extended-regexp Interpréter le motif comme une
expression régulière étendue (ERE).
-w, --word-regexp Sélectionner seulement les lignes
contenant les correspondances qui forment des mots entiers.
La sous-chaîne correspondante doit donc soit se trouver au
début de la ligne, soit être précédée d’un caractère ne pouvant entrer dans la constitution d’un mot. De même, elle
doit soit se trouver à la fin de la ligne, soit être suivie par
un caractère ne pouvant entrer dans la constitution d’un
mot. Les caractères composant les mots sont les lettres, les
chiffres et le souligné « _ ».
-o, --only-matching Afficher seulement les parties (non
vides) correspondantes d’une ligne correspondant, avec
chaque partie correspondante sur une ligne séparée.
id Affiche les UIDs et GIDs effectifs et réels.
-G, --groups N’afficher que les groupes.
-n, --name Afficher les noms de groupe ou d’utilisateur à
la place du numéro d’ID. Nécessite -u, -g, ou -G.
-u, --user N’afficher que l’UID.
jobs Affiche les tâches du shell courantes et leur état.
kill Envoie un signal à des processus. Les processus sont
identifié par leurs PID ou par des spécifications de tâches
(préfixées par %). Si on ne précise pas de signal, TERM est
envoyé, qui demande au processus de se terminer.
-9 Envoie le signal KILL (qui ne peut pas être intercepté
par le processus).
-s Indique le signal à envoyer. Celui-ci peut être spécifié
par son nom ou par son numéro.
ls Affiche le contenu de répertoires.
-l Utilise un format d’affichage long.
nc Établit des connexions TCP et UDP avec un hôte distant. Une fois la connexion établie, l’entrée standard est envoyée a l’hôte distant et les données reçues de l’hôte distant
sont écrites sur la sortie standard.
-l Spécifie que nc doit écouter une connexion entrante.
Un numéro de port local doit être fourni en argument. nc
attend alors qu’un hôte distant se connecte.
Autrement une connexion à un hôte distant est établie.
Un hôte distant et numéro de port distant doivent être fournis en argument. nc échoue si la connexion ne peut être
établie.
pwd Affiche le chemin complet du répertoire courant.
ps Affiche un instantané des processus en cours.
-e Sélectionner tous les processus
-o Format défini par l’utilisateur. Le format est un argument unique sous la forme liste vide ou séparée par des
virgules, qui offre une façon de spécifier des colonnes de sortie individuelles. Des mots clés reconnus sont les suivants :
c (C) : Utilisation du processeur. Actuellement, c’est la
valeur entière du pourcentage d’utilisation sur la durée de
vie du processus.
cmd (CMD) : commande avec tous ses arguments sous
forme de chaîne. Des modifications aux arguments peuvent
être affichées. La sortie dans cette colonne peut contenir des
espaces. Parfois, les arguments de processus ne seront pas
disponibles ; lorsque cela se produit, ps affiche à la place le
nom de l’exécutable entre parenthèses.
pid (PID) : Un nombre représentant l’ID de processus
ppid (PPID) : ID du processus parent
stime (STIME) : Heure du démarrage du processus
sz (SZ) : Taille en pages physiques de l’image mémoire
du processus. Cela inclut le texte, les données et la pile
time (TIME) : Temps de calcul cumulé (utilisation du
processeur) au format "[JJ-]HH:MM:SS".
tty (TTY) : Terminal qui contrôle le processus
uid (UID) : Identifiant de l’utilisateur
rev Inverse l’ordre des caractères de chaque lignes des fichiers ou de l’entrée standard.
sleep Attend une durée déterminée (en secondes).
socat Établit un relais multifonction (SOcket CAT). Socat est un utilitaire en ligne de commande qui établit deux
flux d’octets bidirectionnels et transfère des données entre
eux. Comme les flux peuvent être construits à partir d’un
grand ensemble de types de puits et de sources de données
et que de nombreuses options d’adresse peuvent être appliquées aux flux, socat peut être utilisé à différentes fins.
tcp-listen:port : Écoute sur port et accepte une
connexion TCP. Notez que l’ouverture de cette adresse
bloque jusqu’à ce qu’un client se connecte.
exec:commande : commande est une commande simple
avec des arguments séparés par des espaces simples. Après
avoir exécuté la commande avec succès, socat écrit les données sur l’entrée standard du processus et lit à partir de sa
sortie standard.
tac Concatène et affiche des fichiers à l’envers (la dernière
ligne en premier).
tail Affiche la dernière partie de fichiers.
-n, --lines=K afficher les K dernières lignes, au lieu des
10 dernières.
tr Convertit ou élimine des caractères de l’entrée standard.
Par défaut, tr convertit le caractère du premier ensemble
de caractères vers le caractère correspondant dans le second
ensemble de caractères. Les ensembles sont indiqués sous
forme de chaînes de caractères. La plupart se représentent
eux-mêmes ; autrement, des séquences interprétées sont :
CAR1-CAR2 : tous les caractères de CAR1 à CAR2,
dans l’ordre croissant
\\ : contre-oblique (« backslash »)
+1/8/53+
y
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
y
←− Codez les 8 chiffres de votre code permanent ci-contre,
et inscrivez-le à nouveau ci-dessous avec vos nom et prénom.
Code permanent :
......................................................
Prénom :
......................................................
Nom :
......................................................
Les réponses aux questions sont à donner exclusivement sur cette feuille : les réponses données sur les
feuilles précédentes ne seront pas prises en compte.
Important : noircissez complètement l’intérieur de chaque case (pas de croix, pas de cercles).
y
Question 1 : A
B
C
D
E
F
Question 2 : A
B
C
D
E
F
Question 3 : A
B
C
D
E
F
Question 4 : A
B
C
D
E
F
Question 5 : A
B
C
D
E
F
Question 6 : A
B
C
D
E
F
Question 7 : A
B
C
D
E
F
Question 8 : A
B
C
D
E
F
Question 9 : A
B
C
D
E
F
Question 10 : A
B
C
D
E
F
Question 11 : A
B
C
D
E
F
Question 12 : A
B
C
D
E
F
Question 13 : A
B
C
D
E
F
Question 14 : A
B
C
D
E
F
Question 15 : A
B
C
D
E
F
Question 16 : A
B
C
D
E
F
Question 17 : A
B
C
D
E
Question 18 : A
B
C
D
E
Question 19 : A
B
C
D
E
Question 20 : A
B
C
D
E
F
G
H
G
H
G
H
G
H
G
H
G
H
I
J
y
Download