php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 28.05.2011, 12:34  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Login Benutzerverwaltung erzeugt Anmeldung am Webserver

Hallo,

folgende Fragestellung, an der ich mir schon seit einiger Zeit die Zähne ausbreche und nicht den richtigen Lösungsansatz und die richtigen Funktionen finde:

In meinem CMS gibt es eine Benutzerverwaltung mit php-Klasse und Datenbanktabelle.
Ich möchte jetzt gerne, daß dort eingeloggte Benutzer danach auch Rechte auf dem Webserver Apache bekommen.

Der Hintergrund ist der, daß ich Dateien wie Konfiguration, Templates, CSS und Javascript nicht mehr für die ganze Welt zum Beschreiben freigeben möchte.

Kennt jemand Möglichkeiten, daß zu realisieren ?
eisenhans ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.05.2011, 12:45  
Benutzer
 
Registriert seit: 18.04.2011
Beiträge: 84
PHP-Kenntnisse:
Anfänger
Cronkalonca befindet sich auf einem aufstrebenden Ast
Standard

Jemand der sich auf deiner Seite einloggt soll Zugriff auf den Webserver haben? Oder soll ihm erlaubt sein, bestimmte Dateien zu editieren? Befürchte ich hab die Frage falsch verstanden aber das hört sich alles nicht sehr sicher an.
Wieso kann alle Welt momentan auf deine Dateien zugreifen?
Eventuell meinst du auch nur sowas wie htaccess, such mal danach.
Cronkalonca ist offline   Mit Zitat antworten
Alt 28.05.2011, 13:30  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard Dateien editieren

Zitat:
Zitat von Cronkalonca Beitrag anzeigen
Jemand der sich auf deiner Seite einloggt soll Zugriff auf den Webserver haben? Oder soll ihm erlaubt sein, bestimmte Dateien zu editieren? Befürchte ich hab die Frage falsch verstanden aber das hört sich alles nicht sehr sicher an.
Wieso kann alle Welt momentan auf deine Dateien zugreifen?
Eventuell meinst du auch nur sowas wie htaccess, such mal danach.
Ein Beispiel:

Im Frontend wird die Seite main.css aufgerufen. Das heißt sie wird von Welt gelesen und deshalb kann ich sie auch nicht mit htaccess einschränken.

Im Backend soll dem eingeloggten Benutzer das Editieren der CSS-Datei erlaubt werden.

Ich möchte die Zugriffsrechte der main.css auf 774 stellen, allerdings fehlt mir die Zuordnung des eingeloggten Benutzers zur Gruppe der Dateiberechtigten über z.B. .htuser.

Verständlich ?

Im Moment hat die Datei main.css die Rechte 777 bei mir, allerdings ist mir auch nicht ganz klar, ob überhaupt jemand Fremdes damit die Datei bearbeiten kann.
eisenhans ist offline   Mit Zitat antworten
Alt 28.05.2011, 14:25  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe dein Problem nicht gänzlich:

Du willst, das eingeloggte User bestimmte Dateien auf deinem Server verändern können,oder?

Um das zu erreichen musst du im Normalfall keinerlei Systemrechte ändern, eine einfache Datei kann z.B. auch PHP bearbeiten.

Ganz grob:
PHP-Code:
<?php
if(/* Nutzer hat benötigte Rechte */)
{
   
$content file_get_contents('some.css');
   echo 
'<textarea name="css">'.$content.'</textarea>';
   echo 
' <!--Submit -->';
   if(
/* Post */)
   {
      
file_put_contents('some.css'$_POST['css']);
   }
}
?>
Alle schreibrechte kannst du direkt in PHP verwalten, ohne irgendetwas am System zu ändern.

Wenn du Dateien nur für bestimmte Benutzer(also Nutzer deiner WEbsite, nicht systemuser), dann lasse die Dateien über PHP ausliefern:
some.css.php
PHP-Code:
<?php
if(/* Rechte vorhanden && User eingeloggt */)
{
   
header(/* Für CSS-Dateien angemessene Header */);
   
/*
   Some.css sollte nicht im webroot liegen, oder per htaccess geschützt werden
   z.B. seperater Ordner überhalb des webroots, oder   Order Deny,Allow
  Deny from All
   Die in der .htaccess festgelegten eisntellungen gelten nur für einen Zugriff über den Webserver, und nicht für die Dateisystemoperationen von PHP
   */
   
readfile('some.css'); 
   exit;
}
else
{
   
header('HTTP/1.1 403 Forbidden');
   exit;
}
?>
Die Benutzer in deiner Datenbank haben erstmal nichts mit den Benutzern auf deinem System zu tun und sollten es auch nicht.
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist offline   Mit Zitat antworten
Alt 28.05.2011, 19:18  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Suralc Beitrag anzeigen
Ich verstehe dein Problem nicht gänzlich:

