From 200ccab9283410f1ddf65cce7d0f1b77dc5dcbcf Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Aug 2012 14:39:57 -0500 Subject: Setting the home directory to the user's directory --- src/pam-freerdp.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/pam-freerdp.c') diff --git a/src/pam-freerdp.c b/src/pam-freerdp.c index d8c6703..7bd2657 100644 --- a/src/pam-freerdp.c +++ b/src/pam-freerdp.c @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include @@ -108,20 +110,24 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags, int argc, const char **argv) case 0: { /* child */ dup2(stdinpipe[0], 0); - char * args[8]; + char * args[7]; args[0] = XFREERDP; args[1] = "--plugin"; args[2] = "rdpsnd.so"; args[3] = "--no-nla"; args[4] = "-f"; - args[5] = "--ignore-certificate"; /* TODO: Change when we set the home directory properly */ - args[6] = "--from-stdin"; - - args[7] = NULL; + args[5] = "--from-stdin"; + args[6] = NULL; + + struct passwd * pwdent = getpwnam(username); + if (pwdent == NULL) { + _exit(-1); + } + + setenv("HOME", pwdent->pw_dir, 1); /* TODO: Drop privs */ - /* TODO: Home directory environment to user's home */ execvp(args[0], args); _exit(EXIT_FAILURE); break; -- cgit v1.2.3