static void nss_test_users(void) { struct passwd *pwd; nss_setpwent(); /* loop over all users */ while ((pwd = nss_getpwent())) { printf("Testing user %s\n", pwd->pw_name); printf("getpwent: "); print_passwd(pwd); pwd = nss_getpwuid(pwd->pw_uid); if (!pwd) { total_errors++; printf("ERROR: can't getpwuid\n"); continue; } printf("getpwuid: "); print_passwd(pwd); pwd = nss_getpwnam(pwd->pw_name); if (!pwd) { total_errors++; printf("ERROR: can't getpwnam\n"); continue; } printf("getpwnam: "); print_passwd(pwd); printf("initgroups: "); nss_test_initgroups(pwd->pw_name, pwd->pw_gid); printf("\n"); } nss_endpwent(); }
rtems_task Init( rtems_task_argument ignored ) { struct passwd *pw; struct group *gr; puts( "*** PASSWORD/GROUP TEST ***" ); /* getpwnam */ puts( "Init - getpwnam(\"root\") -- OK" ); pw = getpwnam("root"); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwnam(\"rtems\") -- OK" ); pw = getpwnam("rtems"); rtems_test_assert( pw ); print_passwd( pw ); /* getgrnam */ puts( "Init - getgrnam(\"root\") -- OK" ); gr = getgrnam("root"); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrnam(\"rtems\") -- OK" ); gr = getgrnam("rtems"); rtems_test_assert( gr ); print_group( gr ); puts( "*** END OF PASSWORD/GROUP TEST ***" ); rtems_test_exit( 0 ); }
int main(int argc, char **argv) { struct passwd *pw; int err; pw = getpwnam("root"); print_passwd(pw); if (!pw) err++; pw = getpwnam("fsgqa"); print_passwd(pw); if (!pw) err++; pw = getpwnam("foo"); print_passwd(pw); if (pw) err++; pw = getpwuid(0); print_passwd(pw); if (!pw) err++; pw = getpwuid(31415); print_passwd(pw); if (!pw) err++; pw = getpwuid(42); print_passwd(pw); if (pw) err++; if (err) printf("Failed!\n"); else printf("Succeeded!\n"); return err; }
int main(int argc, char *argv[]) { struct passwd *pwd; pwd = getpwuid(atoi(argv[1])); if (!pwd) { printf("Failed to fetch pwd\n"); } else { print_passwd(pwd); } return 0; }
rtems_task Init( rtems_task_argument ignored ) { struct passwd *pw; struct group *gr; puts( "*** PASSWORD/GROUP TEST - 01 ***" ); /* getpwent */ puts( "Init - getpwent() -- OK, result should be NULL" ); pw = getpwent(); rtems_test_assert( !pw ); /* getgrent */ puts( "Init - getgrent() -- OK, result should be NULL" ); gr = getgrent(); rtems_test_assert( !gr ); /* setpwent */ puts( "Init - setpwent() -- OK" ); setpwent(); /* setgrent */ puts( "Init - setgrent() -- OK" ); setgrent(); /* getpwent */ puts( "Init - getpwent() (1) -- OK" ); pw = getpwent(); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwent() (2) -- OK" ); pw = getpwent(); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwent() (3) -- OK" ); pw = getpwent(); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwent() (4) -- result should be NULL" ); pw = getpwent(); rtems_test_assert( !pw ); /* getgrent */ puts( "Init - getgrent() (1) -- OK" ); gr = getgrent(); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrent() (2) -- OK" ); gr = getgrent(); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrent() (3) -- OK" ); gr = getgrent(); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrent() (4) -- result should be NULL" ); gr = getgrent(); rtems_test_assert( !gr ); /* getpwnam */ puts( "Init - getpwnam(\"root\") -- OK" ); pw = getpwnam( "root" ); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwnam(\"rtems\") -- OK" ); pw = getpwnam( "rtems" ); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwnam(\"suser\") -- result should be NULL" ); pw = getpwnam( "suser" ); rtems_test_assert( !pw ); /* getpwuid */ puts( "Init - getpwuid(0) -- OK" ); pw = getpwuid( 0 ); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwuid(1) -- OK" ); pw = getpwuid( 1 ); rtems_test_assert( pw ); print_passwd( pw ); puts( "Init - getpwuid(4) -- result should be NULL" ); pw = getpwuid( 4 ); rtems_test_assert( !pw ); /* getgrnam */ puts( "Init - getgrnam(\"root\") -- OK" ); gr = getgrnam("root"); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrnam(\"rtems\") -- OK" ); gr = getgrnam("rtems"); rtems_test_assert( gr ); print_group( gr ); /* getgrgid */ puts( "Init - getgrgid(0) -- OK" ); gr = getgrgid(0); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrgid(1) -- OK" ); gr = getgrgid(1); rtems_test_assert( gr ); print_group( gr ); puts( "Init - getgrgid(4) -- result should be NULL"); gr = getgrgid( 4 ); rtems_test_assert( !gr ); /* endpwent */ puts( "Init - endpwent() -- OK" ); endpwent(); /* endgrent */ puts( "Init - endgrent() -- OK" ); endgrent(); puts( "*** END OF PASSWORD/GROUP TEST - 01 ***" ); rtems_test_exit( 0 ); }
int main(int argc, char **argv) { int opt; int operation = -1; int prompt = 0; int rounds; void *extra = NULL; /* Store salt or number of rounds */ const char *errstr; if (strcmp(__progname, "makekey") == 0) operation = DO_MAKEKEY; while ((opt = getopt(argc, argv, "kmps:b:c:")) != -1) { switch (opt) { case 'k': /* Stdin/Stdout Unix crypt */ if (operation != -1 || prompt) usage(); operation = DO_MAKEKEY; break; case 'm': /* MD5 password hash */ if (operation != -1) usage(); operation = DO_MD5; break; case 'p': if (operation == DO_MAKEKEY) usage(); prompt = 1; break; case 's': /* Unix crypt (DES) */ if (operation != -1 || optarg[0] == '$') usage(); operation = DO_DES; extra = optarg; break; case 'b': /* Blowfish password hash */ if (operation != -1) usage(); operation = DO_BLF; rounds = strtonum(optarg, 1, INT_MAX, &errstr); if (errstr != NULL) errx(1, "%s: %s", errstr, optarg); extra = &rounds; break; case 'c': /* user login class */ extra = optarg; operation = -1; break; default: usage(); } } if (((argc - optind) < 1) || operation == DO_MAKEKEY) { char line[BUFSIZ], *string; if (prompt) { if ((string = getpass("Enter string: ")) == NULL) err(1, "getpass"); print_passwd(string, operation, extra); (void)fputc('\n', stdout); } else { size_t len; /* Encrypt stdin to stdout. */ while (!feof(stdin) && (fgets(line, sizeof(line), stdin) != NULL)) { len = strlen(line); if (len == 0 || line[0] == '\n') continue; if (line[len - 1] == '\n') line[len - 1] = '\0'; print_passwd(line, operation, extra); if (operation == DO_MAKEKEY) { fflush(stdout); break; } (void)fputc('\n', stdout); } } } else { char *string; /* can't combine -p with a supplied string */ if (prompt) usage(); /* Perhaps it isn't worth worrying about, but... */ if ((string = strdup(argv[optind])) == NULL) err(1, NULL); /* Wipe the argument. */ memset(argv[optind], 0, strlen(argv[optind])); print_passwd(string, operation, extra); (void)fputc('\n', stdout); /* Wipe our copy, before we free it. */ memset(string, 0, strlen(string)); free(string); } exit(0); }