Connectez-vous en SSH au serveur indiqué en début de séance (avec putty
, la commande ssh
ou autre).
Vingt comptes sont disponibles, de user01
à user20
; le mot de passe est égal au login. Utilisez bien chacun
un compte différent.
- Toutes les ressources techniques sont autorisées.
- La plupart des questions acceptent plusieurs réponses, car il y a souvent plusieurs manières de faire sous Linux.
- Certaines questions ne nécessitent aucune manipulation dans la session SSH. Mais vous avez le droit de tester tout ce que vous voulez !
- Pour chaque réponse, il faut fournir :
- Une réponse rédigée
- Une capture d'écran ou un copier-coller texte des manipulations effectuées
- Une explication du rôle de ces manipulations
- Le programme
sleep infinity
tourne en tâche de fond, exécuté par votre utilisateur. Comment faire pour lui envoyer un signal SIGKILL afin de l'arrêter ?
- Dans votre répertoire utilisateur, taper précisément la commande suivante :
compute_pi.sh
. Pourquoi avez-vous une erreur command not found? (exemple ci-dessous)
user25@pc-91:~$ compute_pi.sh
-bash: compute_pi.sh: command not found
-
Proposer deux méthodes permettant d'exécuter ce script sans avoir l'erreur ci-dessus.
-
Qu'exécute le shell lorsque vous tapez la commande
hello
(script, binaire exécutable, alias, commande du shell, etc.) ? Comment l'avez-vous vérifié ? -
Exécutez la commande
./strange_script.sh
dans votre répertoire utilisateur. Qu'affiche-t-elle ?
-
Un stagiaire a malencontreusement créé un fichier nommé
$HOME
dans votre répertoire utilisateur. Avec quelle commande pouvez-vous le supprimer sans que$HOME
soit interprété comme une variable ? (justifiez votre réponse) -
Dans votre répertoire utilisateur : taper précisément la commande suivante :
./compute_euler.sh
(qui calcule les décimales de la constante d'Euler), elle ne semble pas fonctionner. Comment résoudre le problème ci-dessus ?
user25@pc-91:~$ ./compute_euler.sh
-bash: ./compute_euler.sh: Permission denied
-
Avec
apt
, comment savoir quelles sont les dépendances du paquet libreoffice ? -
Avec
dpkg
, extraire le nom du mainteneur du paquetbeef_1.0.2-3_amd64.deb
présent dans votre répertoire personnel.
-
Un hacker péruvien a obtenu un accès au serveur et a créé un compte sur le système pour pérenniser son accès. Où peut-on identifier ce compte ?
-
Comment savoir à quel(s) groupe(s) appartient votre utilisateur ?
-
Que contient le fichier caché ?
-
En utilisant par exemple la configuration des dépôts APT, identifiez la version de Debian installée sur le serveur.
-
En utilisant
systemctl
: le service emergency est-il en cours d'exécution ?
(Mais vous pouvez quand même tester tout ce que vous voulez dans la VM)
-
Vous souhaitez sauvegarder votre répertoire utilisateur toutes les semaines sur un serveur distant. Comment ajouter une tâche planifiée (avec cron) qui exécute la commande
duplicity full /home/userXX
tous les lundis à 2h du matin ? -
En jetant un coup d'oeil par-dessus l'épaule du sysadmin, vous apercevez que son PATH est défini ainsi. Comment pouvez-vous exploiter cette configuration pour obtenir un accès root sur le serveur ?
root@pc-473:~# echo $PATH
/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-
Vous cherchez un fichier de configuration contenant le mot-clé "PermitRootLogin" mais la commande
grep -R PermitRootLogin /
affiche trop d'erreurs "Permission non accordée" que vous ne souhaitez pas voir. Comment modifier cette commande pour ne plus voir les erreurs ? -
En jetant un coup d'oeil par-dessus l'épaule du sysadmin, vous apercevez ce contenu dans son répertoire utilisateur. Décrivez les bits de mode (permissions) accordés au fichier
run_backup.sh
.
root@pc-473:~# ls -la /root/
total 48
drwxr-xr-x 3 root root 4096 janv. 5 23:20 .
drwxr-xr-x 18 root root 4096 déc. 26 23:20 ..
-rw------- 1 root root 5 déc. 26 23:51 .bash_history
-rw-r--r-- 1 root root 570 janv. 31 2010 .bashrc
-rw-r--r-- 1 root root 148 août 17 2015 .profile
-rwsrwxrwx 1 root root 39 Jan 6 2022 run_backup.sh
-rw------- 1 root root 9355 janv. 5 23:20 .viminfo
-
Suite de la question précédente : proposez un moyen pour obtenir les droits root (pas besoin de tester sur le serveur, la faille n'est pas présente).
-
Qui peut modifier le fichier
/var/log/lastlog
ci-dessous ?
user25@pc-91:~$ ls -la /var/log/lastlog
-rw-rw-r-- 1 root utmp 299884 Jan 9 21:07 /var/log/lastlog
-
Comment afficher la liste des utilisateurs ayant ouvert une session sur le serveur ?
-
Si vous exécutez le script suivant qui appartient à l'utilisateur
root
, sera-t-il exécuté avec ou sans les privilèges du root ? Pourquoi ?
user25@pc-91:~$ ls -la /tmp/script.sh
-rwxrwxr-x 1 root root 215 Jan 9 21:07 /tmp/script.sh
-
Expliquer pourquoi le fichier /etc/passwd est accessible en lecture pour tous les utilisateurs.
-
Pourquoi le script suivant, qui sera exécuté en root, est-il très (très) risqué à utiliser ?
#!/bin/bash
if [[ $# -ne 2 ]]
then
echo "Usage: $0 <user to delete>"
echo "A nice tool to delete all the file of a specified user"
exit 1
fi
# Get the user home directory from /etc/passwd (6th field of the line)
user_dir = $(grep $1 /etc/passwd | cut -d ":" -f 6)
# Recursively remove this home directory
rm -rf $user_dir/
- Comment afficher les dernières lignes des logs systemd du service "ssh" ?