You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.2 KiB

#!/bin/bash
# this script will
# - disable root ssh
# - disable password ssh
# - create a new user with sudo
# - give them ssh from root (OR override with creds in current dir)
# - install:
# - go
# - zsh
# - ohmyzsh (+theme +config +plugins)
# - nvim (+nvchad +my nvchad config)
read -p "Enter a username: " user
read -p "Enter a password: " pw
# disable root and password ssh
echo "Configuring SSH..."
sed -i "s/PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config
sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_config
systemctl restart ssh
# remove root password
echo "Removing root password..."
passwd -dl root > /dev/null
# if user doesn't exist, make them and make their .ssh folder
id -u marcy > /dev/null
if [ $? -eq 1 ]; then
echo "Adding user $user..."
useradd -s /bin/bash -d /home/$user/ -m -G sudo $user
echo $user:$pw | chpasswd
mkdir /home/$user/.ssh
else
echo "User $user already exists! Continuing..."
fi
echo "Installing SSH keys..."
# get authorized_keys from root OR prompt user to paste it in
if [ -f /root/.ssh/authorized_keys ]; then
# install root authorized keys
echo "Installing authorized_keys from root..."
cp /root/.ssh/authorized_keys /home/$user/.ssh/authorized_keys
else
# install ssh creds from input
echo "No authorized_keys found in root. Enter your public key, followed by an exclamation point (!):"
read -d '!' authkeys
touch /home/$user/.ssh/authorized_keys
echo "$authkeys" > /home/$user/.ssh/authorized_keys
fi
# get id_rsa from root OR prompt user to paste private key in
if [ -f /root/.ssh/id_rsa ]; then
# install current dir ssh creds
echo "Installing id_rsa from root..."
cp /root/.ssh/id_rsa /home/$user/.ssh/id_rsa
else
# install ssh creds from input
echo "No id_rsa found in root. Enter your id_rsa key, followed by an exclamation point (!):"
read -d '!' idrsa
touch /home/$user/.ssh/id_rsa
echo "$idrsa" > /home/$user/.ssh/id_rsa
fi
# give ssh creds correct perms + ownership
chmod 0700 /home/$user/.ssh
chmod 0600 /home/$user/.ssh/authorized_keys
chmod 0600 /home/$user/.ssh/id_rsa
chown $user /home/$user/.ssh
chown $user /home/$user/.ssh/authorized_keys
chown $user /home/$user/.ssh/id_rsa
# install packages + update apt
echo "Updating and installing packages..."
# apt update -y && apt upgrade -y
pacman -Syu
pacman -S zsh gcc zip unzip ripgrep fd-find git -y
# make zsh default shell
chsh -s $(which zsh) $user
### run all subsequent commands as $user
# for some reason this specific command breaks if its in the block after 'su #user <<EOF'
echo "Installing oh-my-zsh..."
su $user -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended'
su $user <<EOF
cd ~
# configure git
echo "Configuring Git..."
git config --global user.name "Gabe Farrell"
git config --global user.email "gabe@mnrva.dev"
git config --global url.ssh://git@github.com/.insteadOf https://github.com/
# configure zsh
echo "Configuring ZSH..."
mkdir ~/.zsh
echo "Installing zsh theme..."
curl -fsSL "https://raw.githubusercontent.com/moarram/headline/main/headline.zsh-theme" >> ~/.zsh/headline.zsh-theme
echo "Installing zsh config..."
curl -fsSL "https://gist.githubusercontent.com/mnrva-dev/8c82409e041c59145d27d02939d50d19/raw/a01cfb09fe31a36b56ecbf1211862a29e1db276d/gistfile1.txt" >> ~/.zshrc
echo "Installing zsh plugins..."
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete
# install nvim + nvchad + configure nvchad
echo "Installing nVim..."
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz
tar xzvf nvim-linux64.tar.gz
echo "Configuring NVChad..."
git clone https://github.com/NvChad/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
rm -rf ~/.config/nvim/lua/custom
git clone git@github.com:gabehf/nvchad-custom.git ~/.config/nvim/lua/custom
EOF
echo "Done!"