2017-07-12 2 views
0

Ich versuche, in einem Verzeichnis in meinem WebApp Symlink und diesen Fehler zu entpackenTomcat 7 - schreiben in Symlink Verzeichnis

java.io.FileNotFoundException:/var/lib/tomcat/webapps/MyApp/_Apps/xxxxx.txt (Permission denied)

_Apps ist mein Symlink (im Besitz von tomcat, 777) und bezieht sich auf ein Verzeichnis von tomcat Besitz (755)

Mein Kater Version ist

Ich habe allowLinking = "true" in meinem app Kontext Tag (plus außer Kraft setzen = "true") setzen.

Irgendeine Idee von was schief geht?

Antwort

0

Ich sehe einige Probleme hier, einige im Zusammenhang mit Ihrer Frage, einige Best-Practice:

  • Sie sollten keine Dateien auf Ihrem Webapp zur Laufzeit laden: Sie werden mit dem nächsten Einsatz überschrieben (und gehen verloren), plus Sie öffnen sich bis zu Uploads wie attack.jsp - Code enthält, der Server-Seite könnte am Ende ausgeführt wird, unter dem Konto, das tomcat als
  • wirklich ausgeführt wird, sollten Sie in ein anderes Verzeichnis schreiben
  • That wird dein Problem verschwinden lassen.
  • Um vorübergehend zu überprüfen, was das Problem verursacht:
    • Validate die Benutzer tomcat als
    • Validate ausgeführt wird, dass dieses Benutzerkonto hat Zugriff auf das Verzeichnis schreiben - mehr darauf verlassen zu können: Bestätigen dies durch die verknüpften Verzeichnis und durch das zugrunde liegende Verzeichnis, nativ ohne den Link zu verwenden. (Sie können sudo -u tomcat /bin/bash manuell versuchen)
    • prüfen, welches Dateisystem das Verzeichnis auf (es angebracht sein könnte read-only)
  • Sobald Sie fertig sind die Validierung (oder schon vorher, nur ungern, dass Sie kann mit einer höheren Priorität arbeiten - sicherheitsrelevant - Problem: Gehen Sie zurück zum Anfang der Liste und ändern Sie Ihre Implementierung. In einen anderen Ordner hochladen.