[PHP] mail forward naar script: smrsh probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Nou ben ik al een tijdje bezig met een forward script die mail moet verwerken. Ik werk op de server met sendmail.
Volgens mij heb ik alles voor elkaar op 1 ding na.

in m'n .forward staat:
xxxx@xxxx.nl,"|/usr/bin/php /pad/naar/script.php"

bovenaan script.php staat:
#!/usr/bin/php -q

script.php heeft chmod 744

Als ik nu mail naar het mailadres dan krijg ik in xxxx@xxxx.nl een mailtje
The original message was received at Thu, 22 Jul 2004 11:57:14 +0200
from [213.196.3.230]

----- The following addresses had permanent fatal errors -----
"|/usr/bin/php /pad/naar/script.php"
(reason: service unavailable)
(expanded from: <mail@adresje.nl>)

----- Transcript of session follows -----
smrsh: php not available for sendmail programs (stat failed)
554 5.0.0 Service unavailable
Nou geloof ik dat ik een symlink moet maken als volgt: ln -s /usr/bin/php /etc/smrsh/php

Nou is het probleem dat ik al een tijdje geen SSH meer kan gebruiken, dus ik kan zelf die link niet maken.

Is er een manier om dit te omzeilen?

[update]
Ik heb de provider gemailt om te vragen of zij deze link konden maken, maar ze geven aan dat php niet executable is op de server en het dus ook geen zin heeft om zo'n link te maken. Is het dan helemaal niet mogelijk om mail door te sturen naar een script?
[/update]

[ Voor 17% gewijzigd door Fles op 22-07-2004 12:49 ]


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Als ik het goed begrijp heb je geen executable php als je php als module van apache compileerd. Je moet dan eerst php installeren en dan apache, waarbij je php als module opgeeft.

Als je het andersom doet, apache installeerd en dan php installeert en linkt heb je wel een executable php. Correct me if i'm wrong.

Het configuratiescript ziet er als volgt uit op de server waar ik werk (en dus geen executable php zou moeten zijn):
code:
1
./configure' '--prefix=/usr' '--with-apxs=/usr/sbin/apxs' '--with-gd=/usr' '--with-gettext=/usr' '--enable-safe-mode' '--with-config-file-path=/etc/httpd/4.3.6/' '--with-exec-dir=/usr/bin' '--with-zlib' '--enable-magic-quotes' '--with-regex=system' '--with-ttf=/usr' '--enable-track-vars' '--enable-xml' '--disable-debug' '--with-libdir=/usr/lib' '--with-pgsql=shared' '--with-ldap' '--with-jpeg-dir=/usr/local/lib' '--with-png-dir=/usr' '--enable-ftp' '--with-curl
Let vooral op de --with-apxs=/usr/sbin/apxs. Dit betekend dus dat php WEL later is gelinkt aan apache en niet als module! DUS zou er wel een executable moeten zijn. En zegt de meneer de server beheerder zomaar wat!

Of zit ik er naast...?

[ Voor 16% gewijzigd door Fles op 22-07-2004 14:08 ]


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Graveheart schreef op 22 juli 2004 @ 12:09:
in m'n .forward staat:
xxxx@xxxx.nl,"|/usr/bin/php /pad/naar/script.php"

bovenaan script.php staat:
#!/usr/bin/php -q

script.php heeft chmod 744
744 ? Da's niet logisch.
Als ik nu mail naar het mailadres dan krijg ik in xxxx@xxxx.nl een mailtje

[...]
Nou geloof ik dat ik een symlink moet maken als volgt: ln -s /usr/bin/php /etc/smrsh/php
Je moet een link maken naar een executable, niet naar de interpreter. In dit geval naar het php script dus, mits de permissies goed staan (755).
Nou is het probleem dat ik al een tijdje geen SSH meer kan gebruiken, dus ik kan zelf die link niet maken.

