PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie denn nun: www-data und Zugriff aufs WWW verzeichnis mit anderen Userkonten



Poison Nuke
03.10.09, 19:46
Hio,

ich frag mich gerade ob ich einfach nur total blind bin oder ob es wirklich so ist.


wie löst der normale Webmaster folgendes Problem:
User www-data ist für den Webserver dienlich und alle Dateien die der Webserver schreibt sind logischweise "644 www-data:www-data". Somit kann kein anderer User schreibend auf diese Dateien zugreifen.
Der www-data User hat allerdings keinen Shellzugriff und ist auch nur auf das www Verzeichnis begrenzt, dmait einer bei Einbruch über den Apache nicht viel machen kann.

So, nun brauch ich aber einen User der sich per Shell einloggen kann und mit dem ich auch per FTP auf das Webverzeichnis zugreifen kann um dann z.B. an Dateien zu arbeiten oder um backups zu machen usw.

Tjo, wie zur Hölle soll das jetzt sinnvoll gehen? Wenn ich per FTP dateien hochlade haben sie die Zugehörigkeit zum FTP user und www-data kann da nix drauf schreiben, muss das allerdings. Genauso wenn ich mit dem Shelluser ein rsync auf den zweiten server mache...da sind dann alle File zugehörig zum User und www-data kann erneut nicht schreiben, wodurch die Website dann lustige Fehler produziert.


Soll man dann einfach als Workaround von root ein Crontab alle paar minuten laufen lassen der sämtliche Files im www verzeichnis auch wieder auf www-data umschreibt? Nur dann kann der User nicht mehr schreiben. Und wenn ich den User zugehörig zur www Gruppe mache, dann fehlt trotzdem noch das Gruppenschreibrecht und irgendwie bei sämtlichen schreibenen Aktionen wird das lustigerweise auch nicht gesetzt. Zum verzweifeln irgendwie...aber das müsste doch ein alltägliches Problem sein, ich konnte nur leider rein gar nix hilfreiches finden bisher :(

Roger Wilco
03.10.09, 22:06
Füttere eine Suchmaschine deiner Wahl mit den Begriffen "SuExec" oder "SuPHP".

rudelgurke
04.10.09, 00:01
Der www-data User hat allerdings keinen Shellzugriff und ist auch nur auf das www Verzeichnis begrenzt, dmait einer bei Einbruch über den Apache nicht viel machen kann.

...

und www-data kann erneut nicht schreiben, wodurch die Website dann lustige Fehler produziert.

Nur das evtl. Risiko wenn der Webserver "seine" eigenen Dateien modifizieren kann die vielleicht noch im Webroot liegen ?
Da ist auch das "www" Verzeichnis egal - einer LFI z. Bsp. ist es herzlich egal was als $HOME gesetzt ist.
Wenn es "temp" Verzeichnisse geht bei - bei Foren wie linuxforum bspw. das "attachment" Verzeichnis - die haben im Webroot nichts zu suchen.

OliverH
04.10.09, 14:44
Hallo,

wir haben das wie folgt gelöst (Debian System):

/var/www gehört ftp-benutzer:www-data und hat Zugriffsrechte 770,
wodurch nur der FTP-Benutzer und www-data in das Verzeichnis rein kommen.

Innerhalb von /var/www gehören alle Dateien ftp-benutzer:ftp-gruppe mit der Berechtigung 775, wodurch der FTP-Benutzer alles verändern, Apache aber nur lesen und ausführen kann!

Gruß,

Oli

lindi200000
05.10.09, 12:52
du könntest natürlich auch entsprechenden FTPuser mit in die Gruppe www-data nehmen und dann müsste es ja auch gehen.

Poison Nuke
21.10.09, 17:22
hallo,

danke für die Tipps...ich versuch es gerade mit suPHP, das klingt im Endeffekt doch irgendwie am sinnvollsten, weil es geht mir darum das ich als zugreifender User auch direkt von der Shell aus mal eben eine Datei ändern kann, da es in einigen Fällen einfach viel zu lange dauert über FTP die Dateien zu ändern.


nur irgendwie ist suPHP nicht gerade einfach wie es scheint...die Website gerade gerade mal gar nicht.



was ich gemacht habe....suPHP per apt-get installiert, dann bei apache den php5 mod disabled, in der suphp.conf diese Zeilen angepasst:


webserver_user=www-data
docroot=/srv/http


and then modified the default vhost conf in apache:

<VirtualHost *:80>
ServerAdmin webmaster@**.de
DocumentRoot /srv/http/
<Directory /srv/http/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

suPHP_Engine on

AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php

</VirtualHost>


but now nothing runs. Ive got now a "403 -forbidden" page and in the apache2 error.log there is this entry:

(13)Permission denied: /srv/http/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

but the file is set with 644 and in the .htaccess all is allowed.


and what is curious too:
when I want to set "suPHPUserGroup user:group" than apache don't starts and output the error, that I shall check if all needed modules are loaded.

Did I've forget anything?

Roger Wilco
21.10.09, 17:37
nur irgendwie ist suPHP nicht gerade einfach wie es scheint...die Website gerade gerade mal gar nicht.
SuPHP finde ich fast einfacher zu konfigurieren als mod_php. Und http://suphp.org/ funktioniert bei mir problemlos.


but now nothing runs. Ive got now a "403 -forbidden" page and in the apache2 error.log there is this entry:

(13)Permission denied: /srv/http/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

but the file is set with 644 and in the .htaccess all is allowed.
Das hat IMHO nichts mit SuPHP zu tun. Wie sehen die konkreten Rechte auf /srv/http/ und /srv/http/.htaccess aus?


and what is curious too:
when I want to set "suPHPUserGroup user:group" than apache don't starts and output the error, that I shall check if all needed modules are loaded.
Das Modul muss selbstverständlich geladen werden. Lies dazu die Manpage zu `a2enmod`.


Did I've forget anything?
Falsche Grammatik und falsche Sprache für dieses Forum. ;)

