useradd?
-
HI!
Ich weiss nun wie man mit useradd einen User anlegt...
(Is ja auch ncih sondernlich schwer *gg*)
Aber wie gibt man Ihm ein Passwort?Ich weiss schon dass es eigentlihc mit der Option -p gehen sollte. Nur tut es das nicht
Muss man das irgendwie gecrypted eintragen? Wenn ja, wie crypted man dass? (geht das mit c++?)Und ich weiss auch dass es passwd gibt, nur dort muss man dann noch das Passwort extra Eintragen, und meines wissens geht das nicht direkt via Command.
Denn mein Problem ist das folgende:
Ich will ein User per C++ Prog. erstellen.
Hab mir gedacht das kann ich dann einfach so per system() Funktion machen.Nur geht das nicht wenn z.b. passwd noch extra eingaben braucht.
Vielen Dank für eure Hilfe schon im Vorraus.
MFG frey
-
Das kommt auf dein System an. Hast du Shadowpasswörter sind diese verschlüsselt in der /etc/shadow. Einen weiteren Eintrag findest du in /etc/passwd.
Für jeden User den hinzufügen willst musst du einen Eintrag in /etc/shadow und einen in /etc/passwd machen, nicht mehr und nicht weniger.
Welche Spalte da für was zuständig ist, habe ich jetzt nicht im Kopf. Aber so kannst du einen User hinzufügen.
Die Verschlüsselung läuft über MD5 oder SHA, musst für den Rest mal googlen.Übrigens voraus schreibt man mit einem r (vorraus, voraus)
-
passwd <USERNAME> <PASSWORD>
vielleicht auch andersrum. einfach mal bei "passwd ---help" gucken.
mfg
-
terraner schrieb:
passwd <USERNAME> <PASSWORD>
Blödsinn, passwd nimmt ein neues Passwort nicht einfach so als CL-Argument entgegen.
-
Hallo!
Erstmal User anlegen:useradd -d /home/user1 -m user1
Dann das Passwort für user1 erstellen:passwd user1
greets ciro!
-
Hallo nochmal:-)
Hab mir dein Post nochmal genauer angeschaut.Du willst ein User mit c++ anlegen.
Kein problem...Mach es einfach so.Erstelle eine Shell-Datei mit dem obigen Code.
Dann starte das Shell-Proggi einfach in deinem C-Code mit system("progginame");
müßte eigentlich so klappen.
greets ciro
-
nimm dafür lieber man: execve(2) und co. das ist schneller!
-
Warum sollte exec*() schneller sein? Was macht denn system() ausser einem Aufruf von fork() und exec*()?
-
man: system(3) => "system - pass a command to the shell"
also erstmal wird die Shell gestartet, der wird der String übergeben (mit einer vorher angelegten pipe). Die Shell interpretiert den übergebenen string und führt dann das Programm aus.
da ist es doch schneller gleich das programm zu starten, nicht?