Mein Programm soll 100 Benutzer und Passwörter hinzufügen. Allerdings habe ich Schwierigkeiten (ich werde die Ausgabe und die Eingabedatei auch posten). Was passieren soll, ist, dass ein Benutzername aus der Datei genommen wird und auch das Passwort (es ist von ihrer ID-Nummer). Das Format wäre wie Benutzer: jacob password: se-123456. Es scheint jedoch, dass der Benutzer nicht existiert. Hier ist mein Programm:Wie Benutzer hinzufügen und löschen von Eingabedatei zu Linux-System?
#include <iostream>
#include <cstdlib>
#include <string>
#include <sstream>
using namespace std;
int main()
{
cout << "Hello world." << endl;
//system("mkdir user1");
string anyCommand="", name, userpassword;
ifstream myfile ("userNames1000.txt");
if (myfile.is_open())
//code to open a file
{
while (getline (myfile,anyCommand))
{
for(int i = 0; i <= 100; i++)
{
stringstream temp;
temp << i;
name = "user";
name += temp.str();
//useradd vs. userdel
anyCommand = "useradd " + name;
cout << anyCommand << endl;
//system(anyCommand.c_str());
anyCommand = "";
userpassword = "se- " ;
//set the command, e.g., system("echo john:se-2014 |chpasswd");
anyCommand = "echo " + name + ":" + userpassword + " |chpasswd";
cout << anyCommand << endl;
system(anyCommand.c_str());
}
myfile.close();
}
}
else cout << "Unable to open file";
return 0;
}
ist hier was los ist, wenn ich das Programm ausführen:
Hello World
useradd user0
echo user0:se- | chpasswd
chpasswd: line 1: user 'user0' does not exist
chpasswd: error detected, changes ignored
useradd user1
echo user1:se- | chpasswd
chpasswd: line 1: user 'user1' does not exist
chpasswd: error detected, changes ignored
useradd user2
echo user2:se- | chpasswd
chpasswd: line 1: user 'user2' does not exist
chpasswd: error detected, changes ignored
Dann geht es weiter, bis es 100 erreicht; der gleiche Fehler geht weiter. Ich habe das Gefühl, dass ich in die richtige Richtung gehe, ich brauche nur etwas Hilfe bei dem, was ich reparieren muss.
Hier ist ein Beispiel dafür, was in der Eingabedatei steht.
Mary:20153
Lindsey:19396
Ashley:17151
Jason:16861
Wie das Protokoll sagt, Sie versuchen, das Passwort für Benutzer, die nicht existierten, zu ändern, sollten Sie [useradd] (http://linux.die.net/man/8/useradd) verwenden, wenn Sie tatsächlich neue hinzufügen möchten Benutzer –