PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatisches userfreischalten nach der Anmeldung



Stormsam
26-02-2002, 07:16
Hi@ all!
Ich vergebe auf meiner Seite kostenlosen Webspace!
Ich habe SuSE Linux 7.3 mit Webmin (ProFTPD & Apache) .
Wenn sich nun einer auf meiner Homepage anmeldet bekomme ich immmer eine Mail und muss ihn manuell bei webmin freischalten, leider ist die nachfrage zu groß geworden und ich komme mit den freuschaltungen kaum hinterher!
Kennt jemand den script, damit sich, wenn jemand sich auf meiner Seite anmeldet, er Linux die Daten übernimmt und automatisch freischaltet?
Sodass er auch gleich anfangen kann Datein hochzuladen etc...
Ohne das ich alles Munell machn muss.
Ich habe versucht irgendwie den Code von Webmin auf meine Seite zu tun (Sorry wenn ich dadurch einen copyright gebrochen hab!!!)
doch da fragt er ja immer nach dem Passwort und das kann ich meinen Usern ja nicht geben....
Wenn jemand mit helfen kann, soll er bitte posten!
mfG
Stormsam

lolli
26-02-2002, 08:31
Hallo Stormsam,
was meinst du denn mit Freischalten? Den entsprechenden User anlegen? Wenn das der Fall ist, gibt es mindestens 3 Möglichkeiten:

1.) SETUID-Programm
Wenn der Benutzer sich anmeldet, wird ein Programm gestartet, welches den eigentlichen Systembenutzer einrichtet. Das SETUID-Bit benötigtst Du deshalb, da ja nur root Benutzer anlegen darf.
Allerdings ist so ein Script ein Sicherheitsrisiko, da ja prinzipiell jeder dann einen Nutzerübers WWW einrichten darf.

2.) CRON-Job
Du erstellst ein Programm/Skript, welches als CRON-Job meinetwegen alle 5 Minuten ausgeführt wird. Es prüft, ob es einen Neuanmeldung gegeben hat. Wenn die der Fall ist, wird der Benutzer eingerichtet.

3.) Mysql-Userverwaltung
Du richtest dein System (proFTP & Co) so ein, dass die Webuser nicht wirklich auch auf Deinem System, sondern (nur) in einer Datenbank existieren. Sofern diese kein Telnet brauchen, ist das Anlegen als Systemuser nicht wirklich notwendig. Einziges Problem(chen) ist sendmail. AFIK arbeitet das noch nicht mit mysql. Aber dafür gibt es QMAIL.

oliver

Stormsam
26-02-2002, 14:24
Hi@ lolli
Ja ich will machen, das sich jeder user "selber anmelden" kann, sodass er gleich loslegen kann Datein hochzuladen und darauf zu zugreifen...
D.h:
Jemand geht auf meine Site und füllt das Formular aus..
Dann sollte der user nachdem er auf "Anmelden" geklickt hat erstellt werden...
Damit er auch darauf zugreifen kann, sollte er auch beim erstellen einen Ordner in /usr/local/httpd/htdocs/USER bekommen (-> Dies sollte am besten automatisch gehen, der script sollte dies vom usernamen ableiten können). Gruppe etc.. sollte auch auto gehn, damit der user nich verwirrt ist was er da nun eigeben soll.
Ich bin mir nicht sicher aber ich glaube am einfachsten und praktischten wäre das progi SETUID-Programm

Allerdings ist so ein Script ein Sicherheitsrisiko, da ja prinzipiell jeder dann einen Nutzerübers WWW einrichten darf.

-> gerade das will ich ja erreichen :)

Ansonsten, woher bekomme ich das?!? Ist das schwer zu konfigurieren etc... ?? Entspricht das Programm so etwa meinen Vorstellung (-> siehe oben dieses Posts) ?
Schreib bitte wieder ;)
MfG
Stormsam

lolli
26-02-2002, 16:07
>> Allerdings ist so ein Script ein Sicherheitsrisiko, da ja prinzipiell
>> jeder dann einen Nutzerübers WWW einrichten darf.

> gerade das will ich ja erreichen
Das ist schon klar. Ich meinte nur, dass eben jemand -der was böses will- eine gute Angriffsmöglichkeit/~basis hat, um dir zu schaden.

SETUID-Programm:
Tja, du brauchst ein C-Programm, welches einen Benutzer einrichtet. Dieses kannst Du dann aus einem Skript heraus ausrufen. Problem: Jeder telnet-User auf deinem Systen kann dann potentiell neue Bentzer anlegen.

Welche Rechte sollen denn deinen User haben?

oliver

