diff options
author | Georg | 2021-08-14 20:38:16 +0200 |
---|---|---|
committer | Georg | 2021-08-14 20:38:16 +0200 |
commit | 39e54cc83b2d4d78191ada3dceafa22208336641 (patch) | |
tree | 5223463e800b43ff22b4b6c444c49cc2759724ea /lcpubsh/bin/generate.sh | |
parent | c27753da863b3c44ceb81b2fe6ac689550704f89 (diff) | |
download | public-shell-master.tar.gz public-shell-master.tar.bz2 public-shell-master.zip |
Signed-off-by: Georg <georg@lysergic.dev>
Diffstat (limited to 'lcpubsh/bin/generate.sh')
-rw-r--r-- | lcpubsh/bin/generate.sh | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/lcpubsh/bin/generate.sh b/lcpubsh/bin/generate.sh index 299cab6..b80ac49 100644 --- a/lcpubsh/bin/generate.sh +++ b/lcpubsh/bin/generate.sh @@ -1,48 +1,55 @@ #!/bin/sh # georg@lysergic.dev set -e -echo "Shell generation invoked." | nc -N 127.0.0.2 2424 +OUTPUT="nc -N 127.0.0.2 2424" +echo "Shell generation invoked." | $OUTPUT if [ ! "$#" -eq 0 ]; then user="$(echo "$1" |tr '[:upper:]' '[:lower:]')" case "$2" in - "archlinux") - os="archlinux" - image="lc-archlinux-userbase-v2:sh0" - ;; - "ubuntu") - os="ubuntu" - image="lcbase_ubuntu_14082021_2:sh0" - ;; - *) - echo "Choose between archlinux or ubuntu" - exit 1 - ;; + "archlinux") + os="Arch Linux" + image="lc-archlinux-userbase-v2:sh0" + ;; + "ubuntu") + os="Ubuntu (Latest)" + image="lcbase_ubuntu_14082021_2:sh0" + ;; + *) + echo "Choose between archlinux or ubuntu" + exit 1 + ;; esac fingerprint_ecdsa="$(ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub)" -if id "$1" &>/dev/null; then - echo "Aborted. Username is already taken." - echo "Aborted: $user is already taken." | nc -N 127.0.0.2 2424 +if id "$user" &>/dev/null; then + echo "Aborted. Username is already taken." + echo "Aborted: $user is already taken." | $OUTPUT else - echo "Hang on ..." - echo "Creating $user locally." | nc -N 127.0.0.2 2424 - sudo useradd -mUs /opt/lcpubsh/bin/pubsh -G docker $user - pass=$(shuf -n2 /usr/share/dict/words | tr -d '\n') - echo "Appending to config." | nc -N 127.0.0.2 2424 - echo "" >> /etc/dockersh.ini - echo "[$user]" >> /etc/dockersh.ini - echo "image = $user" >> /etc/dockersh.ini - echo "Forking Docker base image ($image)." | nc -N 127.0.0.2 2424 - /opt/lcpubsh/bin/make_lc_user_image.sh $user $image | nc -N 127.0.0.2 2424 - echo "Setting password." | nc -N 127.0.0.2 2424 - sudo /opt/adduser.sh $user $pass - echo "@$user ssh -p 2222 $user@sh.lib.casa" | nc -N 127.0.0.2 2424 - echo "@$user $fingerprint_ecdsa" | nc -N 127.0.0.2 2424 - echo "@$user $pass" | nc -N 127.0.0.2 2424 - echo "#universe $pass" | nc -N 127.0.0.2 2424 - echo "Done." | nc -N 127.0.0.2 2424 - echo "OK. Details sent to user and/or admins." + echo "Hang on ..." + echo "Creating $user locally." | $OUTPUT + sudo useradd -mUs /opt/lcpubsh/bin/pubsh -G docker $user + pass=$(shuf -n2 /usr/share/dict/words | tr -d '\n') + echo "Appending to config." | $OUTPUT + echo "" >> /etc/dockersh.ini + echo "[$user]" >> /etc/dockersh.ini + echo "image = $user" >> /etc/dockersh.ini + echo "Forking Docker base image ($image)." | $OUTPUT + /opt/lcpubsh/bin/make_lc_user_image.sh $user $image | $OUTPUT + echo "Setting password." | $OUTPUT + sudo /opt/adduser.sh $user $pass + echo "@$user A shell with the operating system $os has been spawned for you." | $OUTPUT + echo "@$user Option A) Connect directly:" | $OUTPUT + echo "@$user ssh -p 2222 $user@sh.lib.casa" | $OUTPUT + echo "@$user Option B) Connect through Tor:" | $OUTPUT + echo "@$user torsocks ssh -p 2222 $user@yib4545ooc4bndo27tcdd4jdeqsfnjm44yacusemwf5eu7lnlwskt5ad.onion" | $OUTPUT + echo "@$user Confirm the fingerprint (displayed upon connecting for the first time) matches the one shown here:" | $OUTPUT + echo "@$user $fingerprint_ecdsa" | $OUTPUT + echo "@$user And finally, here's your password:" | $OUTPUT + echo "@$user $pass" | $OUTPUT + echo "@$user Have fun!" | $OUTPUT + echo "#universe $pass" | $OUTPUT + echo "Done." | $OUTPUT + echo "OK. Details sent to user and/or admins." fi else - echo "No argument supplied." + echo "No argument supplied." fi - |