如何将用户给定的输入(字符串)与c中的ubuntu中的/ etc / passwd文件进行比较

时间:2010-08-26 16:12:24

标签: c

我想将用户给定的输入(即用户名)与ubuntu中/ etc / passwd文件中已存储的用户名进行比较。我正在尝试C.请帮助

2 个答案:

答案 0 :(得分:4)

#include <pwd.h>
...

struct passwd *e = getpwnam(userName);
if(e == NULL) {
   //user not found
} else {
  //found the user
}

查看文档herehere

(如果你真的想要对用户进行身份验证,那么还需要做更多的工作)

答案 1 :(得分:0)

此代码打印/ etc / passwd中的所有用户名。

#include <stdio.h>

int main()
{  
        char buffer[128];
        char* username;
        FILE* passwdFile;

        passwdFile = fopen("/etc/passwd", "r");
        while (fgets(buffer, 128, passwdFile) != NULL)
        {
                username = strtok(buffer, ":");
                printf("username: %s\n", username);
        }
        fclose(passwdFile);
        return 0;
}

修改以将username与您的输入进行比较。