Lines Matching defs:pwd
43 #include <pwd.h>
66 struct passwd *pwd;
76 pwd = getpwuid(uid);
77 if (pwd == NULL)
81 if ((lc = login_getclass(pwd->pw_class)) == NULL)
82 errx(EXIT_FAILURE, "%s: unknown login class", pwd->pw_class);
106 pwd->pw_gid = newgrp(*argv, pwd);
107 addgrp(pwd->pw_gid);
108 if (setgid(pwd->pw_gid) < 0)
112 addgroup(lc, *argv, pwd, getuid(), "Password:");
114 addgroup(*argv, pwd, getuid(), "Password:");
120 if (initgroups(pwd->pw_name, pwd->pw_gid) == -1)
122 if (setgid(pwd->pw_gid) == -1)
128 if (setusercontext(lc, pwd, uid, flags) == -1)
133 if (setuid(pwd->pw_uid) == -1)
137 if (*pwd->pw_shell == '\0') {
141 pwd->pw_shell = shell;
144 pwd->pw_shell = __UNCONST(_PATH_BSHELL);
147 shell = pwd->pw_shell;
155 if (chdir(pwd->pw_dir) == -1)
156 warn("%s", pwd->pw_dir);
168 if (setusercontext(lc, pwd, uid, LOGIN_SETENV | LOGIN_SETPATH) == -1)
181 (void)setenv("LOGNAME", pwd->pw_name, 1);
182 (void)setenv("USER", pwd->pw_name, 1);
183 (void)setenv("HOME", pwd->pw_dir, 1);
184 (void)setenv("SHELL", pwd->pw_shell, 1);
187 (void)strlcpy(sbuf + 1, basename(pwd->pw_shell),
192 (void)execl(pwd->pw_shell, shell, NULL);
193 err(EXIT_FAILURE, "%s", pwd->pw_shell);