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
#~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

View File

@ -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

View File

@ -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