Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : wiedermal useradd gg



quinte17
02-09-2005, 14:59
huhu leute!
ja ich weiß, useradd und php.. trotzdem brauch ich es fürs intranet.

also ich habe nun schon einiges versucht, aber es geht einfach nicht. ich weiß nicht, wie ich des passwort encoden muss, damit es klappt...
sogar auf der shell funktioniert zwar das anlegen, aber dass passwort danach nicht..
wie finde ich heraus, wie mein shadow die passwörter codiert? md5 und crypt sind es schonmal nicht..

mein aufruf bisher:


shell_exec("/usr/bin/sudo /usr/sbin/useradd -d /srv/chroot/./home/".strtolower($_POST[name])." -g sftpuser -s /bin/bash -p ".md5(strip_tags($_POST[pwd]))." ".strtolower($_POST[name]))


brauche ein wenig help..
wer hat eine idee??

danke!
greetz

Romanday
02-09-2005, 16:19
huhu leute!
ich weiß nicht, wie ich des passwort encoden muss, damit es klappt...
sogar auf der shell funktioniert zwar das anlegen, aber dass passwort danach nicht..



Versuch mal ein einfaches Passwort ohne Sonderzeichen.
Für die Shell sind bestimmte Zeichen Sonderzeichen, so z. B. & oder
\. Solche solche und andere Zeichen solltest Du in deinem PW verweiden.


wie finde ich heraus, wie mein shadow die passwörter codiert? md5 und crypt sind es schonmal nicht..


Schau dir mal das user_add Script an. Da sollte es eigentlich drin stehen.



mein aufruf bisher:


shell_exec("/usr/bin/sudo /usr/sbin/useradd -d /srv/chroot/./home/".strtolower($_POST[name])." -g sftpuser -s /bin/bash -p ".md5(strip_tags($_POST[pwd]))." ".strtolower($_POST[name]))



Für PHP, Apache stellt so ein Aufruf ein Sicherheitsproblem dar.
Richte mal einen extra Virtuellen Host ein, dem Du andere Rechte
zuweisen kannst.

Ich weiß nicht, warum Du User über das Internet anlegen mußt.
Da gibt es doch elegantere Wege.
Mit Sicherheit geht immer alles, aber man muß nicht alles machen
was geht.

Romanday
02-09-2005, 16:21
huhu leute!
ich weiß nicht, wie ich des passwort encoden muss, damit es klappt...
sogar auf der shell funktioniert zwar das anlegen, aber dass passwort danach nicht..


Versuch mal ein einfaches Passwort ohne Sonderzeichen.
Für die Shell sind bestimmte Zeichen Sonderzeichen, so z. B. & oder
\. Solche solche und andere Zeichen solltest Du in deinem PW verweiden.



wie finde ich heraus, wie mein shadow die passwörter codiert? md5 und crypt sind es schonmal nicht..


Schau dir mal das user_add Script an. Da sollte es eigentlich drin stehen.



mein aufruf bisher:


shell_exec("/usr/bin/sudo /usr/sbin/useradd -d /srv/chroot/./home/".strtolower($_POST[name])." -g sftpuser -s /bin/bash -p ".md5(strip_tags($_POST[pwd]))." ".strtolower($_POST[name]))



Für PHP, Apache stellt so ein Aufruf ein Sicherheitsproblem dar.
Richte mal einen extra Virtuellen Host ein, dem Du andere Rechte
zuweisen kannst.

Ich weiß nicht, warum Du User per Shellscript über das Internet anlegen mußt.
Mach das doch über eine DB, dann mußt Du den Server nicht immer
neu starten.
Da gibt es doch elegantere Wege.
Mit Sicherheit geht immer alles, aber man muß nicht alles machen
was geht.

quinte17
02-09-2005, 16:38
also ich schicke ja meinen usernamen und mein passwort über post an des script.. in dem fall
username: test
pwd: test

wenn ich darauf keinen md5sum mache, dann wird dieses passwort test direkt in die /etc/shadow geschrieben. somit funktioniert der login nicht.
wenn ich md5 mache, dann steht dementsprechend der md5 in der etc/shadow als passwort... aber der login funzt trotzdem nicht.

dieses ding ist nciht im internet, sondern nur von unserem eigenen intrAnet erreichbar. man soll halt bequem auf unserem sftp-server sftp-benutzer anlegen können.
unsicher sind dann auch nur die befehle, die sudo verwenden.. da der apache prozess ein anderer user ohne shell ist.

ich versuche mich auch gerade ein wenig mit expect, aber ich checke des nicht.
ich bräuchte da ein beispiel wie ich in php mit expect einen passwd ausführen könnte...

bitte keine belehrungen mehr wegen sicherheit :) in diesem zusammenhang weiß ich was ich tue :D

greetz

quinte17
02-09-2005, 17:12
so habs nun selbst hinbekommen :)
wenns interressiert:


echo "Benutzer wird angelegt... ";
echo "<pre>". shell_exec("/usr/bin/sudo /usr/sbin/useradd -d /srv/chroot/./home/".strtolower($_POST[name])." -g sftpuser -s /bin/bash ".strtolower($_POST[name]))."</pre>";
echo "<pre>".shell_exec("expect -c 'spawn sudo /bin/passwd ".strtolower($_POST[name])."' -c 'expect \"ew password:\"' -c 'send \"".$_POST[pwd]."\r\"' -c 'expect \"ew password:\"' -c 'send \"".$_POST[pwd]."\r\"' -c 'expect \"changed.\"'")."</pre>";
echo "OK<br>";


greetz

Romanday
02-09-2005, 18:21
so habs nun selbst hinbekommen :)
wenns interressiert:


echo "Benutzer wird angelegt... ";
echo "<pre>". shell_exec("/usr/bin/sudo /usr/sbin/useradd -d /srv/chroot/./home/".strtolower($_POST[name])." -g sftpuser -s /bin/bash ".strtolower($_POST[name]))."</pre>";
echo "<pre>".shell_exec("expect -c 'spawn sudo /bin/passwd ".strtolower($_POST[name])."' -c 'expect \"ew password:\"' -c 'send \"".$_POST[pwd]."\r\"' -c 'expect \"ew password:\"' -c 'send \"".$_POST[pwd]."\r\"' -c 'expect \"changed.\"'")."</pre>";
echo "OK<br>";


greetz

Glückwunsch ;)

schönes Beispiel