Hallo Liste,
Ich habe ein gravierendes Problem:
Für ein neues WebProject habe ich eine Benutzerverwaltung geschrieben (alles Perl-Scripts). Es gibt da eine User-Datenbank (CSV), in der das Passwort (verschlüsselt), ein Username und die eMail-Adresse gespeichert wird. Außerdem werden dort später vielleicht noch andere Daten untergebracht.
Nun benötige ich aber für jeden Account noch eine Preferencesdatei wo (ziemlich viele) spezielle Eintraege für den jeweiligen Account gespeichert werden. Diese möchte ich mit dem Script, das den Benutzer anlegt (also in die User-Datenbank schreibt), mit anlegen. Das Problem ist aber, dass der Apache-Server als user wwwrun laeuft und keine Schreibrechte auf das Verzeichnis hat.
Kann man irgendwie für ein Verzeichnis mit chown() für diesen user wwwrun einstellen, sodass ich dort nach Belieben Dateien anlegen kann?
Vielen Dank für eure Hilfe,
Dominic Neumann
-------------------------------------------------------- --> webmaster@simonandgarfunkel.de --> ICQ #71510820 --> http://www.simonandgarfunkel.de --> http://www.FreshMidis.Net ______________________________________________________________________________ Die Fachpresse ist sich einig: WEB.DE 16mal Testsieger! Kostenlos E-Mail, Fax, SMS, Verschlüsselung, POP3, WAP....testen Sie uns! http://freemail.web.de
Am Freitag, 19. Januar 2001 09:40, schrieb Dominic Neumann:
Das Problem ist aber, dass der Apache-Server als user wwwrun laeuft und keine Schreibrechte auf das Verzeichnis hat.
Kenn ich (Bilderupload via php). Ich habe diesem einem Verzeichnis dann 777 verpasst - eine andere Lösung sollte nicht funktionieren.
Jens
Am Fri den 19 Jan 2001 um 09:57:59AM +0100 schrieb Jens Puruckherr:
Am Freitag, 19. Januar 2001 09:40, schrieb Dominic Neumann:
Das Problem ist aber, dass der Apache-Server als user wwwrun laeuft und keine Schreibrechte auf das Verzeichnis hat.
Kenn ich (Bilderupload via php). Ich habe diesem einem Verzeichnis dann 777 verpasst - eine andere Lösung sollte nicht funktionieren.
So'n Quark. Benutze suexec und platziere das Skript z.B. in /home/foobar/public_html/ und setze das Verzeichnis auf 755. Das macht das, was du haben moechtest.
andre
Am Freitag, 19. Januar 2001 10:15, schrieb Andre Schulze:
So'n Quark. Benutze suexec und platziere das Skript z.B. in /home/foobar/public_html/ und setze das Verzeichnis auf 755. Das macht das, was du haben moechtest.
Das ist relativ zu sehen. Gemieteter Webspace und schon:
immonet@mars:~ > suexec bash: suexec: command not found immonet@mars:~ > man -k suexec suexec: nichts passendes.
Tja, wie jetzt?
Jens
Am Fri den 19 Jan 2001 um 10:55:02AM +0100 schrieb Jens Puruckherr:
<!-- suexec -->
immonet@mars:~ > suexec bash: suexec: command not found immonet@mars:~ > man -k suexec suexec: nichts passendes.
Tja, wie jetzt?
Was ist denn das fuer ein Saftladen? Ein Apache ohne suexec? Das ist wie ein Auto ohne Raeder. Da hat wohl jemand den falschen Provider gewaehlt ;-)
andre
Am Freitag, 19. Januar 2001 11:11, schrieb Andre Schulze:
Was ist denn das fuer ein Saftladen? Ein Apache ohne suexec? Das ist wie ein Auto ohne Raeder. Da hat wohl jemand den falschen Provider gewaehlt ;-)
Keine Ahnung, war bisher sehr zufrieden. Hatte auch gar nicht gewusst, was es alles f�r Kriterien geben kann. aus meiner info.php3:
APACHE_INCLUDE APACHE_TARGET Apache Version Apache/1.3.9 Apache Release 10309100 Apache API Version 19990320 Hostname:Port xxxxxxxxxxxxx:xx User/Group wwwrun(30)/8 Max Requests Per Child: 0 Keep Alive: on Max Per Connection: 100 Timeouts Connection: 300 Keep-Alive: 15 Server Root /www Loaded Modules mod_php4, mod_frontpage, mod_setenvif, mod_auth, mod_access, mod_alias, mod_userdir, mod_actions, mod_imap, mod_asis, mod_cgi, mod_dir, mod_autoindex, mod_include, mod_status, mod_negotiation, mod_mime, mod_log_config, mod_env, http_core
Fehlt da was???
Jens
Am Fri den 19 Jan 2001 um 11:43:05AM +0100 schrieb Jens Puruckherr:
Keine Ahnung, war bisher sehr zufrieden. Hatte auch gar nicht gewusst, was es alles für Kriterien geben kann.
<schnipp>
as8@wonky:~> httpd -V Server version: Apache/1.3.14 (Unix) Server built: Jan 15 2001 17:43:35 Server's Module Magic Number: 19990320:10 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D NO_LINGCLOSE -D USE_FCNTL_SERIALIZED_ACCEPT -D HTTPD_ROOT="/usr/local" -D SUEXEC_BIN="/usr/local/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_XFERLOG="logs/access_log" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf"
Fehlt da was???
Du musst dir ansehen, wie der Apache kompiliert wurde, die Module allein sind noch nicht aussagekraeftig.
andre
Am Freitag, 19. Januar 2001 12:11, schrieb Andre Schulze:
Du musst dir ansehen, wie der Apache kompiliert wurde, die Module allein sind noch nicht aussagekraeftig.
Na, wo isser denne...such...such...aha:
immonet@mars:/www/bin > ./httpd -V Server version: Apache/1.3.9 (Unix) Server built: Dec 14 2000 11:13:19 Server's Module Magic Number: 19990320:6 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D USE_FCNTL_SERIALIZED_ACCEPT -D HTTPD_ROOT="/www" -D SUEXEC_BIN="/www/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_XFERLOG="logs/access_log" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf"
Also doch! Von wegen falscher Provider - falscher Pfad!
wie nutze ich dieses suexec eigentlich? (da werde ich vieleicht meine 777er los)
Jens
Am Fri den 19 Jan 2001 um 12:58:31PM +0100 schrieb Jens Puruckherr:
Am Freitag, 19. Januar 2001 12:11, schrieb Andre Schulze:
Du musst dir ansehen, wie der Apache kompiliert wurde, die Module allein sind noch nicht aussagekraeftig.
immonet@mars:/www/bin > ./httpd -V Server version: Apache/1.3.9 (Unix) Server built: Dec 14 2000 11:13:19
Im Dezember gab es aber auch schon einen neueren Apachen als 1.3.9 :-)
Server's Module Magic Number: 19990320:6 Server compiled with....
<schnipp>
-D SUEXEC_BIN="/www/bin/suexec"
Also doch!
wie nutze ich dieses suexec eigentlich? (da werde ich vieleicht meine 777er los)
Das ist in der Apache Doku erklaert. In der Regel brauchst du dich darum aber nicht kuemmern, da suexec von selbst deine Skripte unter deiner uid laufen laesst.
#!/bin/bash echo "Content-type: text/plain" echo echo whoami; echo; uname -a;
Erzeugt so was wie: http://wonky.wox.org/~as8/cgi-bin/test.cgi
andre
Am Freitag, 19. Januar 2001 13:14, schrieb Andre Schulze:
Das ist in der Apache Doku erklaert. In der Regel brauchst du dich darum aber nicht kuemmern, da suexec von selbst deine Skripte unter deiner uid laufen laesst.
ich nutze intensiv PHP - als Modul gebaut. Damit klappt es wohl nicht?
Jens
Am Fri den 19 Jan 2001 um 01:45:42PM +0100 schrieb Jens Puruckherr:
Am Freitag, 19. Januar 2001 13:14, schrieb Andre Schulze:
Das ist in der Apache Doku erklaert. In der Regel brauchst du dich darum aber nicht kuemmern, da suexec von selbst deine Skripte unter deiner uid laufen laesst.
ich nutze intensiv PHP - als Modul gebaut. Damit klappt es wohl nicht?
Bis vor 5 Minuten wusste ich es auch nicht - probieren geht ueber studieren:
<html> <title>UID Tester</title> </head> <body> <?php echo posix_getuid() ?> </body> </html>
Auf http://wonky.wox.org/~as8/foo.php kann man sehen, dass es bei mir 33 == www-data ist :-( Also nuetzt dir suexec mit php unmittelbar erst mal nix. Heiko hatte AFAIK mal erwaehnt, dass man seine Dateien auch etwa so ausfuehren kann:
#!/usr/local/php <html> <title>UID Tester</title> </head> <body> <?php echo posix_getuid() ?> </body> </html>
Dann wird der php Prozess unter deiner uid ausgefuehrt und das Skript sollte irgendwas > 1000 liefern. Ob du ein php auf dem Server als binary ( != Module fuer Apache) installieren kannst musst du herausfinden.
andre
Am Freitag, 19. Januar 2001 14:41, schrieb Andre Schulze:
Bis vor 5 Minuten wusste ich es auch nicht - probieren geht ueber studieren:
so man genug Zeit dazu hat...
Auf http://wonky.wox.org/~as8/foo.php kann man sehen, dass es bei mir 33 == www-data ist :-( Also nuetzt dir suexec mit php unmittelbar erst mal nix.
Somit ist meine 777er L�sung wohl doch die einzige - in meinem Falle.
Dann wird der php Prozess unter deiner uid ausgefuehrt und das Skript sollte irgendwas > 1000 liefern. Ob du ein php auf dem Server als binary ( != Module fuer Apache) installieren kannst musst du herausfinden.
Das weiss ich bereits - es ist ein Modul. (find ich auch irgendwie praktischer)
So long Jens
On Fri, Jan 19, 2001 at 11:43:05AM +0100, Jens Puruckherr wrote:
Am Freitag, 19. Januar 2001 11:11, schrieb Andre Schulze:
Was ist denn das fuer ein Saftladen? Ein Apache ohne suexec? Das ist wie ein Auto ohne Raeder. Da hat wohl jemand den falschen Provider gewaehlt ;-)
Fehlt da was???
Eben, suexec z.B. Scripte im Namen des Nutzers ..
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
Hallo,
Das Problem ist aber, dass der Apache-Server als user wwwrun laeuft und keine Schreibrechte auf das Verzeichnis hat.
Kenn ich (Bilderupload via php). Ich habe diesem einem Verzeichnis dann 777 verpasst - eine andere Lösung sollte nicht funktionieren.
Diese Aussage ist nur unter bestimmten Bedingungen richtig.
Heiko
On Fri, Jan 19, 2001 at 09:40:41AM +0100, Dominic Neumann wrote:
Apache-Server als user wwwrun laeuft und keine Schreibrechte auf das Verzeichnis hat.
Kann man irgendwie für ein Verzeichnis mit chown() für diesen user wwwrun einstellen, sodass ich dort nach Belieben Dateien anlegen kann?
Du sagst es, mit chown.
chown wwwrun VERZEICHNIS
Natürlich solltest Du Dir überlegen, wer noch alles auf Deinem Rechner Scripte laufen läßt, denn die dürfen dann auch alle in dieses Verzeichnis schreiben.
Heiko
lug-dd@mailman.schlittermann.de