Optimisations et correction de bugs

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.
This commit is contained in:
Siphonight 2024-06-19 10:50:43 +02:00
parent 9770e0cca4
commit 8ccc9e6499
3 changed files with 11 additions and 9 deletions

View File

@ -1,11 +1,11 @@
FROM alpine:3.20.0 AS monosphere-builder FROM alpine:3.20.0 AS monosphere-builder
#~The open Monosphere Project~ #~The open Monosphere Project~
#Version : 0.5.4 #Version : 0.5.5
#Autor : Siphonight :) #Autor : Siphonight :)
#Setting default settings, please change them at run #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 #Defining build settings

View File

@ -54,6 +54,8 @@ else
elif [ "$is_bastion" -eq "0" ]; then 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: /usr/local/bin/ttyplay*" | sudo EDITOR='tee -a' visudo
echo "$user ALL=(ALL) NOPASSWD: /bin/ls*" | 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 fi
if [ "$password" != "0" ]; then if [ "$password" != "0" ]; then

View File

@ -2,8 +2,8 @@
AUTHORIZED_SERVERS_PATH="opt/public/servers" AUTHORIZED_SERVERS_PATH="opt/public/servers"
AUTHORIZED_SERVERS_FILE="/$AUTHORIZED_SERVERS_PATH/authorized_servers.txt" AUTHORIZED_SERVERS_FILE="/$AUTHORIZED_SERVERS_PATH/authorized_servers.txt"
USER_SERVERS=$(grep -w "$(whoami)" $AUTHORIZED_SERVERS_FILE)
CONNECTED_USER="$(whoami)" CONNECTED_USER="$(whoami)"
USER_SERVERS=$(grep -w "$CONNECTED_USER" $AUTHORIZED_SERVERS_FILE)
if [ -z "$USER_SERVERS" ]; then if [ -z "$USER_SERVERS" ]; then
echo "Vous n'avez pas l'autorisation de vous connecter à un serveur." 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 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." echo "Sélection invalide."
exit 1 exit 1
fi fi
selected_server="${server_map[$choice]}" selected_server="${server_map[$choice]}"
echo "Connexion à $selected_server..." 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)" 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 else
cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" cp /"$AUTHORIZED_SERVERS_PATH"/"$(echo "$selected_server" | cut -d ' ' -f 4)" /home/"$CONNECTED_USER"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
chown "$(whoami)":"$(whoami)" /home/"$(whoami)"/"$(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/"$(whoami)"/"$(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/"$(whoami)"/"$(echo "$selected_server" | cut -d ' ' -f 4)" "$(echo "$selected_server" | cut -d ' ' -f 3)"@"$(echo "$selected_server" | cut -d ' ' -f 1)" 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)" rm -rf /home/"${CONNECTED_USER:?}"/"$(echo "$selected_server" | cut -d ' ' -f 4)"
fi fi