Ich habe einen CentOS Server, auf dem ich Apache, Django, Django CMS und mod_wsgi habe. Meine Django-Projektdateien sind im Verzeichnis /srv
gespeichert und ich habe SELinux aus Sicherheitsgründen eingeschaltet.Versuch, eine readonly Datenbank zu schreiben - Django w/SELinux Fehler
Ich habe es geschafft, Django-CMS erfolgreich in Django zu integrieren und wenn ich die lokale IP besuche, sehe ich meine Seiten. Wenn ich jedoch versuche,/admin zu besuchen (wo ich anfangen kann, die CMS-Funktionalität zu nutzen), bekomme ich DatabaseError at /admin/ attempt to write a readonly database
.
Okay.
Also, da ich eine .sqlite
Datei in meinem Projektordner haben, lief ich ein ls -l
darauf, die zurückgegeben:
-rw-r--r--. 1 root root 133120 Jan 5 11:53 DATABASE.sqlite
Okay, so dachte ich, vielleicht Apache, dass die Datei nicht aufgrund einiger Berechtigungen lesen konnte Gründe so dass nach einer Reihe von Forschung über ähnliche Probleme auf Stackoverflow, lief ich:
> chmod 664 DATABASE.sqlite
> chown apache /srv/mysite
> chown apache /srv/mysite/DATABASE.sqlite
nun die ls -l
Ausgabe lautet:
-rw-rw-r--. 1 apache root 133120 Jan 5 11:53 DATABASE.sqlite
Leider bekomme ich immer noch den gleichen Fehler beim Zugriff auf/admin auf meiner Django App. Jede Hilfe würde sehr geschätzt werden! Wahrscheinlich etwas mit SELinux-Berechtigungen zu tun, aber ich habe keine Ahnung, wo ich anfangen soll zu diagnostizieren, welche Berechtigungen Problem ist.
EDIT:
lief ich
> chown apache:apache /srv/mysite
> chown apache:apache /srv/mysite/DATABASE.sqlite
und eine schnelle ls -l
zeigt, dass der Besitzer des mysite
Verzeichnis und die Datei .sqlite
jetzt apache
ist. Allerdings bekomme ich immer noch Fehler beim Versuch, die /admin
Seite zu besuchen. Ich chmod
Ed die /srv/mysite
Verzeichnis zu 757 und DATABASE.sqlite
Datei zu 756, weil das ist das Beste, was ich tun kann, um die Berechtigungen zu erarbeiten. Mir wurde gesagt, dass dies ein Sicherheitsrisiko ist, aber ich kann nicht herausfinden, wie es weniger Berechtigungen geben und unable to read/open database file
Fehler passieren. Liegt es an SELinux?
FYI, ich bin unter einem normalen Benutzerkonto in CentOS und sudo Betrieb, wenn ich erheben müssen:
[[email protected] ]$
Ich endete 755 für '/ srv/mysite' und 756 für' DATABASE.sqlite'. Ist das ein Sicherheitsrisiko?Wenn ich es zu etwas anderem ändere, ich Fehler. – noblerare
Danke für Ihre Bearbeitung. Ich habe 'chown' mit' apache' anstelle von 'www-data' ausgeführt, da ich auf einem CentOS-System bin. Wie auch immer, jetzt ist der Besitzer von '/ srv/mysite' und' DATABASE.sqlite' 'apache'. Aber unabhängig davon, wenn ich die Berechtigung "alle" auf etwas weniger als lesen/schreiben/ausführen oder lesen/schreiben ändern, ich Fehler. – noblerare
Danke dafür. – IIllIIll