Toon posts:

php en useradd

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik ben bezig met een server online admin systeem(pje). Nu zijn er echter enkele commando's die ik uit wil voeren als root (bijvoorbeeld useradd).
Ik weet dat dit beveiligingsresico's met zich meebrengt, maar daar gaat het op dit moment nog niet om. (het zou natuurlijk perfect zijn als er een goede oplossing voor is).

Nu dacht ik persoonlijk aan een bash filetje dat je exec't. 1 probleem alleen. Nu dacht ik; Dat doe ik wel eventjes, en begon snel met dit :
code:
1
echo "myrootpw" | su -c 'useradd pietje' -

maar su leest niet uit zijn STIN.

Ik zit dus met een probleem. Heeft iemand hier een idee over? Of nog beter: een oplossing ?


dank,
Dyon

Verwijderd

Waarom moeilijk doen?! Je gaat je root ww toch niet in een bestand zetten?!!?

Geef dan gewoon dat bash script root rechten dan kan je zo useradd aanroepen. Zonder gedonder wil je alles wat complexer gaan maken kana je eventueel sudo gaan gebruiken i.c.m. shell_exec();

Verwijderd

Topicstarter
Rats:
Uiteraard wil ik mijn rootpw niet in een file zetten, maar ik zie geen andere oplossing.

Je zegt : Geef het script root rechten. Hoe doe ik dat? Is dat 1 van die speciale bits van chmod ?

Verwijderd

chown root bestandsnaam

Dan is de eigenaar van het bestand root ook kan je de groep eventueel veranderen maar de groepnaam en de manier waarop je die meegeeft aan het chown commando verschillen per OS.

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Rats:
Op jouw manier kun je nog steeds niet useradd uitvoeren. Ja maakt root de eigenaar van het bestand, meer niet.

Maar als je dan toch perse een useradd wilt automatiseren zou ik dan of via een sudo regelen, maar mooier is het om vanuit een queu systeem te regelen welke je vanuit een cronjob elke x tijd uitvoert.
Simpel gezegd zet je het commando wat je uit wilt voeren in een text file ergens op je server neer. Je maakt een script wat dit bestand executable maakt en uitvoert. Uitvoeren van dit script doe je vanuit de crontab van root.

Maar effe iets heel anders, waarom wil je useradd's doen vanuit een webadmin iets ? Waarom wil je uberhaupt fysieke users op je server hebben ?

[ Voor 0% gewijzigd door Mark op 12-08-2002 21:13 . Reden: Toevoeging ]


  • Blubber
  • Registratie: Mei 2000
  • Niet online
Mark schreef op 12 augustus 2002 @ 21:11:
Rats:
Op jouw manier kun je nog steeds niet useradd uitvoeren. Ja maakt root de eigenaar van het bestand, meer niet.

Maar als je dan toch perse een useradd wilt automatiseren zou ik dan of via een sudo regelen, maar mooier is het om vanuit een queu systeem te regelen welke je vanuit een cronjob elke x tijd uitvoert.
Simpel gezegd zet je het commando wat je uit wilt voeren in een text file ergens op je server neer. Je maakt een script wat dit bestand executable maakt en uitvoert. Uitvoeren van dit script doe je vanuit de crontab van root.

Maar effe iets heel anders, waarom wil je useradd's doen vanuit een webadmin iets ? Waarom wil je uberhaupt fysieke users op je server hebben ?
Shellaccounts? Heb ik ook, gewoon voor menschen die ik ken, die een shell account willen hebbem :). En waaorm wil je dat via het www? Gemakzucht :P

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Dump je userdata in een databaseje en laat gewoon iedere x minuten een crontabje lopen wat die users toevoegd?

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 14:05

Kettrick

Rantmeister!

luc schreef op 12 augustus 2002 @ 21:23:
Dump je userdata in een databaseje en laat gewoon iedere x minuten een crontabje lopen wat die users toevoegd?
Is al een iets betere oplossing :)

Wat je ook kan doen is LDAP of MySQL authenticatie doen, dan zit er geen overgangs periode tussen en werk je directer :)

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Blubber schreef op 12 augustus 2002 @ 21:15:
[...]

Shellaccounts? Heb ik ook, gewoon voor menschen die ik ken, die een shell account willen hebbem :). En waaorm wil je dat via het www? Gemakzucht :P
gemakzucht = risico. Je moest maar eens weten hoeveel van dit soort scripts dikke bugs bevatten waardoor deze lekker ge-exploit kunnen worden.
Zoveel werk is het niet om effe een SSH sessie op te starten en adduser in te tikken als je mensen dan toch zo graag shell access wilt geven.
RoeLz:

Is al een iets betere oplossing :)

Wat je ook kan doen is LDAP of MySQL authenticatie doen, dan zit er geen overgangs periode tussen en werk je directer :)
Al moet je daarvoor dan wel vaak brakke PAM zaken gaan werken.

