Test
This commit is contained in:
parent
056a59a07b
commit
4ac11a8dd4
21
provision.sh
21
provision.sh
@ -7,20 +7,20 @@ YELLOW='\033[1;33m'
|
|||||||
RED='\033[1;31m'
|
RED='\033[1;31m'
|
||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
# 1. Root Check
|
# Root Check
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -ne 0 ]; then
|
||||||
echo -e "${RED}Please run this script as root.${NC}"
|
echo -e "${RED}Please run this script as root.${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. OS Detection
|
# OS Detection
|
||||||
echo -e "${YELLOW}LOG: Detecting OS...${NC}"
|
echo -e "${YELLOW}LOG: Detecting OS...${NC}"
|
||||||
if [ -f /etc/os-release ]; then
|
if [ -f /etc/os-release ]; then
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
OS=$ID
|
OS=$ID
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 3. Install Prerequisites (Git, Make, Zsh, Sudo)
|
# Install Prerequisites (Git, Make, Zsh, Sudo)
|
||||||
echo -e "${YELLOW}LOG: Updating system and installing base tools...${NC}"
|
echo -e "${YELLOW}LOG: Updating system and installing base tools...${NC}"
|
||||||
|
|
||||||
if [ "$OS" == "arch" ] || [ "$OS" == "manjaro" ]; then
|
if [ "$OS" == "arch" ] || [ "$OS" == "manjaro" ]; then
|
||||||
@ -35,7 +35,7 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 4. Interactive Prompts
|
# Interactive Prompts
|
||||||
echo -e "${GREEN}---------------------------------------${NC}"
|
echo -e "${GREEN}---------------------------------------${NC}"
|
||||||
echo -e "${GREEN} USER PROVISIONING WIZARD ${NC}"
|
echo -e "${GREEN} USER PROVISIONING WIZARD ${NC}"
|
||||||
echo -e "${GREEN}---------------------------------------${NC}"
|
echo -e "${GREEN}---------------------------------------${NC}"
|
||||||
@ -49,7 +49,7 @@ USER_UID=${USER_UID:-1000}
|
|||||||
read -p "Enter GID (default: 1000): " USER_GID
|
read -p "Enter GID (default: 1000): " USER_GID
|
||||||
USER_GID=${USER_GID:-1000}
|
USER_GID=${USER_GID:-1000}
|
||||||
|
|
||||||
# 5. Group Creation
|
# Group Creation
|
||||||
if getent group "$USER_GID" >/dev/null; then
|
if getent group "$USER_GID" >/dev/null; then
|
||||||
echo -e "${YELLOW}LOG: Group with GID $USER_GID already exists. Using it.${NC}"
|
echo -e "${YELLOW}LOG: Group with GID $USER_GID already exists. Using it.${NC}"
|
||||||
else
|
else
|
||||||
@ -57,7 +57,7 @@ else
|
|||||||
groupadd -g "$USER_GID" "$USERNAME"
|
groupadd -g "$USER_GID" "$USERNAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 6. User Creation
|
# User Creation
|
||||||
if id "$USERNAME" &>/dev/null; then
|
if id "$USERNAME" &>/dev/null; then
|
||||||
echo -e "${YELLOW}LOG: User $USERNAME already exists. Skipping creation.${NC}"
|
echo -e "${YELLOW}LOG: User $USERNAME already exists. Skipping creation.${NC}"
|
||||||
else
|
else
|
||||||
@ -73,15 +73,20 @@ else
|
|||||||
passwd "$USERNAME"
|
passwd "$USERNAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 7. Sudo Configuration (Passwordless)
|
# Sudo Configuration (Passwordless)
|
||||||
echo -e "${YELLOW}LOG: Configuring passwordless sudo...${NC}"
|
echo -e "${YELLOW}LOG: Configuring passwordless sudo...${NC}"
|
||||||
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/90-$USERNAME"
|
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/90-$USERNAME"
|
||||||
chmod 0440 "/etc/sudoers.d/90-$USERNAME"
|
chmod 0440 "/etc/sudoers.d/90-$USERNAME"
|
||||||
|
|
||||||
# 8. Arch Specific: Uncomment wheel in sudoers if not already active
|
# Arch Specific: Uncomment wheel in sudoers if not already active
|
||||||
if [ "$OS" == "arch" ]; then
|
if [ "$OS" == "arch" ]; then
|
||||||
# Ensure the 'wheel' group is actually enabled in the main config if drop-in fails
|
# Ensure the 'wheel' group is actually enabled in the main config if drop-in fails
|
||||||
sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
|
sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Cloning Dotfiles
|
||||||
|
echo -e "${YELLOW}LOG: Cloning dotfiles for $USERNAME...${NC}"
|
||||||
|
sudo -u "$USERNAME" git clone https://git.mangopig.tech/MangoPig/Dot-Zsh.git "/home/$USERNAME/Config/Dot-Zsh"
|
||||||
|
|
||||||
|
|
||||||
echo -e "${GREEN}✅ Server Provisioned! Log out and SSH as $USERNAME.${NC}"
|
echo -e "${GREEN}✅ Server Provisioned! Log out and SSH as $USERNAME.${NC}"
|
||||||
Loading…
x
Reference in New Issue
Block a user