Lines Matching refs:pwd

45 #include <pwd.h>
55 static int print_user(struct passwd * pwd, int pretty, int v7);
108 struct passwd *pwd = NULL;
299 while ((pwd = GETPWENT()) != NULL)
300 print_user(pwd, pretty, v7);
306 pwd = GETPWNAM(pw_checkname((u_char *)a_name->val, 0));
318 if (mode != M_ADD && pwd == NULL
332 if (a_name == NULL && pwd == NULL) /* Try harder */
333 pwd = GETPWUID(atoi(a_uid->val));
335 if (pwd == NULL) {
349 a_name = addarg(args, 'n', newstr(pwd->pw_name));
362 if (strncmp(pwd->pw_passwd, locked_str, sizeof(locked_str)-1) == 0)
363 errx(EX_DATAERR, "user '%s' is already locked", pwd->pw_name);
364 passtmp = malloc(strlen(pwd->pw_passwd) + sizeof(locked_str));
368 strcat(passtmp, pwd->pw_passwd);
369 pwd->pw_passwd = passtmp;
372 if (strncmp(pwd->pw_passwd, locked_str, sizeof(locked_str)-1) != 0)
373 errx(EX_DATAERR, "user '%s' is not locked", pwd->pw_name);
374 pwd->pw_passwd += sizeof(locked_str)-1;
382 uid_t uid = pwd->pw_uid;
384 if (strcmp(pwd->pw_name, "root") == 0)
392 rmopie(pwd->pw_name);
397 snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name);
399 sprintf(file, "crontab -u %s -r", pwd->pw_name);
404 * Save these for later, since contents of pwd may be
407 sprintf(file, "%s/%s", _PATH_MAILDIR, pwd->pw_name);
408 strlcpy(home, pwd->pw_dir, sizeof(home));
410 rc = delpwent(pwd);
412 err(EX_IOERR, "user '%s' does not exist", pwd->pw_name);
421 warnx("WARNING: user '%s' does not exist in NIS passwd", pwd->pw_name);
474 return print_user(pwd,
482 if (strcmp(pwd->pw_name, "root") == 0)
484 pwd->pw_name = pw_checkname((u_char *)arg->val, 0);
489 pwd->pw_uid = (uid_t) atol(arg->val);
491 if (pwd->pw_uid != 0 && strcmp(pwd->pw_name, "root") == 0)
493 if (pwd->pw_uid == 0 && strcmp(pwd->pw_name, "root") != 0)
494 warnx("WARNING: account `%s' will have a uid of 0 (superuser access!)", pwd->pw_name);
497 if ((arg = getarg(args, 'g')) != NULL && pwd->pw_uid != 0) { /* Already checked this */
499 if (newgid != pwd->pw_gid) {
501 pwd->pw_gid = newgid;
507 if (pwd->pw_change != 0) {
508 pwd->pw_change = 0;
516 if (pwd->pw_change != expire) {
517 pwd->pw_change = expire;
525 if (pwd->pw_expire != 0) {
526 pwd->pw_expire = 0;
534 if (pwd->pw_expire != expire) {
535 pwd->pw_expire = expire;
545 if (strcmp(shell, pwd->pw_shell) != 0) {
546 pwd->pw_shell = shell;
554 if (strcmp(pwd->pw_class, cnf->default_class) != 0) {
555 pwd->pw_class = cnf->default_class;
561 if (strcmp(pwd->pw_dir, arg->val))
563 if (stat(pwd->pw_dir = arg->val, &st) == -1) {
564 if (getarg(args, 'm') == NULL && strcmp(pwd->pw_dir, "/nonexistent") != 0)
565 warnx("WARNING: home `%s' does not exist", pwd->pw_dir);
567 warnx("WARNING: home `%s' is not a directory", pwd->pw_dir);
574 lc = login_getpwclass(pwd);
579 pwd->pw_passwd = pw_password(cnf, args, pwd->pw_name);
592 else if ((pwd = GETPWNAM(a_name->val)) != NULL) /* Exists */
598 pwd = &fakeuser;
599 pwd->pw_name = a_name->val;
600 pwd->pw_class = cnf->default_class ? cnf->default_class : "";
601 pwd->pw_uid = pw_uidpolicy(cnf, args);
602 pwd->pw_gid = pw_gidpolicy(cnf, args, pwd->pw_name, (gid_t) pwd->pw_uid);
603 pwd->pw_change = pw_pwdpolicy(cnf, args);
604 pwd->pw_expire = pw_exppolicy(cnf, args);
605 pwd->pw_dir = pw_homepolicy(cnf, args, pwd->pw_name);
606 pwd->pw_shell = pw_shellpolicy(cnf, args, NULL);
607 lc = login_getpwclass(pwd);
611 pwd->pw_passwd = pw_password(cnf, args, pwd->pw_name);
614 if (pwd->pw_uid == 0 && strcmp(pwd->pw_name, "root") != 0)
615 warnx("WARNING: new account `%s' has a uid of 0 (superuser access!)", pwd->pw_name);
623 if (strcmp(pwd->pw_gecos, gecos) != 0) {
624 pwd->pw_gecos = gecos;
632 if (!pwd->pw_passwd || *pwd->pw_passwd != '*') {
633 pwd->pw_passwd = "*"; /* No access */
656 pwd->pw_name);
679 pwd->pw_passwd = line;
681 lc = login_getpwclass(pwd);
686 pwd->pw_passwd = pw_pwcrypt(line);
696 return print_user(pwd,
702 rc = addpwent(pwd);
704 warnx("user '%s' already exists", pwd->pw_name);
711 rc = addnispwent(cnf->nispasswd, pwd);
713 warnx("User '%s' already exists in NIS passwd", pwd->pw_name);
720 rc = chgpwent(a_name->val, pwd);
722 warnx("user '%s' does not exist (NIS?)", pwd->pw_name);
729 rc = chgnispwent(cnf->nispasswd, a_name->val, pwd);
731 warn("User '%s' not found in NIS passwd", pwd->pw_name);
747 grp = gr_add(grp, pwd->pw_name);
762 /* go get a current version of pwd */
763 pwd = GETPWNAM(a_name->val);
764 if (pwd == NULL) {
768 pwd = GETPWNAM(a_name->val); /* refetch renamed rec */
771 if (pwd == NULL) /* can't go on without this */
774 grp = GETGRGID(pwd->pw_gid);
776 pwd->pw_name, (long) pwd->pw_uid,
778 pwd->pw_gecos, pwd->pw_dir, pwd->pw_shell);
787 sprintf(line, "%s/%s", _PATH_MAILDIR, pwd->pw_name);
790 chown(line, pwd->pw_uid, pwd->pw_gid);
799 if (!PWALTDIR() && getarg(args, 'm') != NULL && pwd->pw_dir && *pwd->pw_dir == '/' && pwd->pw_dir[1]) {
800 copymkdir(pwd->pw_dir, cnf->dotdir, cnf->homemode, pwd->pw_uid, pwd->pw_gid);
802 pwd->pw_name, (long) pwd->pw_uid, pwd->pw_dir);
815 fprintf(pfp, "From: root\n" "To: %s\n" "Subject: Welcome!\n\n", pwd->pw_name);
822 pwd->pw_name, (long) pwd->pw_uid);
834 struct passwd *pwd;
844 if ((pwd = GETPWUID(uid)) != NULL && getarg(args, 'o') == NULL)
845 errx(EX_DATAERR, "uid `%ld' has already been allocated", (long) pwd->pw_uid);
865 while ((pwd = GETPWENT()) != NULL)
866 if (pwd->pw_uid >= (uid_t) cnf->min_uid && pwd->pw_uid <= (uid_t) cnf->max_uid)
867 bm_setbit(&bm, pwd->pw_uid - cnf->min_uid);
1121 print_user(struct passwd * pwd, int pretty, int v7)
1127 pwd->pw_passwd = (pwd->pw_passwd == NULL) ? "" : "*";
1129 buf = v7 ? pw_make_v7(pwd) : pw_make(pwd);
1135 struct group *grp = GETGRGID(pwd->pw_gid);
1141 if ((p = strtok(pwd->pw_gecos, ",")) != NULL) {
1158 int l = strlen(pwd->pw_name);
1162 memmove(p, pwd->pw_name, l);
1165 if (pwd->pw_expire > (time_t)0 && (tptr = localtime(&pwd->pw_expire)) != NULL)
1167 if (pwd->pw_change > (time_t)0 && (tptr = localtime(&pwd->pw_change)) != NULL)
1175 pwd->pw_name, (long) pwd->pw_uid,
1176 grp ? grp->gr_name : "(invalid)", (long) pwd->pw_gid,
1177 uname, pwd->pw_dir, pwd->pw_class,
1178 pwd->pw_shell, office, wphone, hphone,
1187 if (strcmp(grp->gr_mem[i], pwd->pw_name)==0)