- Modify the script to explicitly set the owner of the database directory to root, ensuring proper access for SQLite. - Include error handling to attempt ownership change with sudo if the initial command fails, improving robustness of the script.
66 lines
1.9 KiB
Bash
Executable File
66 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script zum Prüfen der Datenbank-Berechtigungen und User-Konfiguration
|
|
|
|
echo "🔍 Datenbank-Berechtigungen und User-Check"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Prüfe User im Container
|
|
echo "👤 User im Container:"
|
|
docker exec hoerdle whoami
|
|
echo ""
|
|
|
|
# Prüfe UID/GID
|
|
echo "🆔 UID/GID des laufenden Prozesses:"
|
|
docker exec hoerdle id
|
|
echo ""
|
|
|
|
# Prüfe Datenbankdatei
|
|
echo "💾 Datenbank-Datei-Informationen (im Container):"
|
|
docker exec hoerdle ls -lh /app/data/prod.db
|
|
echo ""
|
|
|
|
# Prüfe Datenbankverzeichnis
|
|
echo "📁 Datenbankverzeichnis-Berechtigungen (im Container):"
|
|
docker exec hoerdle ls -ld /app/data
|
|
echo ""
|
|
|
|
# Prüfe ob Datei schreibbar ist
|
|
echo "✍️ Schreibbarkeitstest:"
|
|
if docker exec hoerdle sh -c "test -w /app/data/prod.db && echo '✅ Datei ist schreibbar' || echo '❌ Datei ist NICHT schreibbar'"; then
|
|
echo " Datei ist schreibbar"
|
|
else
|
|
echo " ❌ Datei ist NICHT schreibbar!"
|
|
fi
|
|
|
|
# Prüfe ob Verzeichnis schreibbar ist
|
|
if docker exec hoerdle sh -c "test -w /app/data && echo '✅ Verzeichnis ist schreibbar' || echo '❌ Verzeichnis ist NICHT schreibbar'"; then
|
|
echo " Verzeichnis ist schreibbar"
|
|
else
|
|
echo " ❌ Verzeichnis ist NICHT schreibbar!"
|
|
fi
|
|
echo ""
|
|
|
|
# Prüfe Host-Seite
|
|
echo "🖥️ Host-Seite Berechtigungen:"
|
|
ls -ld ./data
|
|
ls -lh ./data/prod.db
|
|
echo ""
|
|
|
|
# Prüfe Container-User aus docker-compose
|
|
echo "🐳 Docker Compose Konfiguration:"
|
|
if [ -f "docker-compose.yml" ]; then
|
|
grep -E "^[[:space:]]*user:" docker-compose.yml || echo " Keine 'user:' Direktive gefunden"
|
|
else
|
|
echo " ⚠️ docker-compose.yml nicht gefunden (verwende example?)"
|
|
fi
|
|
echo ""
|
|
|
|
# Empfehlung
|
|
echo "💡 Empfehlung:"
|
|
echo " Wenn die Datei 'node:node' gehört und Container als 'root' läuft,"
|
|
echo " sollte es funktionieren. Falls nicht, setze Besitzer auf root:"
|
|
echo " sudo chown root:root ./data/prod.db"
|
|
echo " Oder entferne 'user: root' aus docker-compose.yml"
|
|
|