#!/bin/sh ssh_command="" check_key_file() { chmod 700 /tilde/key/* key_file="$(find /tilde/key | tail -n1)" if [ -f "$key_file" ] then while [ -z "$(cat $key_file | head -n1 | grep -- '-----BEGIN .* PRIVATE KEY-----')" ] do echo "$key_file does not look like a private key file, try again" key_file="$(find /tilde/key | tail -n1)" bash done ssh_command="ssh -i $key_file $tilde_username@$tilde_name" fi } connection_test() { while ! $ssh_command 'exit' do echo "There seems to be a problem connecting to the tilde" echo "Use this shell to try and fix any problems, then try connecting again by exiting the shell" bash done } configure_user_files() { # TODO: refactor file creation to be script-independant # user_homedir=$1 # tilde_homedir=$2 user_homedir="/home/$tilde_username" tilde_homedir="/tilde/$tilde_name/home/$tilde_username" sed "s|{{ TILDE_USERNAME }}|$tilde_username|g" "./dotprofile.template" > "$user_homedir/.profile" sed -i "s|{{ TILDE_NAME }}|$tilde_name|g" "$user_homedir/.profile" sed -i "s|{{ KEY_FILE }}|$key_file|g" "$user_homedir/.profile" sed -i "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "$user_homedir/.profile" sed -i "s|{{ USER_HOMEDIR }}|$user_homedir|g" "$user_homedir/.profile" sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./user-dirs.dirs.template" > "$user_homedir/.config/user-dirs.dirs" sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./dotbashrc.template" > "$user_homedir/.bashrc" } configure_user() { user_homedir="/home/$tilde_username" tilde_homedir="/tilde/$tilde_name/home/$tilde_username" mkdir -p "$tilde_homedir" mkdir -p "$user_homedir" cp "/root/.gtkrc-2.0" "$user_homedir" cp -r "/root/.config" "$user_homedir" configure_user_files useradd "$tilde_username" -d "$user_homedir" chsh -s '/bin/bash' "$tilde_username" chown -R "$tilde_username:$tilde_username" "$user_homedir" chown -R "$tilde_username:$tilde_username" "$tilde_homedir" chown "$tilde_username:$tilde_username" "$key_file" echo "$startx_command" > "$user_homedir/.xinitrc" usermod -a -G sudo "$tilde_username" mkdir '/etc/systemd/system/getty@tty1.service.d' echo "[Service]" > '/etc/systemd/system/getty@tty1.service.d/override.conf' echo "ExecStart=" >> '/etc/systemd/system/getty@tty1.service.d/override.conf' echo "ExecStart=-/sbin/agetty --autologin $tilde_username %I $TERM" >> '/etc/systemd/system/getty@tty1.service.d/override.conf' echo "Type=idle" >> '/etc/systemd/system/getty@tty1.service.d/override.conf' systemctl daemon-reload } configure_network() { echo "Press ENTER to configure network" read dummy_var nmtui }