Fix proxmox_setup.sh to work when running as root in LXC
- Detect if running as root and use 'su' instead of 'sudo' for postgres - Fixes: sudo: command not found error in LXC containers
This commit is contained in:
parent
204cd0e75b
commit
9bb39c9913
@ -51,13 +51,27 @@ apt install -y \
|
||||
|
||||
# Step 3: Setup PostgreSQL
|
||||
echo -e "${GREEN}[3/9]${NC} Setting up PostgreSQL..."
|
||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | grep -q 1 || \
|
||||
sudo -u postgres psql << EOF
|
||||
|
||||
# Check if we need sudo (if we're not root)
|
||||
if [ "$EUID" -eq 0 ]; then
|
||||
# Running as root, use su directly
|
||||
su - postgres -c "psql -tc \"SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'\"" | grep -q 1 || \
|
||||
su - postgres -c "psql << EOF
|
||||
CREATE DATABASE $DB_NAME;
|
||||
CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';
|
||||
GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
|
||||
ALTER DATABASE $DB_NAME OWNER TO $DB_USER;
|
||||
EOF"
|
||||
else
|
||||
# Not root, use sudo
|
||||
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | grep -q 1 || \
|
||||
sudo -u postgres psql << EOF
|
||||
CREATE DATABASE $DB_NAME;
|
||||
CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';
|
||||
GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
|
||||
ALTER DATABASE $DB_NAME OWNER TO $DB_USER;
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "✓ PostgreSQL database '$DB_NAME' created"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user