Mit C++ User und Passwort anlegen?

26/11/2014 - 12:01 von Edzard Egberts | Report spam
Es geht um die Einrichtung eines Default Users, bei dem das Passwort
allgemein bekannt sein darf.

Bis zum verschlüsselten Passwort bin ich gekommen, aber bei crypt()
breche ich mir gerade einen ab - geht das irgendwie mit "Backticks"?

Das da ist nicht komplett:

//-
#include <iostream>
using std::cout;
using std::endl;

#include <pwd.h> // Abfrage der Passwortdatei
#include <stdlib.h> // system

int main()
{
if (!getpwnam("cloudcam"))
{ // User "cloudcam" ist nicht angelegt:
cout << "no user cloudcam";
int Ret= system("useradd -u 1010 -g users -d /home/cloudcam -s
/bin/bash -c Defaultuser cloudcam");
cout << "useradd returns " << Ret << endl;
Ret= system("passwd cloudcam ccamuser");
cout << "passwd returns " << Ret << endl;
}
else cout << "user cloudcam exists";
return(0);
}
//-

Entweder gebe ich das Password direkt bei useradd mit option -p und
unter Verwendung von crypt(3) an. Was crypt(3) angeht, scheitere ich
aber schon an der Konsole - "crypt(test, 00)" ergibt nur "Syntaxfehler
beim unerwarteten Wort `'test','". Irgend so etwas wie "useradd -p
`crypt(test, 00)`" müsste doch gehen, aber ich kriegs nicht hin!

Eine andere Möglichkeit wàre noch die Übergabe an "passwd", aber da
bekomme ich eine Eingabeaufforderung, obwohl ich das Passwort direkt vom
Programm aus setzen will.

Irgendwie stehe ich also doppelt auf dem Schlauch. Das ist
wahrscheinlich ein einfaches Problem, über das der Profi nur müde
làchelt? ;o)
 

Lesen sie die antworten

#1 Sven Geggus
26/11/2014 - 13:57 | Warnen spam
Edzard Egberts wrote:
Es geht um die Einrichtung eines Default Users, bei dem das Passwort
allgemein bekannt sein darf.



Dafür möchte man eigentlich kein C verwenden und "system" ist böse. useradd
ist zudem Linuxspezifisch.

Portabel wàre es in diesem Fall wohl am ehesten /etc/passwd direkt zu
editieren.

Bis zum verschlüsselten Passwort bin ich gekommen, aber bei crypt()
breche ich mir gerade einen ab - geht das irgendwie mit "Backticks"?



Linuxspezifisch gàbe es da chpasswd das geht über pam und verwendet dann
auch den richtigen crypt Algorithmus.

Eine Erweiterung von pam zum Anlegen von Usern wàr echt mal was.

Sven

The source code is not comprehensible
(found in bug section of man 8 telnetd on Redhat Linux)

/me is , http://sven.gegg.us/ on the Web

Ähnliche fragen