70 lines
1.5 KiB
Bash
70 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
echo "================================="
|
|
echo " User Setup"
|
|
echo "================================="
|
|
|
|
read -rp "Enter new username: " USERNAME
|
|
|
|
if id "$USERNAME" &>/dev/null; then
|
|
echo "User already exists"
|
|
exit 1
|
|
fi
|
|
|
|
useradd -m -s /bin/bash "$USERNAME"
|
|
passwd "$USERNAME"
|
|
|
|
read -rp "Add user to sudo group? (y/n): " ADD_SUDO
|
|
if [[ "$ADD_SUDO" == "y" ]]; then
|
|
usermod -aG sudo "$USERNAME"
|
|
fi
|
|
|
|
mkdir -p "/home/$USERNAME/.ssh"
|
|
|
|
echo
|
|
echo "SSH Setup:"
|
|
echo "1) Copy root authorized_keys"
|
|
echo "2) Enter new public key"
|
|
echo "3) Skip"
|
|
|
|
read -rp "Choose option: " SSH_OPTION
|
|
|
|
case "$SSH_OPTION" in
|
|
1)
|
|
if [[ -f /root/.ssh/authorized_keys ]]; then
|
|
cp /root/.ssh/authorized_keys "/home/$USERNAME/.ssh/"
|
|
fi
|
|
;;
|
|
2)
|
|
read -rp "Paste public key: " PUBKEY
|
|
echo "$PUBKEY" > "/home/$USERNAME/.ssh/authorized_keys"
|
|
;;
|
|
3)
|
|
;;
|
|
*)
|
|
echo "Skipping SSH setup"
|
|
;;
|
|
esac
|
|
|
|
chown -R "$USERNAME:$USERNAME" "/home/$USERNAME/.ssh"
|
|
chmod 700 "/home/$USERNAME/.ssh"
|
|
|
|
if [[ -f "/home/$USERNAME/.ssh/authorized_keys" ]]; then
|
|
chmod 600 "/home/$USERNAME/.ssh/authorized_keys"
|
|
fi
|
|
|
|
if command -v docker &>/dev/null; then
|
|
echo
|
|
read -rp "Docker is installed. Add $USERNAME to the docker group? (y/n): " ADD_DOCKER
|
|
if [[ "$ADD_DOCKER" == "y" ]]; then
|
|
usermod -aG docker "$USERNAME"
|
|
echo "Added $USERNAME to the docker group."
|
|
else
|
|
echo "Skipped adding $USERNAME to docker group."
|
|
fi
|
|
fi
|
|
|
|
echo "User setup complete"
|