Verwijderd

De methode die ik noem werkt wel degelijk. Alleen er voor zorgen dat Apache toestemming ook heeft om het shell script uit te voeren.

Verwijderd

Topicstarter
Zoveel werk is het niet om effe een SSH sessie op te starten en adduser in te tikken als je mensen dan toch zo graag shell access wilt geven.
Dat klopt, maar een andere opmerking van je heeft me aan het denken gezet :
Waarom wil je uberhaupt fysieke users op je server hebben ?
Het is inderdaad mischien wel een beter idee om gewoon alle 'users' (uiteindelijk is het idd de bedoeling voor www doeleinden) aan een domein te koppelen, et c etc.
Buiten het useradd commando moeten er echter ook enkele andere commando's worden uitgevoerd zoals het aanmaken van mysql db, instellen in apache httpd.conf file, etc etc... Er moet dus zowiezo iets via root worden uitgevoerd.

Ik denk dus dat ik het via de webapp onderdelen in de mysqldb gooi, en met een shellscriptje uitlees. Dat shell script word dan om de zoveel minuten uitgevoerd via crontab...

bedankt voor jullie vele reacties trouwens :)

Wat is LDAP eigenlijk ? ik hoor daar wel eens wat over, maar weet niet wat het is...

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Verwijderd schreef op 12 augustus 2002 @ 21:58:
[...]

Wat is LDAP eigenlijk ? ik hoor daar wel eens wat over, maar weet niet wat het is...
LDAP = Lightweight Directory Access Protocol. Dit is een directory (Database) met gegevens welke gebruikt kunnen worden voor verificatie en authenticatie.
De grote tegenhanger van bijvoorbeeld NDS / AD / NIS.

Verder is het voor het bieden van webhosting helemaal niet nodig om fysieke users te hebben. Mail/FTP/database/enz users kun je gewoon uit een database trekken. Zelfs je vhost config voor Apache kun je in een database zetten.

Mijn mening is dat je de root user alleen maar nodig hebt om daemons te stoppen/starten welke onder port 1024 draaien en het installeren van nieuwe software.

  • Fatal-Error
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op 12 augustus 2002 @ 21:44:
De methode die ik noem werkt wel degelijk. Alleen er voor zorgen dat Apache toestemming ook heeft om het shell script uit te voeren.
Als apache onder root draait wel, maar dat is meestal niet (meer) het geval.

Welcome to the desert of the real.


  • Mark
  • Registratie: Juni 1999
  • Laatst online: 08-08 09:24
Verwijderd schreef op 12 augustus 2002 @ 21:44:
De methode die ik noem werkt wel degelijk. Alleen er voor zorgen dat Apache toestemming ook heeft om het shell script uit te voeren.
Bedoel je niet toevallig gewoon SUID ?

Verwijderd

Fatal-Error schreef op 12 augustus 2002 @ 23:01:
[...]
Als apache onder root draait wel, maar dat is meestal niet (meer) het geval.
Nee niks apache onderroot.

Men neme een deamon, welke met sudo rechten heeft om commando's uit te voeren. Men zet een aparte instantie op van Apache die onder een user draait die dus die sudo rechten heeft. Verder heeft deze Apache geen overbodigzooi aanboord, dus zoveel mogelijk modules e.d. uitzetten!!!

Webinterface aan die apache hangen en klaar ben je. Als je het nog wat veiliger wilt doen zet je er een DB tussen. Deamon leest SQL uit. Apache insert de zooi in SQL en voila.

  • Blubber
  • Registratie: Mei 2000
  • Niet online
Mark schreef op 12 augustus 2002 @ 21:34:
gemakzucht = risico. Je moest maar eens weten hoeveel van dit soort scripts dikke bugs bevatten waardoor deze lekker ge-exploit kunnen worden.
Zoveel werk is het niet om effe een SSH sessie op te starten en adduser in te tikken als je mensen dan toch zo graag shell access wilt geven.

[...]
Helemaal mee eens. Ik heb hier dus een shellservertje staan waar ik altijd me loop te kutten, en daar wou ik dus ook zo'n webinterfaceje voor maken, kan geen kwaad. Echter in een productie omgeving ga je dit soort scripts natuurlijk vermijden :).

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Je wil geen scripts vanaf apache als root uitvoeren, dat is vragen om moeilijkheden.
Ergens een optie vergeten waardoor je htaccess ff niet werkt en ze maken gewoon hun eigen shell aan op je bak.. Dat is nog 's makkelijk hacken..
Die optie die ik aangaf is al iets veiliger, je moet dan alleen ff goed checken of er geen gekke data in je database staat.

Shell authenticatie via LDAP is ook nog een goede optie maar wel wat overdreven als 't over maar 1 machine gaat denk ik.
Pagina: 1