X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=pam_krb5auto.c;h=eb990d263f99b353b58f5ea3251d2fb1792b2639;hp=6f9bc731a101ade2a8f838361f99b7f1f02c5887;hb=e1427cb71004d1aebdceb48b615f2f407f450dd0;hpb=32601c6b3825f71af9db6efd7f048d3d990ae9f3 diff --git a/pam_krb5auto.c b/pam_krb5auto.c index 6f9bc73..eb990d2 100644 --- a/pam_krb5auto.c +++ b/pam_krb5auto.c @@ -32,6 +32,7 @@ struct data krb5_creds initcreds; int hascreds; uid_t uid; + gid_t gid; }; static void log(int prio, char *format, ...) @@ -126,6 +127,7 @@ static struct data *getdata(pam_handle_t *pamh, struct options *opts) return(NULL); } data->uid = pwent->pw_uid; + data->gid = pwent->pw_gid; if((ret = krb5_init_context(&data->ctx)) != 0) { log(LOG_CRIT, "could not create krb5 context: %s", error_message(ret)); freedata(data); @@ -211,6 +213,7 @@ static int savecreds(pam_handle_t *pamh, struct options *opts, struct data *data ret = PAM_SERVICE_ERR; goto out; } + chown(filename, data->uid, data->gid); pam_putenv(pamh, strdup(buf)); if(opts->debug) log(LOG_DEBUG, "successfully initialized ccache");