Is er een manier om dit te omzeilen?
Wat denk je zelf ? Indien ja, wat heeft dan die gehele beveiliging nog voor zin ?
Ik heb de provider gemailt om te vragen of zij deze link konden maken, maar ze geven aan dat php niet executable is op de server en het dus ook geen zin heeft om zo'n link te maken. Is het dan helemaal niet mogelijk om mail door te sturen naar een script?
Als PHP niet executable is heeft de binary ook geen nut. En inderdaad, dan is het niet mogelijk om mail te sturen via een PHP script.

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Graveheart schreef op 22 juli 2004 @ 14:07:
Als ik het goed begrijp heb je geen executable php als je php als module van apache compileerd. Je moet dan eerst php installeren en dan apache, waarbij je php als module opgeeft.
Dan is het een .so, en geen uitvoerbare binary.
Als je het andersom doet, apache installeerd en dan php installeert en linkt heb je wel een executable php. Correct me if i'm wrong.
Dat hangt van de config af, vanzelfsprekend is het niet.
Het configuratiescript ziet er als volgt uit op de server waar ik werk (en dus geen executable php zou moeten zijn):
code:
1
./configure' '--prefix=/usr' '--with-apxs=/usr/sbin/apxs' '--with-gd=/usr' '--with-gettext=/usr' '--enable-safe-mode' '--with-config-file-path=/etc/httpd/4.3.6/' '--with-exec-dir=/usr/bin' '--with-zlib' '--enable-magic-quotes' '--with-regex=system' '--with-ttf=/usr' '--enable-track-vars' '--enable-xml' '--disable-debug' '--with-libdir=/usr/lib' '--with-pgsql=shared' '--with-ldap' '--with-jpeg-dir=/usr/local/lib' '--with-png-dir=/usr' '--enable-ftp' '--with-curl
Let vooral op de --with-apxs=/usr/sbin/apxs. Dit betekend dus dat php WEL later is gelinkt aan apache en niet als module!
Foute conclusie. apxs maakt een .so aan, --with-apache is een statische compile.
DUS zou er wel een executable moeten zijn. En zegt de meneer de server beheerder zomaar wat!
Wie zegt dat de PHP binary uberhaupt is geinstalleerd, of dat jij rechten hebt om 'm uit te voeren ? Verder heb jij iig geen rechten om rechten in de smrsh dir symlinks aan te maken.

Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Eerst ff dit. Als ik in .forward het volgende zet: "/url/naar/script"
en in script zet ik dit: "ls | cat > testje" en script heeft chmod 755, dan zou script toch uitgevoerd moeten worden als er een nieuwe mail binnen komt, of werkt dit niet zo.

Als ik dit wel zo doe krijg ik de melding "Can't create output".
igmar schreef op 22 juli 2004 @ 15:13:
744 ? Da's niet logisch.
Eigenlijk heb ik 777 ingesteld :*)
igmar schreef op 22 juli 2004 @ 15:13:
Je moet een link maken naar een executable, niet naar de interpreter. In dit geval naar het php script dus, mits de permissies goed staan (755).
Beetje jammer dat dit in minstens 3 turorials verkeerd staat :P Maar hoe komt het dan eigenlijk als ik dit gebruik in het .forward script:
"|/usr/bin/php /url/naar/script.php"
Hij aangeeft dat hij niet bij php kan komen? Over script.php hoor ik hem niet zeuren. Zal temaken hebben dat de php bin niet bestaat zeker :P
En waar is die link voor, het volledige pad staat er toch, dan kan hij toch bij de executable komen?
igmar schreef op 22 juli 2004 @ 15:13:
Wat denk je zelf ? Indien ja, wat heeft dan die gehele beveiliging nog voor zin ?
Hier bedoeld ik eigenlijk mee, is er een manier om toch mail te ontvangen in een PHP script zonder een symbolische link. Niet hoe je een symbolische link maakt zonder SSH.
igmar schreef op 22 juli 2004 @ 15:13:
Als PHP niet executable is heeft de binary ook geen nut. En inderdaad, dan is het niet mogelijk om mail te sturen via een PHP script.
Ik wil geen mail sturen via een PHP script, ik wil een mail doorsturen naar een PHP script.

Okay nu weet je de situatie. Hoe kan ik in deze situatie toch mail doorsturen naar een PHP script... :?

[ Voor 28% gewijzigd door Fles op 22-07-2004 17:08 ]