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
|
# Step 3: Setup PostgreSQL
|
||||||
echo -e "${GREEN}[3/9]${NC} Setting up 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 DATABASE $DB_NAME;
|
||||||
CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';
|
CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
|
GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
|
||||||
ALTER DATABASE $DB_NAME OWNER TO $DB_USER;
|
ALTER DATABASE $DB_NAME OWNER TO $DB_USER;
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✓ PostgreSQL database '$DB_NAME' created"
|
echo "✓ PostgreSQL database '$DB_NAME' created"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user