Du willst, das eingeloggte User bestimmte Dateien auf deinem Server verändern können,oder?

Um das zu erreichen musst du im Normalfall keinerlei Systemrechte ändern, eine einfache Datei kann z.B. auch PHP bearbeiten.
Das stimmt so nicht, je nachdem, wem die Datei gehört und welche rwx-Rechte vergeben sind, ist das Speichern der Datei erlaubt oder nicht.

Ich möchte einfach, daß ein Skript im Frontend die Datei ansehen darf, ein Skript im Backend sie auch bearbeiten darf.

Also möchte ich das Skript im Backend bei eingeloggtem Benutzer einer Apache Gruppe zuweisen, die Schreibrechte für die Datei hat.

Vielleicht habe ich irgendwo einen großen Denkfehler und es kann eh keiner die .css Datei bearbeiten, selbst wenn die Rechte auf 777 stehen.
eisenhans ist offline   Mit Zitat antworten
Alt 28.05.2011, 19:28  
Erfahrener Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 179
PHP-Kenntnisse:
Fortgeschritten
Daniel befindet sich auf einem aufstrebenden Ast
Daniel eine Nachricht über ICQ schicken
Standard

Also... entweder wirfst du etwas durcheinander oder ich verstehe dich falsch. Nur mal zur Klärung:

Das Front- und Backend des Webservers werden unter dem gleichen Systembenutzer laufen. Warum hast du im Frontend eine Funktion um die Datei zu bearbeiten, wenn es das nicht soll?

Der Webserver hat entweder einen globalen Nutzer (sowas wie wwwdata oder so) oder PHP läuft je Enduser unter einem eigenen Systemuser (suexec und Konsorten). Darauf hast du als Endnutzer des Servers keinen Einfluss.

Die Dateirechte (rwx) regeln den Zugriff auf Dateisystemebene, und zwar für Eigentümer, Gruppe und "Alle" und nicht getrennt nach Front- und Backend. Wenn du pro Datei und User unterschiedliche Rechte angeben willst, musst du dies schon selbst implementieren.
Daniel ist offline   Mit Zitat antworten
Alt 28.05.2011, 20:52  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.870
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Das Userhandling der HTTP-Authentication per .htuser bzw. .htaccess ist Apache-Intern. Alle Requests des Apache werden auf der Dateisystem-Ebene des Betriebssystems mit dem Apache-User ( www-user oder sonstwas ) ausgeführt. Sämtliche Rechteverteilungen der Systemrechte haben somit keinerlei Einfluss noch sind sie für eine Lösung relevant.

Am saubersten löst du dein Problem indem du das HTTP-Authentification-Modul per SERVER-Globals anzapfst und authentifizierte User ein entsprechendes Editier-Script bereitstellst. Dort kannst du dann auch bequem per Script entscheiden, wer was und wieviel ändern kann / könnte.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 28.05.2011, 21:14  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Du wirfst da glaube ich einiges durcheinander...

Die Rechte von denen du sprichst gelten für die Systembenutzer des Server Betriebssystems. PHP hat damit nur in sofern etwas zu tun das der Benutzer unter dem der PHP Prozess läuft, Schreibrechte braucht wenn ein PHP Script in diese Datei schreiben will.

Rechte für einzelne Scripte brauchst/kannst du nicht vergeben. Deine Rechteprüfung erfolgt einfach vor dem Schreibvorgang in deinem Script, also alles rein PHP seitig.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 29.05.2011, 14:48  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard Zusammenfassend

Zunächst mal danke für die Antworten, ich hab mir vielleicht bei dem Versuch, mein System wasserdicht zu gestalten, eine Sorge zu viel gemacht.

Zitat:
Das Front- und Backend des Webservers werden unter dem gleichen Systembenutzer laufen. Warum hast du im Frontend eine Funktion um die Datei zu bearbeiten, wenn es das nicht soll?
Ich hab keine Funktion, war mir aber nicht sicher, ob es einen Möglichkeit gibt, da von außen ran zu kommen.


