Lines Matching full:user
57 const char *user;
68 /* Get user info */
69 rv = pam_get_item(pamh, PAM_USER, (const void **)&user);
70 if (rv != PAM_SUCCESS || user == NULL) {
71 PAM_VERBOSE_ERROR("Can't get user information");
74 if ((passwd = getpwnam(user)) == NULL) {
75 PAM_VERBOSE_ERROR("Can't get user information");
92 /* Open or create the user xdg directory */
93 rt_dir = openat(rt_dir_prefix, user, O_DIRECTORY | O_NOFOLLOW);
95 rt_dir = mkdirat(rt_dir_prefix, user, RUNTIME_DIR_MODE);
97 PAM_VERBOSE_ERROR("mkdir: %s/%s (%d)", RUNTIME_DIR_PREFIX, user, rt_dir);
101 rv = fchownat(rt_dir_prefix, user, passwd->pw_uid, passwd->pw_gid, 0);
103 PAM_VERBOSE_ERROR("fchownat: %s/%s (%d)", RUNTIME_DIR_PREFIX, user, rv);
104 rv = unlinkat(rt_dir_prefix, user, AT_REMOVEDIR);
106 PAM_VERBOSE_ERROR("unlinkat: %s/%s (%d)", RUNTIME_DIR_PREFIX, user, errno);
113 rv = fstatat(rt_dir_prefix, user, &sb, 0);
115 PAM_VERBOSE_ERROR("fstatat %s/%s failed (%d)", RUNTIME_DIR_PREFIX, user, errno);
121 PAM_VERBOSE_ERROR("%s/%s isn't owned by %d:%d\n", RUNTIME_DIR_PREFIX, user, passwd->pw_uid, passwd->pw_gid);
127 PAM_VERBOSE_ERROR("%s/%s have wrong mode\n", RUNTIME_DIR_PREFIX, user);
134 rv = asprintf(&runtime_dir, "XDG_RUNTIME_DIR=%s/%s", RUNTIME_DIR_PREFIX, user);
149 rv = asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i);
213 const char *user;
223 /* Get user info */
224 rv = pam_get_item(pamh, PAM_USER, (const void **)&user);
225 if (rv != PAM_SUCCESS || user == NULL) {
226 PAM_VERBOSE_ERROR("Can't get user information");
229 if ((passwd = getpwnam(user)) == NULL) {
230 PAM_VERBOSE_ERROR("Can't get user information");
243 rv = fstatat(rt_dir_prefix, user, &sb, 0);
245 PAM_VERBOSE_ERROR("fstatat %s/%s failed (%d)", RUNTIME_DIR_PREFIX, user, errno);
251 PAM_VERBOSE_ERROR("%s/%s isn't owned by %d:%d\n", RUNTIME_DIR_PREFIX, user, passwd->pw_uid, passwd->pw_gid);
257 PAM_VERBOSE_ERROR("%s/%s have wrong mode\n", RUNTIME_DIR_PREFIX, user);
262 /* Open the user xdg directory */
263 rt_dir = openat(rt_dir_prefix, user, O_DIRECTORY | O_NOFOLLOW);
265 PAM_VERBOSE_ERROR("openat: %s/%s failed (%d)\n", RUNTIME_DIR_PREFIX, user, rt_dir_prefix);
272 rv = asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i);
294 /* Final cleanup if last user session */
297 if (unlinkat(rt_dir_prefix, user, AT_REMOVEDIR) != 0) {
298 PAM_VERBOSE_ERROR("Can't cleanup %s/%s\n", runtime_dir_prefix, user);