Welche Berechtigungen sind erforderlich für apache Passagier
Unter Ubuntu 10.04 auf Linode, RVM, Rails 3, Apache mit Passenger-Modul, carrierwave und mini-Magie
Bekomme ich:
Rails Error: Unable to access log file. Please ensure that /srv/www/mysite.com/testapp/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
sowie Errno::EACCES (Permission denied /srv/www/mysite.com/testapp/public/uploads/tmp/20110517-1707-2938-6455):
Lief ich chmod -R root:root /srv/www/mysite.com/testapp
Dann: chmod -R www-data:www-data /srv/www/mysite.com/testapp
& chmod -R www-data:www-data /srv/www/mysite.com/testapp/public/uploads
Da die nur 2 Verzeichnisse, sollten beschreibbar sein, ist der log-Dateien und uploads-Verzeichnis habe ich versucht zu sichern den rest. Gibt es noch andere Ordner /Dateien, die ich machen muss beschreibbar?
Ich denke, sollten Sie mit chown statt chmod gesetzt, Besitzer und Gruppe. Und mit dem Befehl chmod gesetzt tatsächlichen Berechtigung-Modus. Zu prüfen Berechtigungen und der Besitz der Befehl ls -l /Pfad/zu/file_or_directory
du wo Recht. es ist schon eine Weile her, seit ich gearbeitet habe, mit linux. hast
Sieht richtig aus, aber wahrscheinlich gibt es keine solche Gruppe root, es gibt Rad. Auch ist es üblich, zu setzen chmod 755 für Verzeichnisse, in solchen Fällen.
haben, dass die Arbeit für Sie, nachdem alle?
du wo Recht. es ist schon eine Weile her, seit ich gearbeitet habe, mit linux. hast
chown -R root:root /srv/www/mysite.com/testapp
dann hast chown -R www-data:www-data /srv/www/mysite.com/testapp/log /srv/www/mysite.com/testapp/public/uploads
und chmod 772 /srv/www/mysite.com/testapp/log /srv/www/mysite.com/testapp/public/uploads
. Klingt das richtige?Sieht richtig aus, aber wahrscheinlich gibt es keine solche Gruppe root, es gibt Rad. Auch ist es üblich, zu setzen chmod 755 für Verzeichnisse, in solchen Fällen.
haben, dass die Arbeit für Sie, nachdem alle?
InformationsquelleAutor pcasa | 2011-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Berechtigungen auf Webseiten ist ein wenig seltsam: auf der einen Seite, der Inhalt muss lesbar sein, die von der webserver-und
FastCGI
oderPassenger
oder was auch immer führt (in diesem Fall Ruby) code. Auf der anderen Seite, wenn die webserver-Benutzer besitzt die Dateien, dann eine gehackte webserver oder (wahrscheinlicher 🙂 der code kann ändern Sie die ausführbaren Dateien und die statischen Dateien, die zu Ihrer website. Es passiert zu oft.Wenn der Inhalt der website ist Eigentum von einige andere user, nicht beschreibbar durch den web-server-software, dann die Webseite nicht überschrieben werden können, die von Angreifern. (Natürlich, Sie haben ein paar offene sockets Verbindung zu einer Datenbank; die Datenbank gesichert werden kann, können Daten beschädigt werden, indem Sie die Angreifer. Auch, ein beliebiges Verzeichnis, wo Sie erlauben uploads beschädigt werden, die von Angreifern. Aber das Ziel ist reduzieren Sie die Privilegien der software im Rahmen des zumutbaren.)
So, alles, was gesagt, auf Ihre spezifische Frage; Ihre webserver-software läuft als
www-data
, und es macht Sinn, für Ihre log-Dateien und upload-Verzeichnis wird der Besitz vonwww-data
:Machte ich die Annahme, dass alle Benutzer auf Ihrem system kann das Protokoll Lesen. Dies könnte nicht wahr sein. Verwenden
700
im Ort755
und600
im Ort644
wenn Sie nicht möchten, dass alle Nutzer des Systems die log-Dateien Lesen.Nächsten, für Ihre
uploads
Verzeichnis:Wieder, die ich gemacht habe, die Annahme, dass alle Benutzer auf Ihrem system in der Lage sein kann, um zu sehen, alle von ihm hochgeladenen Inhalte. Verwenden
700
im Ort755
wenn Sie wollen einfach nur die webserver-software in der Lage sein, die files zu Lesen.Diese sind einfache Richtlinien, die funktionieren sollte; Sie können Holen Sie mehr schwierig, wenn Sie wollen, um die website-software und freigegebene Inhalte nur zwischen dem Nutzer, dass besitzt der website und der Benutzer, der läuft der website, durch ausführen der webserver mit der eine zusätzliche Gruppe (siehe
newgrp(1)
undgroup(5)
Manpage für details) und geben die Dateien den gleichen Besitzer der Gruppe und mit der Gruppe die Berechtigung bits (Mitte Oktalzahl:750
vs700
). Es ist kompliziert genug, es sei denn, du hast einen guten Grund, es ist wahrscheinlich nicht lohnt diesen Weg. (Definitiv lohnt einmal auf einem Entwicklungs-Rechner irgendwo, genau so sind Sie vertraut genug mit ihm, dass Sie es verwenden können in der Zukunft. 🙂InformationsquelleAutor sarnold