From 8ccc9e6499e37ce6a0c1383143aeac63467bdd0b Mon Sep 17 00:00:00 2001 From: Siphonight Date: Wed, 19 Jun 2024 10:50:43 +0200 Subject: [PATCH] Optimisations et correction de bugs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout d'un lien symbolique pour l'accès au script par les comptes internes du bastion. Correction d'un bug concernant les clés ssh qui utilisait la systématiquement la dernière clé SSH déclarée. Optimization du script de menu serveurs en retirant les utilisations répétées de whoami et en ajoutant une vérification de la séléction choisie qui prends désormais en compte l'abscence d'input utilisateur sans envoyer une erreur de script. --- Dockerfile | 4 ++-- entrypoint.sh | 2 ++ server_menu.sh | 14 +++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 02acf30..ac289db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ FROM alpine:3.20.0 AS monosphere-builder #~The open Monosphere Project~ -#Version : 0.5.4 +#Version : 0.5.5 #Autor : Siphonight :) #Setting default settings, please change them at run -ARG MONOSPHERE_VERSION="0.5.4 Alpha" +ARG MONOSPHERE_VERSION="0.5.5 Alpha" #Defining build settings diff --git a/entrypoint.sh b/entrypoint.sh index fb4219c..86447a0 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -54,6 +54,8 @@ else elif [ "$is_bastion" -eq "0" ]; then echo "$user ALL=(ALL) NOPASSWD: /usr/local/bin/ttyplay*" | sudo EDITOR='tee -a' visudo echo "$user ALL=(ALL) NOPASSWD: /bin/ls*" | sudo EDITOR='tee -a' visudo + mkdir /home/"$user" + ln -s /opt/public/scripts/server_menu.sh /home/"$user"/server_menu.sh fi if [ "$password" != "0" ]; then diff --git a/server_menu.sh b/server_menu.sh index f0b03e1..0013480 100644 --- a/server_menu.sh +++ b/server_menu.sh @@ -2,8 +2,8 @@ AUTHORIZED_SERVERS_PATH="opt/public/servers" AUTHORIZED_SERVERS_FILE="/$AUTHORIZED_SERVERS_PATH/authorized_servers.txt" -USER_SERVERS=$(grep -w "$(whoami)" $AUTHORIZED_SERVERS_FILE) CONNECTED_USER="$(whoami)" +USER_SERVERS=$(grep -w "$CONNECTED_USER" $AUTHORIZED_SERVERS_FILE) if [ -z "$USER_SERVERS" ]; then echo "Vous n'avez pas l'autorisation de vous connecter à un serveur." @@ -27,19 +27,19 @@ done <<< "$USER_SERVERS" read -r -p "Votre choix (1-${#server_map[@]}): " choice -if [ -z "${server_map[$choice]}" ]; then +if [ -z "$choice" ] || [ -z "${server_map[$choice]}" ]; then echo "Sélection invalide." exit 1 fi selected_server="${server_map[$choice]}" echo "Connexion à $selected_server..." -if [ -z "$server_authkey" ]; then +if [ -z "$(echo "$selected_server" | cut -d ' ' -f 4)" ]; then ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" else - cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" - chown "$(whoami)":"$(whoami)" /home/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" - chmod 600 /home/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" - ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" -i /home/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" + cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" + chown "$CONNECTED_USER":"$CONNECTED_USER" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" + chmod 600 /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" + ttyrec -z --"$(echo "$selected_server" | cut -d ' ' -f 1)"-"$(echo "$selected_server" | cut -d ' ' -f 3)"-- -k 300 --warn-before-kill 60 -- ssh -p "$(echo "$selected_server" | cut -d ' ' -f 2)" -i /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" rm -rf /home/"${CONNECTED_USER:?}"/"$(echo "$selected_server" | cut -d ' ' -f 4)" fi