Stormsam
26-02-2002, 16:13
Hi!
Meine User sollen nur die Rechte haben, sich selber zu erstellen :)
Also halt wie auf den Professionellen seiten (z.b. tripod), user klickt auf Anmelden füllt alles aus und kann sofort auf seinen account zugreifen und z.b. Datein hochladen , dies möchte ich auch erreichen.
Bis jetzt habe ich auf meiner Seite nur ein Fomular und nachdem der user dies ausgefüllt hat kriege ich eine Email und muss ihn dann selber erstellen (-> sehr mühsam)
Nun möcht ich halt machen das das "automatisch" geht also praktisch das der user sich selber erstellen kann ....

Ich habe leider kein C-Programm und kenne mich mit C(++) auch gar nicht aus ... Gibt es nicht schon einen Vorgefährtigten script?!?

MfG
Stormsam

Stormsam
28-02-2002, 10:09
Hi!
Wieso antwortest du nicht mehr?
Würde mich freuden, wenn du dich wieder melden würdest!!!
Mfg
Stormsam

deac
28-02-2002, 15:42
Dich hab ich lange nicht mehr gelesen.;) So weit bist du nun.

Also dafür bräuchtest du kein Programm, das ginge eigetnlich auch mit Scripts. Es gibt ja schon alles.

Mit useradd kannst du Benutzer anlegen. Am besten:
useradd -d $home -mk $home -g $group -p $passwd $user

Schau in der Man-page nach, was was bedeutet.
Natürlich sind root-Rechte nötig. Wie das geht weiß ich noch nicht.
Jedenfalls kann du jetzt ein Script schreiben, welches Anmeldungen entgegen nimmt und ein Script, welches du noch selbst starten musst wegen den Rechten, welches die Benutzer dann einrichtet, nach der Liste, der Anmeldungen.

Falls noch andere Sachen eingerichtet werden müssen, dann kann dies das Script auch tun.

Stormsam
28-02-2002, 20:25
Hi deac !!! ;)
Naja weiß nicht, ob ich wirklich schon so weit bin *g*
Den eigentlich habe ich immer noch die selben Probleme (Keine mb begrenzung, man braucht immer noch ein / am ende einer url etc....)
Yo, hab mich etwas länger nicht mehr gemeldet da ich versucht habe aus Linux nen router zu machen (was endlich geklappt hat!!!), deshalb hangel ich mich jetzt weiter und versuchs ma mit diesen scripten ;)

Wie ich einen Benutzer anlege weiß ich jetzt ja schon ;) Das mache ich am liebsten mit Webmin...
Doch ich wohlte ja, das wenn sich ein User auf meiner Page anmelden sich automatisch "selber erstellen" ;)
Ich hab versucht von webmin den code zu "übernhemen" doch auch da braucht man ja dieses webin pw um überhaupt jemanden freizuschalten, das hilft mir nicht weiter... es sollte ohne passwort sein!
Falls jemand einen Plan hat, woher ich son Scipt bekomme (is doch sicherlich in php oder cgi (-> müßte doch gehn oder?!? )) soll er posten ;)
MfG
Stormsam

lolli
02-03-2002, 13:07
@deac
> Also dafür bräuchtest du kein Programm, das ginge eigetnlich auch mit
> Scripts. Es gibt ja schon alles.
> Mit useradd kannst du Benutzer anlegen. Am besten:
> useradd -d $home -mk $home -g $group -p $passwd $use

Geht nicht. Der aufrufende Benutzer ist wwwrun oder nobody!!!! Wenn der Rechte zum Benutzeranlegen hätte, könntest Du gleich einen "Win98-Server" nehmen. Das würde jegliches Benutzer- und Rechtesystem in Frage stellen. Ausserdem: Du kannst/darfst idR. Shellskripte nicht mit SETUID-Bit versehen. Versehen geht zwar, aber wenn Du diese dann über WWW aufrufen willst, gibts nur ein Can't do setuid!!

@Stormsam:
Leider war ich einige Tage im "Erholungsurlaub". Ich habe diesen Threat nicht vergessen. Ich hatte eben nur keinen Rechner mit Internetzugang zur Hand.

Zurück zu Deinem Problem:
> Ich hab versucht von webmin den code zu "übernehmen" doch auch da
> braucht man ja dieses webin pw um überhaupt jemanden freizuschalten,
> das hilft mir nicht weiter... es sollte ohne passwort sein!
Der webmin-Server läuft mit root-Rechten. Deshalb kannst Du dort auch problemlos Nutzer anlegen. Das Kopieren würde Dir somit nicht helfen, da APACHE mit eingeschränkten Rechten läuft (-> wwwrun).

