如何在输入文件中添加和删除用户到linux系统?

时间:2016-04-25 21:45:20

标签: c++ linux inputstream

我的程序应该添加100个用户和密码。但是我也有困难(我也会发布输出和输入文件)。应该发生的是从文件中获取用户名并且密码也是如此(它们的ID号来自)。格式类似于用户:jacob密码:se-123456。但是,似乎用户不存在。这是我的计划:

#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;


}

这是我运行程序时发生的事情:

    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

然后它继续直到达到100;同样的错误继续下去。我有一种感觉,我正朝着正确的方向前进,我只需要一些帮助来解决我需要解决的问题。

以下是输入文件中的内容示例。

Mary:20153

Lindsey:19396

Ashley:17151

Jason:16861

1 个答案:

答案 0 :(得分:0)

您注释了一条重要的路线(如A.Flaischer的评论所述):

anyCommand = "useradd " + name;

cout << anyCommand << endl;
//system(anyCommand.c_str());

另一方面,你的程序似乎没有按照你的想法去做。它适用于user0到user99,但是你提到了示例输入文件。此输入文件将不会被正确处理。

由于C ++可能是您最喜欢的语言,因此shell脚本将是完成任务的最简单方法。