diff --git a/Dockerfile b/Dockerfile index d220906..6f78432 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,7 @@ COPY ./data/dice.ascii /opt/dice.ascii RUN chmod 444 /opt/dice.ascii RUN touch /etc/first RUN touch /etc/isen2 - +RUN apt install manpages-dev man-db shc gcc build-essential iputils-ping nmap -y COPY ./data/bin/firstconnect /usr/bin/firstconnect RUN chmod 755 /usr/bin/firstconnect RUN chown root:root /usr/bin/firstconnect diff --git a/README.md b/README.md index ab8bcd3..04df34a 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,13 @@ NAME Surname NAME2 Surname2 ``` +## Motd + +You can add a specific motd to copy on insances + +You can use specfic tag '__MOTD__' in your motd which be replaced by the NAMES of data/liste + + ## Build Docker image ``` diff --git a/data/motd b/data/motd new file mode 100644 index 0000000..49762ba --- /dev/null +++ b/data/motd @@ -0,0 +1 @@ +__MOTD__ SSH diff --git a/generate.sh b/generate.sh index fed5b1b..4711ac7 100755 --- a/generate.sh +++ b/generate.sh @@ -1,12 +1,23 @@ #!/bin/bash -usage() { - echo "ROOT ???" - exit + +cd $(dirname $0) + +usage () { + + Res=$1 + case $Res in + 1) echo "root for use" ;; + 2) echo "Check bin : $BinNeed" ;; + 0) echo "Everything's Gonna Be Alright" ;; + *) echo "Something strange just happend ... "; Res=666 ;; + esac + + exit $Res } -cd $(dirname $0) +[[ "$(whoami)" != "root" ]] && usage 1 Liste=./data/liste ListeMachinaUser=./data/Machina @@ -20,6 +31,16 @@ TMP=/tmp [[ $(whoami) != "root" ]] && usage cp docker-compose.yml.template.head ${TMP}/docker-compose.yml rm -f ${TMP}/hostname +BinNeed="figlet mke2fs truncate docker docker-compose " + +CheckBinCpt=0 +for CheckBin in ${BinNeed} + do + [[ -z $(which $CheckBin) ]] && ((CheckBinCpt++)) + done + +[[ ${CheckBinCpt} -ne 0 ]] && usage 2 + [[ "$1" == "del" ]] && read -p "ARE YOU SURE BIATCH ?????? (yes/no) : " ans @@ -45,6 +66,9 @@ for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" umount ./data/students/part/${User}_${Machina}_part rm -Rf ./data/students/part/${User}_${Machina}_part rm ./data/students/part/${User}_${Machina} + [[ ! -z $(mount | grep ${User}_part) ]] && umount ./data/students/part/${User}_part + [[ -d ./data/students/part/${User}_part ]] && rm -Rf ./data/students/part/${User}_part + [[ -f ./data/students/part/${User} ]] && rm ./data/students/part/${User} else if [[ ! -f ./data/students/part/${User}_${Machina} ]] then @@ -67,6 +91,31 @@ for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" [[ -z $(echo $User | grep -iE "astier|lefebvre|catanese") ]] && rm -f ./data/students/part/${User}_${Machina}_part/.gen/.ssh/id* ./data/students/part/${User}_${Machina}_part/.ssh/id* chown -Rf 1000:1000 ./data/students/part/${User}_${Machina}_part/ echo "10.10.10.${tID} ${User,,}"-${Machina} >> ${TMP}/hostname + echo "Generate $User" + mkdir -p ./data/students/part/ + touch ./data/students/part/${User} + mkdir -p ./data/students/part/${User}_part + truncate -s 200M ./data/students/part/${User} &> /dev/null + mke2fs -t ext4 -F ./data/students/part/${User} &> /dev/null + mount ./data/students/part/${User} ./data/students/part/${User}_part + cp -Rf ./data/skel/. ./data/students/part/${User}_part/ + mkdir -p ./data/students/part/${User}_part/.gen/ + mv ./data/students/part/${User}_part/backup.sh ./data/students/part/${User}_part/.gen/ + if [[ -f ./data/motd ]] + then + cat ./data/motd | sed "s#__MOTD__#$User#g" | figlet | tee ./data/students/part/${User}_part/.gen/motd &> /dev/null + + else + echo "host : ${User^^}" | figlet | tee /tmp/motd &> /dev/null + echo "---------" | figlet | tee -a /tmp/motd &> /dev/null + echo "Isen 2021 - M 1"| figlet | tee -a /tmp/motd &> /dev/null + cp /tmp/motd ./data/students/part/${User}_part/.gen/ + fi + cp -rfp ./data/ssh/ ./data/students/part/${User}_part/.gen/.ssh + cp -rfp ./data/ssh/ ./data/students/part/${User}_part/.ssh + [[ -z $(echo $User | grep -iE "astier|lefebvre|catanese") ]] && rm -f ./data/students/part/${User}_part/.gen/.ssh/id* ./data/students/part/${User}_part/.ssh/id* + chown -Rf 1000:1000 ./data/students/part/${User}_part/ + echo "10.10.10.${tID} ${User,,}" | tee -a /tmp/hostname &> /dev/null echo " ${User}_${Machina}: image: isensshbase @@ -101,3 +150,12 @@ for Dir in $( ls -1 ./data/students/part/ | grep _part) chmod 777 ./docker-compose.yml +cat docker-compose.yml.template.footer | tee -a /tmp/docker-compose.yml &> /dev/null +cp /tmp/docker-compose.yml . +for Dir in $( ls -1 ./data/students/part/ | grep _part) + do + [[ -f /tmp/hostname ]] && cp /tmp/hostname ./data/students/part/${Dir}/.gen + done + + +usage 0