From 68602589029d3262329bab8f0596b5ce20dfe98a Mon Sep 17 00:00:00 2001 From: David Beniamine <david.beniamine@tetras-libre.fr> Date: Wed, 12 Mar 2025 16:44:18 +0100 Subject: [PATCH] WIP user management for #3 --- .env.sample | 1 + docker-compose.yml | 6 ++---- docker/Dockerfile | 6 +++--- docker/change_password.sh | 16 ++++++++++++++++ docker/custom_startup.sh | 14 +++----------- docker/shadow_monitor.sh | 13 ------------- 6 files changed, 25 insertions(+), 31 deletions(-) create mode 100755 docker/change_password.sh delete mode 100755 docker/shadow_monitor.sh diff --git a/.env.sample b/.env.sample index 952bd55..c42984e 100644 --- a/.env.sample +++ b/.env.sample @@ -4,6 +4,7 @@ COMPOSE_FILE=docker-compose.yml:ports.yml PASS=MON_SUPER_MOT_DE_PASSE NAME=kasmVNC +VNC_USER=kasm HOST=kasmVNC.tetras-lab.io PORT=6901 diff --git a/docker-compose.yml b/docker-compose.yml index 2be139d..6529a4c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,19 +6,17 @@ services: args: - SPYDER=${SPYDER} - ANACONDA=${ANACONDA} - - KASM_USER=${USER} + - KASM_USER=${VNC_USER} image: "kasmvnc-ubuntu-noble:spyder-${SPYDER}_anaconda-${ANACONDA}" container_name: KasmVNC-ubuntu volumes: - homedir:/home/:rw - - etc_shadow:/opt/shadow environment: - VNC_PW=${PASS} - SPYDER=${SPYDER} - ANACONDA=${ANACONDA} - - KASM_USER=${USER} + - KASM_USER=${VNC_USER} volumes: homedir: - etc_shadow: diff --git a/docker/Dockerfile b/docker/Dockerfile index 055cbe0..eac0215 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,7 +19,6 @@ RUN apt-get update && \ apt-get -y dist-upgrade && \ apt-get install -y \ firefox \ - gnome-system-tools \ inotify-tools \ language-pack-fr \ language-pack-fr-base \ @@ -28,7 +27,8 @@ RUN apt-get update && \ locale-gen --purge fr_FR.UTF-8 en_US.UTF-8 RUN mkdir /install -RUN for f in /dockerstartup/*.sh; do sed -i -e "s/kasm_user/$KASM_USER/g" $f; done +RUN usermod -l $KASM_USER kasm-user; \ + for f in /dockerstartup/*.sh; do sed -i -e "s/kasm_user/$KASM_USER/g" $f; done WORKDIR /install # === Install Spyder === # @@ -47,7 +47,7 @@ RUN if [ "$ANACONDA" = true ] ; then \ RUN rm -rf $HOME/.cache COPY custom_startup.sh $STARTUPDIR/custom_startup.sh -COPY shadow_monitor.sh / +COPY change_password.sh / ######### End Customizations ########### diff --git a/docker/change_password.sh b/docker/change_password.sh new file mode 100755 index 0000000..cff6ac1 --- /dev/null +++ b/docker/change_password.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +title="Changement du mot de passe" +password=$(zenity --title="$title" --question="Veuillez entrer votre mot de passe" --entry) +confirm=$(zenity --title="$title" --question="Veuillez entrer votre mot de passe" --entry) +icon="error" +if [ "$password" != "$confirm" ]; then + message=$(echo -e "$password\n$password" | vncpasswd -u $KASM_USER $HOME/.vnc/passwd) + if [ $? -eq 0 ]; then + message="Mot de passe changé" + icon="info" + fi +else + message="La confirmation du mot de passe n'est pas identique au mot de passe" +fi +notify-send -i $icon "$message" diff --git a/docker/custom_startup.sh b/docker/custom_startup.sh index 2c84e09..6225f46 100755 --- a/docker/custom_startup.sh +++ b/docker/custom_startup.sh @@ -7,10 +7,10 @@ sed -i -e "s@kasm-default-profile@$KASM_USER@g" ~/anaconda3/etc/profile.d/conda. mkdir -p $VNC_HOME/Desktop cat <<EOF > $VNC_HOME/Desktop/users.desktop [Desktop Entry] -Type=Link +Type=Application Name=Change password Icon=config-users -URL=/usr/share/applications/users.desktop +Exec=/change_password.sh terminal=true EOF @@ -35,12 +35,4 @@ Icon=$VNC_HOME/anaconda3/share/icons/spyder.png Exec=$(which spyder) eof fi - -if [ -f "/opt/shadow/shadow" ] -then - echo "Copying shadow file" - cp /opt/shadow/shadow /etc/shadow - sync -fi - -/shadow_monitor.sh +chmod +x $VNC_HOME/Desktop/*.desktop diff --git a/docker/shadow_monitor.sh b/docker/shadow_monitor.sh deleted file mode 100755 index 4f3c252..0000000 --- a/docker/shadow_monitor.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -sleep 10 - -while true; do - modif=$(inotifywait --event move /etc) - echo "Modif : '$modif'" - if [ ! -z "$(echo $modif | grep 'MOVED_FROM nshadow')" ]; then - echo "Shadow file has changed" - sync - cp /etc/shadow /opt/shadow/shadow - fi -done - -- GitLab