Nach einem fertigen Skript habe ich erlich gesagt noch nie gesucht. Wobei ein (Shell-)Skript (siehe oben) sowieso schwierig zu integrieren wäre.
Ein binares Programm ist die einfachere Lösung. Ein wenig streube ich mich, einfach so die Lösung zu posten. Nicht weil ich es nicht will, sondern weil es einiger Absprachen bezüglich des Aufrufs bedarf. (Es sollte schon ein kleiner Haken dabei sein, so dass nicht jeder einen User anlegen darf...)
Schicke mir mal deine E-Mail-Adresse als private Nachricht (http://www.linuxforen.de/forums/private.php?s=&action=newmessage&userid=2169). Dann können wir das mal klären.

oliver

Stormsam
02-03-2002, 21:54
Hi@all!
Ich fliege jetzt auch ma für 2 wochen in meinen Erholungsurlaub *g*
Bitte vergisst mich nicht, damit wir in 2 wochen weitermachen können!
Viel Spass noch in den 2 wochen!
MfG
Stormsam

deac
09-03-2002, 17:53
und ich bin grad seit einer stunde von der klassenfahrt zurück.;)

@lolli
natürlich geht das.
aber ihr beide habt nicht richtig verstanden.
das anlegen nicht durch den benutzer sondern selbst.

@stormsam
wie ich schrieb, mit useradd den benutzer erstellen.
ist doch kein problem. ich hab doch geschrieben, dass dies durch ein script erledigt wird.

nochmal zum mitschreiben:
benutzer möchte sich registrieren.
benutzer öffnet die seite mit dem formular.
benutzer füllt formular aus.
benutzer schickt formular ab.
server empfängt formular.
server speichert das formular in einer datenbank.
-----------
du rufst irgend wann ein script auf:
script holt formular aus der datenbank.
script legt nach formular die benutzer an.

natürlich sind mehrere formulare in der datenbank und jedes wird abgearbeitet.

super einfach. du rufst nur eben regelmäßig das script auf, bzw. nimmst es als cron-job.
es entspricht doch komplett schon der nr 2.

-------------------------------------------------
doch, es geht auch, dass wwwrun benutzer anlegt. man erstellt ein script, welches einfach das formular erhält und vom server als wwwrun mit root rechten gestartet werden kann. dies geht mit sudo. wie weiß ich aber noch nicht.

lolli
09-03-2002, 19:00
> du rufst irgend wann ein script auf:
> script holt formular aus der datenbank.
> script legt nach formular die benutzer an.
Das ist korrekt. Ich verstand es so, dass das skript direkt vom apache aufgerufen werden sollte. Manuell gehts natürlich auch. Nur du musst eben immer nochmal manuell ran.

> natürlich sind mehrere formulare in der datenbank und jedes wird
> abgearbeitet.
> super einfach. du rufst nur eben regelmäßig das script auf, bzw.
> nimmst es als cron-job.
> es entspricht doch komplett schon der nr 2.
Diese Lösung hatte ich auch schon vorgeschlagen. Aber er wollte nicht diese, sondern die sofortige Usereinrichtung.

> doch, es geht auch, dass wwwrun benutzer anlegt. man erstellt ein
> script, welches einfach das formular erhält und vom server als wwwrun
> mit root rechten gestartet werden kann. dies geht mit sudo. wie weiß ich
> aber noch nicht.
Geht auch. :)

oliver

Stormsam
17-03-2002, 10:44
Hi!
@deac ja ok, aber genau so einen Script suche ich ja -> einen fertigen ;)
Ich wollte jetzt eigentlich nicht alles selber schreiben (außer es is nicht so viel) doch wie ich linux kenne....
Weißt du den vielleicht woher ich so einen Script bekomme?

Ihr sagt das so einfach "man erstellt einfach einen script der .... "
so was kann ich nicht ;)
Wenn ihr dies könnt helft mir bitte weiter !
MfG
Stormsam ;)

deac
17-03-2002, 19:13
ein fertig-script?
naja, das könnte ich erstellen, aber anpassen musst du selbst.
das script ist nicht besonders groß.
aber du musst die anmelde-seite selbst enwickeln.
das kann ich dir nicht abnehmen.
das werde ich aber nicht so schnell machen, da ich noch viel zu tun habe.

beides ist aber recht einfach.

Stormsam
18-03-2002, 19:54
Hi!
Ok, wenn du den grund script schreibst und mir danach weiter hilfst wird das kein problem sein :-)
Wie wollen wir anfangen?
mfg
Stormsam

PS: Lasse dir bitte bitte nicht alzuviel Zeit, da ich am Freitag wieder für 10 Tage auf Klassenreise fahre :(
Falls dus nicht schast, is es auch nicht so schlimm, machen wir es eben in 2 Wochen ;)

deac
20-03-2002, 20:57
ich kann leider erst in den ferien dran gehen, da ich noch klausuren schreiben muss.
da ich für die schule sowieso noch sowas ähnliches machen muss, werde ich dies auf jedenfall tuhen.