Zitat:
Der Webserver hat entweder einen globalen Nutzer (sowas wie wwwdata oder so) oder PHP läuft je Enduser unter einem eigenen Systemuser (suexec und Konsorten). Darauf hast du als Endnutzer des Servers keinen Einfluss.
Gibt es eine einfache Methode, den Namen diese Benutzers auf verschiedenen Webservern zu ermitteln ? Über phpinfo() oder über eine andere php-Funktion ?


Zitat:
Die Dateirechte (rwx) regeln den Zugriff auf Dateisystemebene, und zwar für Eigentümer, Gruppe und "Alle" und nicht getrennt nach Front- und Backend. Wenn du pro Datei und User unterschiedliche Rechte angeben willst, musst du dies schon selbst implementieren.
Das ist mir klar und deswegen frage ich ja.

Zitat:
Das Userhandling der HTTP-Authentication per .htuser bzw. .htaccess ist Apache-Intern. Alle Requests des Apache werden auf der Dateisystem-Ebene des Betriebssystems mit dem Apache-User ( www-user oder sonstwas ) ausgeführt. Sämtliche Rechteverteilungen der Systemrechte haben somit keinerlei Einfluss noch sind sie für eine Lösung relevant.
Zitat:
Am saubersten löst du dein Problem indem du das HTTP-Authentification-Modul per SERVER-Globals anzapfst und authentifizierte User ein entsprechendes Editier-Script bereitstellst. Dort kannst du dann auch bequem per Script entscheiden, wer was und wieviel ändern kann / könnte.
Das HTTP-Authentification-Modul hatte ich Anfangs auch in Benutzung, inzwischen habe ich aber eine eigene Benutzerauthentifizierung, die wesentlich komfortabler ist, und inzwischen auch eine interne Zuordnung von Rechten für verschiedene Aufgaben durch Benutzergruppen (Administratoren, Moderatoren,Editoren) erlaubt.
Ein großer Vorteil meiner Meinung nach ist, daß Benutzer auch andere Benutzer anlegen können, zum Anderen ist die Auswertung der HTTP-Authentifizierung bei unterschiedlichen Providern nicht so ganz einfach.

Zitat:
Du wirfst da glaube ich einiges durcheinander...

Die Rechte von denen du sprichst gelten für die Systembenutzer des Server Betriebssystems. PHP hat damit nur in sofern etwas zu tun das der Benutzer unter dem der PHP Prozess läuft, Schreibrechte braucht wenn ein PHP Script in diese Datei schreiben will.
Und genauso Schreibrechte für den Ordner benötigt, wenn man ein Backup der Datei anlegen möchte. Das heißt diese Dateien benötigen mindestens ein 664.

Zitat:
Rechte für einzelne Scripte brauchst/kannst du nicht vergeben. Deine Rechteprüfung erfolgt einfach vor dem Schreibvorgang in deinem Script, also alles rein PHP seitig.
Alles klar !
eisenhans ist offline   Mit Zitat antworten
Alt 30.05.2011, 06:42  
Benutzer
 
Registriert seit: 06.08.2008
Beiträge: 43
kratzbaum ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Benutze für derartige Dinge WINSCP.
Das Programm holt Dir die Dateien auf Deinen PC, wo du sie mit Windows-
Mitteln (Editoren usw) bearbeiten kannst. Beim Speichern werden sie automatisch auf den Server zurückgeschrieben.
kratzbaum ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Facebook Login und eigener Login Paralell blackcrow PHP-Fortgeschrittene 17 29.05.2011 21:03
imagecreatefromjpeg() "Allowed memory size exhausted" peter silie PHP Tipps 2010 17 04.05.2011 14:25
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
[Erledigt] Login, LogIn, Anmelden, Einloggen -&amp;amp;amp;amp;gt; ??? Off-Topic Diskussionen 20 14.07.2005 11:01
login mit session id PHP Tipps 2005 10 26.01.2005 12:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript benutzerverwaltung, php login benutzerverwaltung 2011, php anmeldung, am webserver anmelden, anmeldung webserver, dateien webserver nur für eingeloggte user, benutzerverwaltung und login mit php, php benutzerverwaltung script, benutzerverwaltung in php schreiben, benutzerverwaltung mit php klasse, webserver dateien nur für bestimmte benutzer, webserver anmeldung, login mit eigenem webserver, php login userverwaltung, webserver einloggen, webserver login kein user, webserver mit anmeldeung, javascript benutzer webserver anmeldung, webserver php login https, php script zum ansehen von ordnerechten auf den webserver

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum