php Fehler Operation not permitted

  • Hallo,


    ich habe einen Php Fehler, da php scheinbar nicht genug Berechtigungen hat dies auszuführen.

    Hier mal die Error Meldungen:

    Error PHP unlink(/tmp/oc_tmp_fkNur4-.crt): Operation not permitted at /var/www/vhosts/hostingxxxx.af996.netcup.net/httpdocs/nc.meinedomain.de/lib/private/legacy/helper.php#224 2018-11-18T17:40:02+0100


    Ich habe das Webhostingpaket "Webhosting 4000"


    Soweit ich die Fehlermeldung jetzt verstehe, muss ich php das Recht geben, in "/tmp" agieren zu dürfen.

    Ich habe aber nichts gefunden wo ich dies im WCP einstellen kann.


    Danke im voraus für eure Hilfe

  • PHP hat automatisch Zugriff auf /tmp (open_basedir-Restriction ist das, was das beschränkt, denke aber nicht, dass man das im Webhosting konfigurieren kann ;) ) Ein Blick in phpinfo() hilft, um herauszufinden auf was der Wert steht.

    Ist denn überhaupt gesagt, dass /tmp/oc_tmp_fkNur4-.crt

    • Überhaupt existiert
    • Eine Datei ist
    • Auch von dir angelegt wurde (du die Berechtigung zum Löschen also hast)

    Leg dir also gerne mal das Script an:

    Und ruf es auf.

  • Hay,


    wo erscheint die Fehler-Meldung? Wodurch wurde denn die Datei /tmp/oc_blabla erstellt?


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • PHP hat automatisch Zugriff auf /tmp (open_basedir-Restriction ist das, was das beschränkt, denke aber nicht, dass man das im Webhosting konfigurieren kann ;) ) Ein Blick in phpinfo() hilft, um herauszufinden auf was der Wert steht.

    Ist denn überhaupt gesagt, dass /tmp/oc_tmp_fkNur4-.crt

    • Überhaupt existiert
    • Eine Datei ist
    • Auch von dir angelegt wurde (du die Berechtigung zum Löschen also hast)

    Leg dir also gerne mal das Script an:

    Und ruf es auf.

    Danke für die schnelle info.


    Habe ich gemacht und ausgeführt.

    Code
    /tmp/oc_tmp_fkNur4-.crtstring(7) "Exists?" bool(true) string(8) "is file?" bool(true) string(12) "is writable?" bool(false)


    Scheint als ob keine Schreibrechte vorliegen.


    Hay,


    wo erscheint die Fehler-Meldung? Wodurch wurde denn die Datei /tmp/oc_blabla erstellt?


    CU, Peter

    Die Tmp Datei wurde von Nextcloud erstellt.

    Und dort kommen auch die Fehlermeldungen her.

    Also die erscheint im Nextcloud Protokoll aber es ist nichts im Access Protokoll von Netcup zu sehen.


    Edit:// Open_basedirection -->

    Code
    /var/www/vhosts/hosting2569.af996.netcup.net/httpdocs/nc.meinedomain.de/:/tmp/:/var/lib/php5/sessions:/var/www/vhosts/hosting2569.af996.netcup.net/tmp
  • OpenBasedir passt wie erwartet und beinhaltet auch /tmp.


    Ich würde nochmal folgendes nachgucken wollen:

  • Ich Poste es einfach mal rein

    Code
    Dateirechte: 0600 Eigentümer: Array ( [name] => hosting100132 [passwd] => x [uid] => 31054 [gid] => 1003 [gecos] => [dir] => /var/www/vhosts/hosting100132.af996.netcup.net [shell] => /opt/psa/bin/chrootsh ) Ich bin hosting113159
  • Ja dann ist ja des Rätsels Lösung da: Die Datei gehört einem anderen Netcup-Kunden ( hosting100132 ) :P


    Bestimmt kann man bei Nextcloud das /tmp-Directory umkonfigurieren. Du könntest es auf /var/www/vhosts/hosting2569.af996.netcup.net/tmp stellen. Das gehört zu dir :)

  • Und deshalb stimmt die Berechtigung auch mit 0600 wahrscheinlich nicht

    0600 (bzw. 600) erlaubt dem Eigentümer der Datei diese zu Lesen und zu Schreiben (6 = rw-), der Gruppe des Eigentümers keinen Zugriff (0 = ---) und allen anderen auch keinen Zugriff (0 = ---). Deshalb hast du von deinem Webhosting keine Berechtigung (weil der Eigentümer ein anderer Nutzer ist), genau :)

  • Also, ich habe nun den Path geändert und siehe da es kommen zumindest keine Fehlermeldungen mehr.


    Ich habe dann auch gleich noch den Path für die Logs geändert, denn der war auch an einem Ort wo ich garnicht hinkonnte :)


    Vielen Lieben dank dir!!


    Jetzt heißt es erstmal testen ob es so auch bleibt, aber es sieht schon sehr gut aus