Falsches Environment

auweia

Registered User
Wieso wird in phpinfo() das Environment von root angezeigt? Der User (_ENV["USER"]) ist ebenfalls root, das liegt doch bestimmt an einer falschen Konfiguration von PHP. Kann mir bitte jemand verraten wie man das ändert. Es handelt sich dabei um einen Root-Server mit SuSE 9.0 und Confixx 3. Eigentlich müsste doch der User web1, web2, web3 bis webn sein.

Bin für jede Info dankbar
Gruß
 
wenn das PHP als root läuft (autsch!) dann läuft der gesamte Webserver auch als root (ausser evtl. du nutzt PHP als CGI).

Dann mußt du mal in der httpd.conf (bei Suse weiß ich nicht, wo genau die die abwerfen, ich tippe auf /etc/apache/httpd.conf) schauen, ob dort für jeden (V)Server ein User und ein Group Eintrag vorhanden ist.

Falls du Apache2 verwendest, heißt die Config Datei AFAIK apache2.conf
 
Ich habe unter /etc/apache2/confixx_vhosts für jedes Web eine eigene *conf Datei, mit folgendem Inhalt:
Code:
<Directory "/srv/www/htdocs/web[I]X[/I]/html">
  Options -FollowSymLinks -SymLinksIfOwnerMatch
  <IfModule mod_access.c>
    Allow from all
  </IfModule>
</Directory>

<VirtualHost [I]ip-des-servers[/I]:80>
  ServerName [I]servername[/I].de
  ServerAlias [url]www.[I]domain[/url][/I].de

  DocumentRoot /srv/www/htdocs/web[I]X[/I]/html
  SuexecUserGroup web[I]X[/I] web[I]X[/I]
  ScriptAlias /cgi-bin/ /srv/www/htdocs/web[I]X[/I]/html/cgi-bin/
  php_admin_value open_basedir /srv/www/htdocs/web[I]X[/I]/html/:/srv/www/htdocs/web[I]X[/I]/phptmp/:/srv/www/htdocs/web[I]X[/I]/files/:/srv/www/htdocs/web[I]X[/I]/atd/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /srv/www/htdocs/web[I]X[/I]/phptmp/
DirectoryIndex index.htm index.html index.php
</VirtualHost>

Kannst du mir sagen, was da noch fehlt.
Vielen Dank und Gruß
 
Last edited by a moderator:
Oben steht nichts von der Confixx-Conf, sondern von den httpd-Einstellungen.

Unter Suse sollte es unter /etc/apache2/uid.conf stehen:
Code:
User wwwrun
Group www

huschi.
 
Erst mal vielen Dank für die Antworten

Ich habe gerade mal per PHP-Script (fopen mit "w") eine Datei erstellt, diese hat dann diese Rechte bekommen:

-rw-r--r-- 1 wwwrun www

Das würde ja dem User wwwrun und der Group www entsprechen. Das widerspricht sich aber doch mit der Ausgabe von phpinfo, denn da steht:

_ENV["USER"] root

Kann es sein, dass bei Strato die Server mit Confixx immer so konfiguriert sind, oder muss ich da was verbockt haben? Bin mir zumindest nicht bewusst, an der Konfiguration gedreht zu haben.

Die Datei /etc/apache2/uid.conf sieht bei mir genau so aus

Danke und Gruß
 
Last edited by a moderator:
auweia said:
_ENV["USER"] root
Hab mal auf zwei Servern von mir nachgesehen: Hab zwar keine _ENV["User"], aber dafür einmal _ENV["PWD"] = "/root" und einmal _ENV["LOGNAME"] = "root" drin stehen.
Von daher würde ich mal sagen, das ist wohl normal.
Denn meine Server sind sicher!

huschi.
 
