Lines Matching defs:pwd

39 #include <pwd.h>
140 substvar(const char * var, const struct passwd * pwd, int hlen, int pch, int nlen)
150 if (pwd != NULL) {
164 if (pwd != NULL) {
177 memmove(p, pwd->pw_dir, hlen);
184 memmove(p, pwd->pw_name, nlen);
197 setclassenvironment(login_cap_t *lc, const struct passwd * pwd, int paths)
200 int hlen = pwd ? strlen(pwd->pw_dir) : 0;
201 int nlen = pwd ? strlen(pwd->pw_name) : 0;
204 if (hlen && pwd->pw_dir[hlen-1] != '/')
211 char * np = substvar(var, pwd, hlen, pch, nlen);
242 if ((np = substvar(p, pwd, hlen, pch, nlen)) != NULL) {
393 setclassumask(login_cap_t *lc, const struct passwd *pwd)
414 pwd ? "Login '" : "",
415 pwd ? pwd->pw_name : "",
416 pwd ? "': " : "",
432 setlogincontext(login_cap_t *lc, const struct passwd *pwd, unsigned long flags)
443 setclassumask(lc, pwd);
447 setclassenvironment(lc, pwd, 1);
451 setclassenvironment(lc, pwd, 0);
463 setclasspriority(login_cap_t * const lc, struct passwd const * const pwd)
480 pwd ? "Login '" : "",
481 pwd ? pwd->pw_name : "",
482 pwd ? "': " : "",
510 pwd ? "Login '" : "",
511 pwd ? pwd->pw_name : "",
512 pwd ? "': " : "",
519 * Given a login class <lc> and a user in <pwd>, with a uid <uid>,
531 setusercontext(login_cap_t *lc, const struct passwd *pwd, uid_t uid, unsigned int flags)
537 if (pwd != NULL && (lc = login_getpwclass(pwd)) != NULL)
545 if (pwd == NULL)
550 setclasspriority(lc, pwd);
554 if (setgid(pwd->pw_gid) != 0) {
555 syslog(LOG_ERR, "setgid(%lu): %m", (u_long)pwd->pw_gid);
559 if (initgroups(pwd->pw_name, pwd->pw_gid) == -1) {
560 syslog(LOG_ERR, "initgroups(%s,%lu): %m", pwd->pw_name,
561 (u_long)pwd->pw_gid);
576 pwd->pw_name, label_string);
586 label_string, pwd->pw_name, strerror(error));
593 if ((flags & LOGIN_SETLOGIN) && setlogin(pwd->pw_name) != 0) {
594 syslog(LOG_ERR, "setlogin(%s): %m", pwd->pw_name);
611 setlogincontext(lc, pwd, flags);
623 if (geteuid() == uid && (lc = login_getuserclass(pwd)) != NULL) {
624 setlogincontext(lc, pwd, flags);
626 setclasspriority(lc, pwd);