Poison Nuke
21.10.09, 17:46
verdammt, das kommt davon wenn man den ganzen Tag in englischen Foren unterwegs ist oder mit englischen Kunden sprechen muss :D

der suPHP Mod ist in Apache bereit geladen..."suPHP engine on" funktioniert ja auch ohne weiteres.


das Verzeichnis gehört dem User der darauf zugreifen soll und auch dessen Gruppe die den gleichen Namen trägt.


d.h. /srv gehört root:root und hat 775
/srv/http gehört user:user und hat 744
alle dateien im http gehören ebenfall diesem user und seiner gruppe und haben die Rechte 644

hm...ob da vllt das ausführenrecht fehlt

Roger Wilco
21.10.09, 17:49
der suPHP Mod ist in Apache bereit geladen..."suPHP engine on" funktioniert ja auch ohne weiteres.
Stimmt. Dann wird es wohl daran liegen, dass du die Direktive falsch geschrieben hast -> http://suphp.org/DocumentationView.html?file=apache/CONFIG.


hm...ob da vllt das ausführenrecht fehlt
Bei dem Verzeichnis /srv/http ja, bei der .htaccess selbst nein.

Poison Nuke
21.10.09, 17:51
ok, da fehlt das ausführungsrecht...aber gleich darauf das nächste Problem...jetzt kommt die Meldung: frühzeitiges Ende der index.php.

und vorher noch diese beiden Meldungen:

SecurityException in Application.cpp:440: Handler not found in configuration
Caused by KeyNotFoundException in Configuration.cpp:234: Handler "x-httpd-php" not found

Roger Wilco
21.10.09, 17:52
Schau in deiner suphp.conf nach dem Handler für "x-httpd-php".

Poison Nuke
21.10.09, 17:58
da ist das eingetragen:

application/x-httpd-php=php:/usr/bin/php-cgi

und der entsprechende handler ist auch installiert

Roger Wilco
21.10.09, 18:02
Du sagst SuPHP in der Apache-Konfiguration aber, dass es den Handler "x-httpd-php" nutzen soll und nicht "application/x-httpd-php"...

Das hat erstmal nichts mit den MIME-Typen zu tun, mit denen du das vermutlich verwechselst.

Poison Nuke
22.10.09, 17:14
also irgendwie will das gar nicht funktionieren.


Habt ihr einen Tipp für eine gute, FUNKTIONIERENDE Anleitung für suPHP, wie man das unter Lenny mit apache2 zum laufen bekommt? Hab da jetzt schon einiges durch, Howtoforge usw, aber bei keiner Anleitung kommt ich in die Richtung das überhaupt das geringste funktioniert

zum verzweifeln.


vorallem finde ich keine Anleitung wo man das über apt-get installiert wie ich das gemacht habe. Also einfach die mirrors (deb http://www.backports.org/debian lenny-backports main) eingetragen und dann über apt-get suphp-common und installiert. Wegen sowas hau ich mir nicht noch extra die gcc libs drauf.

Roger Wilco
22.10.09, 17:17
Habt ihr einen Tipp für eine gute, FUNKTIONIERENDE Anleitung für suPHP, wie man das unter Lenny mit apache2 zum laufen bekommt?
An was hakt es denn konkret? Ich bisher noch nie mehr Dokumentation als unter http://suphp.org/ benötigt.


Also einfach die mirrors (deb http://www.backports.org/debian lenny-backports main) eingetragen und dann über apt-get suphp-common und installiert.
Warum das denn? http://packages.debian.org/lenny/libapache2-mod-suphp existiert...