コード例 #1
0
ファイル: nsstest.c プロジェクト: DeezNuts12/freestyledash
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();
}
コード例 #2
0
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 );
}
コード例 #3
0
ファイル: getpwent.c プロジェクト: skaramov70/ext4_ro
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;
}
コード例 #4
0
ファイル: getpwuid.c プロジェクト: tridge/junkcode
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;
}
コード例 #5
0
ファイル: init.c プロジェクト: aniwang2013/leon-rtems
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 );
}
コード例 #6
0
ファイル: encrypt.c プロジェクト: UNGLinux/Obase
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);
}