Toon posts:

Groep aanmaken via een php-script met exec()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil via onderstaande PHP-script een groep aanmaken op een Linux systeem. Hij geeft echter een foutmelding (via variabele $error).
Het lukt me wel om met exec(..) functie andere zaken, zoals de 'uptime' of 'who', op te vragen.

Wat doe ik fout?
Of heb je via een webbrowser niet voldoende rechten?


//beheer.php
// FUNCTIES //////////

// invoeren van groepsnaam tbv func_groupadd()
function func_groep_invoer()
{
?>
<html>
Groep toevoegen:
<form action=beheer.php method=post>
Naam:<br>
<input type=text name=groep><br><br>
<input type=submit value=Ok>
</form>
</html>
<?php
}

// toevoegen van groepsnaam
function func_groupadd($grp)
{
if(strlen($grp)<=8)
{
$cmd="groupadd $grp";
$out=exec($cmd,$results,$error);
if(!$error)
{
echo "Groep $grp is toegevoegd.<br>";
}
else
{
echo "Fout!<br>";
echo "OUT: $out<br>"; //tbv testen
echo "ERROR: $error<br>"; //tbv testen
echo "RESULTS: $results<br>"; //tbv testen
}
}
else
{
echo "Fout: Lengte van naam maximaal 8 karakters!";
}
}

///////// MAIN /////////

func_groep_invoer();
if(isset($groep))
{
func_groupadd($groep);
}

/////// EINDE SCRIPT /////

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 17 juli 2002 19:17 schreef vandenfire het volgende:
Of heb je via een webbrowser niet voldoende rechten?
Zou wat zijn als elke webpage zomaar groepen en users kon toevoegen.

Antwoord is dus nee.

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 01-09 12:46
ach, toen me oude provider zijn webserver nog als root had draaien, dat waren nog eens tijden :) Jij nog een accountje enz :)

Verwijderd

Topicstarter
Het draait natuurlijk wel op een lokaal netwerk en met een wachtwoord beveiliging.

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 31-08 20:01

wiho

Certified Nerd

Je webserver draait (hopelijk) je PHP-scripts niet onder de root account, dus mag je inderdaad geen nieuwe groepen aanmaken. Als je echt zeker weet dat er geen kwaadwillenden bij je webserver kunnen komen, zou je een suid kopie van groupadd kunnen maken, en die aanroepen vanuit je PHP-script.
code:
1
2
3
4
cp /usr/sbin/groupadd /usr/sbin/groupadd.suid
chgrp apache /usr/sbin/groupadd.suid
chmod o-rwx /usr/sbin/groupadd.suid
chmod u+s /usr/sbin/groupadd.suid

(als je webserver onder een andere account dan 'apache' draait, vervang die dan hierboven)

Let op: ieder ander PHP-script of CGI-script op je webserver kan deze groupadd.suid dus ook aanroepen!!

"Pas als het proces gecrashed is, dumpt men de core"