Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

folgendes Problem:

ich muss einen User in Linux anlegen per PHP ohne zu grosse Sicherheitslücken aufzureissen.

Folgende Möglichkeiten habe ich schon überdacht/ausprobiert:

1. Das Suid Bit auf das Script setzen, leider funktioniert das nur bei ausführbaren Programmen (soweit ich das verstanden und probiert hatte)

2. sudo ...

ich habe die sudoers meiner meinung richtig editiert:

Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd

root ALL=(ALL) ALL

otto ALL = NOPASSWD: USERVERWALTUNG

der user kann auch erfolgreich einen user anlegen (zwar ist einmal die passwort eingabe erforderlich aber das werd ich auch noch hinbekommen)

sogleich versuchte ich dieses mit einem php script im www verzeichnis des user durchzuführen


<?PHP
echo '<pre>';
$last_line = system('sudo /usr/sbin/useradd', $retval);
echo '</pre>
<hr>Last line of the output: '.$last_line.'
<hr>Return value: '.$retval;
?>
[/PHP]

useradd habe ich extra ohne parameter benutzt, mit parameter kommt das gleiche ergebnis:

ich bekomme eine return value von 1

sonst passiert nichts.

mittlerweile bin ich auf den trichter gekommen das der befehl als user "apache" ausgeführt wird, also habe ich ihn auch im sudoers file geaddet, er hat also die rechte für das command, aber er führt das command nicht wirklich aus.

falls jemand eine einfachere lösung einfallen sollte einen user in linux anzulegen per php immer her damit

danke im vorraus und gruß

pico

Geschrieben

hat sich erledigt

hab das ganze mit einem kleinen c programm gelöst worauf der user 'apache' mit sudo rechte drauf hat, brauch nur noch per exec das programm ausführen in php

gruß

pico

  • 1 Jahr später...
Geschrieben

also ich hab einfach

Cmnd_Alias USERVERWALTUNG = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/passwd

root ALL=(ALL) ALL

und dann dem user für apache standardt ('wwwrun')

wwwrun ALL = NOPASSWD: USERVERWALTUNG

im script dann

system (sudo useradd -g users -d /home/$username -s /bin/false -m -k /www/default $username);

das läuft auch ohne c programm

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...