Lines Matching refs:pwd

39 #include <pwd.h>
139 substvar(const char * var, const struct passwd * pwd, int hlen, int pch, int nlen)
149 if (pwd != NULL) {
163 if (pwd != NULL) {
176 memmove(p, pwd->pw_dir, hlen);
183 memmove(p, pwd->pw_name, nlen);
196 setclassenvironment(login_cap_t *lc, const struct passwd * pwd, int paths)
199 int hlen = pwd ? strlen(pwd->pw_dir) : 0;
200 int nlen = pwd ? strlen(pwd->pw_name) : 0;
203 if (hlen && pwd->pw_dir[hlen-1] != '/')
210 char * np = substvar(var, pwd, hlen, pch, nlen);
241 if ((np = substvar(p, pwd, hlen, pch, nlen)) != NULL) {
392 setclassumask(login_cap_t *lc, const struct passwd *pwd)
413 pwd ? "Login '" : "",
414 pwd ? pwd->pw_name : "",
415 pwd ? "': " : "",
431 setlogincontext(login_cap_t *lc, const struct passwd *pwd, unsigned long flags)
442 setclassumask(lc, pwd);
446 setclassenvironment(lc, pwd, 1);
450 setclassenvironment(lc, pwd, 0);
462 setclasspriority(login_cap_t * const lc, struct passwd const * const pwd)
479 pwd ? "Login '" : "",
480 pwd ? pwd->pw_name : "",
481 pwd ? "': " : "",
509 pwd ? "Login '" : "",
510 pwd ? pwd->pw_name : "",
511 pwd ? "': " : "",
518 * Given a login class <lc> and a user in <pwd>, with a uid <uid>,
530 setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned int flags)
536 if (pwd != NULL && (lc = login_getpwclass(pwd)) != NULL)
544 if (pwd == NULL)
549 setclasspriority(lc, pwd);
553 if (setgid(pwd->pw_gid) != 0) {
554 syslog(LOG_ERR, "setgid(%lu): %m", (u_long)pwd->pw_gid);
558 if (initgroups(pwd->pw_name, pwd->pw_gid) == -1) {
559 syslog(LOG_ERR, "initgroups(%s,%lu): %m", pwd->pw_name,
560 (u_long)pwd->pw_gid);
575 pwd->pw_name, label_string);
585 label_string, pwd->pw_name, strerror(error));
592 if ((flags & LOGIN_SETLOGIN) && setlogin(pwd->pw_name) != 0) {
593 syslog(LOG_ERR, "setlogin(%s): %m", pwd->pw_name);
610 setlogincontext(lc, pwd, flags);
622 if (geteuid() == uid && (lc = login_getuserclass(pwd)) != NULL) {
623 setlogincontext(lc, pwd, flags);
625 setclasspriority(lc, pwd);