Ich hoffe jetzt mal, dass es nicht zuviel verlangt ist, diese phpinfo-Ausgabe mal anzusehen und zu Kommentieren:
Code:
_ENV["LESSKEY"] /etc/lesskey.bin 
_ENV["MANPATH"] /usr/share/man:/usr/local/man:/usr/X11R6/man 
_ENV["INFODIR"] /usr/local/info:/usr/share/info:/usr/info 
_ENV["NNTPSERVER"] news 
_ENV["HOSTNAME"] [I]xxxxxxxxxxxxxxx[/I] 
_ENV["XKEYSYMDB"] /usr/X11R6/lib/X11/XKeysymDB 
_ENV["SHELL"] /bin/bash 
_ENV["TERM"] xterm 
_ENV["HOST"] [I]xxxxxxxxxxxxxxx[/I] 
_ENV["HISTSIZE"] 1000 
_ENV["PROFILEREAD"] true 
_ENV["SSH_CLIENT"] [I]xxxxxxxxxxxxxxx[/I] 
_ENV["QTDIR"] /usr/lib/qt3 
_ENV["get_module_list_done"] true 
_ENV["SSH_TTY"] /dev/pts/0 
_ENV["USER"] root 
_ENV["LS_COLORS"] no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31:ex=00;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32: 
_ENV["XNLSPATH"] /usr/X11R6/lib/X11/nls 
_ENV["HOSTTYPE"] i386 
_ENV["PAGER"] less 
_ENV["COLUMNS"] 80 
_ENV["get_includes_done"] true 
_ENV["MINICOM"] -c on 
_ENV["PATH"] /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games 
[COLOR="Red"]_ENV["MAIL"] /var/mail/root[/COLOR] 
_ENV["CPU"] i686 
[COLOR="red"]_ENV["PWD"] /root/confixx[/COLOR] 
_ENV["INPUTRC"] /etc/inputrc 
_ENV["LINES"] 24 
_ENV["TEXINPUTS"] :/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX 
[COLOR="red"]_ENV["HOME"] /root[/COLOR] 
_ENV["SHLVL"] 4 
_ENV["OSTYPE"] linux 
_ENV["LESS_ADVANCED_PREPROCESSOR"] no 
_ENV["no_proxy"] localhost 
_ENV["LS_OPTIONS"] -a -N --color=tty -T 0 
_ENV["WINDOWMANAGER"] /usr/X11R6/bin/kde 
[COLOR="red"]_ENV["LOGNAME"] root [/COLOR]
_ENV["MACHTYPE"] i686-suse-linux 
_ENV["LESS"] -M -I 
_ENV["SSH_CONNECTION"] [I]xxxxxxxxxxxxxxx[/I]
_ENV["LC_CTYPE"] de_DE@euro 
_ENV["LESSOPEN"] lessopen.sh %s 
_ENV["HARNESS_ACTIVE"] 1 
_ENV["INFOPATH"] /usr/local/info:/usr/share/info:/usr/info 
_ENV["LESSCLOSE"] lessclose.sh %s %s 
_ENV["G_BROKEN_FILENAMES"] 1 
_ENV["COLORTERM"] 1 
_ENV["_"] /sbin/startproc 
_ENV["PREVLEVEL"] N 
_ENV["RUNLEVEL"] 3 
_ENV["DAEMON"] /usr/sbin/httpd2-prefork
Wenn noch mehr Infos gebraucht werden, bitte einfach Bescheid geben. Vielleicht sind die Ausgaben ja nicht so beunruhigend, wie ich es im Moment empfinde.

Danke und Gruß
 
Last edited by a moderator:
auweia said:
Ich hoffe jetzt mal, dass es nicht zuviel verlangt ist, diese phpinfo-Ausgabe mal anzusehen und zu Kommentieren
Erstmal eine Gegenfrage:
Ist es immer noch phpinfo() und führst Du das wirklich im Webbrowser aus?

Ich glaube nämlich, daß Du hier ein Script per CLI (also in der Shell) ausführst.

huschi.
 
Huschi said:
Ich glaube nämlich, daß Du hier ein Script per CLI (also in der Shell) ausführst.
Nein, das ist die Ausgabe bzw. ein Teil der Ausgabe von phpinfo().

Danke und Gruß
 
In der Doku von PHP kann man lesen:
Diese Variablen werden aus der Systemumgebung, in der der Parser läuft in den globalen Namensraum Von PHP importiert.

Also stellt sich die Frage:
Wie wurde Apache das letzte mal gestartet?
Denn im std. Startscript von Apache2 unter Suse 9.1 steht:
export -n ${!APACHE_*}
Es sollen alle Variablen die nicht mit 'APACHE_' anfangen gelöscht werden.

huschi.
 
Huschi said:
Wie wurde Apache das letzte mal gestartet?
Das war der entscheidende Tipp. Ich hatte vor kurzem den Indianer als root neu gestartet. Habe soeben einfach mal den Server rebootet und siehe da, jetzt passt es wieder. Aber wie kann ich den Apache als root neu starten, damit sowas nicht noch mal passiert?

Tausend Dank und Gruß
 
Ich meine, ich hätte es mit /etc/init.d/apache2 restart gemacht. Werde das bei Gelegenheit noch mal ausprobieren und sehen, welche Ausgabe ich dann bekomme. Im Notfall kann ich ja immer noch den kompletten Server rebooten

Nochmals vielen Dank für die super Hilfe.
 
Back
Top