diff --git a/Dockerfile b/Dockerfile index 57aea88..5fb8d51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,10 @@ ENV TZ=Europe/Paris # SSH server RUN mkdir /run/sshd -CMD ["/usr/sbin/sshd", "-E", "/dev/stderr", "-D"] +CMD ["netcat", "-lp", "5000", "-e", "/root/http/http_bash.sh"] + +# Nginx conf +COPY ./default /etc/nginx/sites-enabled/default # Entrypoint COPY ./entrypoint.sh ./entrypoint.sh diff --git a/default b/default new file mode 100644 index 0000000..80b5bdf --- /dev/null +++ b/default @@ -0,0 +1,22 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + root /root/exercices/html; + + index index.html; + + server_name _; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + try_files $uri $uri/ =404; + autoindex on; + } + + location ~ /.sh$ { + proxy_pass http://127.0.0.1:5000; + } + +} diff --git a/entrypoint.sh b/entrypoint.sh index 372f796..35005f2 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -73,6 +73,13 @@ echo "-------------------------------------------------------------" echo " Setting root password" echo "root\nroot" | passwd 2>/dev/null >/dev/null +echo "-------------------------------------------------------------" +echo " Starting Nginx" +nginx -c '/etc/nginx/nginx.conf' + +echo "-------------------------------------------------------------" +echo " Starting SSH server" +/usr/sbin/sshd -E /dev/stderr echo "-------------------------------------------------------------" echo " Running main process" diff --git a/exercices/gen_arbo.sh b/exercices/gen_arbo.sh old mode 100644 new mode 100755 diff --git a/exercices/gen_enonces.sh b/exercices/gen_enonces.sh old mode 100644 new mode 100755 diff --git a/exercices/gen_seed.sh b/exercices/gen_seed.sh old mode 100644 new mode 100755 diff --git a/exercices/init.sh b/exercices/init.sh old mode 100644 new mode 100755 diff --git a/readme.md b/readme.md index f672caf..9c898b3 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ # Chasse au trésor en ssh -Un environnemnet SSH avec des exercices ludiques. +Un environnement SSH avec des exercices ludiques. ## Licence GPLv3 @@ -10,30 +10,29 @@ ou Créer un fichier `config/passwords.txt` qui contient la liste des couples nom=password (un nom/mot de passe par ligne). -Les comptes seront créés au démarage du conteneur. +Les comptes seront créés au démarrage du conteneur. ## Présentation Chaque élève a un dossier perso dans `/home` dans lequel il peut se connecter en SSH à l’aide de son mot de passe dans `config/passwords.txt`. -## Génération des données aléatoires pour les exercices -ATTENTION ! Cette génération ne doit pas se faire quand les élèves travaillent, leurs exercices seraient alors invalidés ! +## Génération de l’activité ``` -TODO +cd exercices +./init.sh ``` -## Re-Génération des exercices -Pour créer les fichiers et les questions de chaque élèves on utilise la commande suivante. -Utile si l’élève a sacagé son environnement de travail. +## Énoncés des exercices +Les exercices sont disponibles pour les élèves via un navigateur. + +## Réparer les fichiers d’élève +Si un·e élève a saccagé ses fichiers, il est possible de les réparer en lançant la commande suivante. +$username est son nom d’utilisateurice. ``` -TODO +cd exercices +./init.sh $username ``` -## Correction -Pour suivre la progression des élèves, on utilise le script suivant. -``` -TODO -``` - -## Ajouter des élèves +## Ajouter des élèves en cours de route Si l’activité est déjà lancée et que vous souhaitez ajouter des élèves, faites le IMPÉRATIVEMENT __en bas du fichier__ `config/users.txt` ou `config/passwords.txt`. -Sans quoi les comptes peuvent être recréés avec des UID différents au redémarrage du conteneur et les droits seront incohérents. +Sans quoi les comptes peuvent être recréés avec des UID différents au redémarrage du conteneur et les droits seront incohérents. +Vous pouvez ensuite générer à nouveau l’activité pour créer les dossiers des nouve·lles·aux élèves.