diff options
author | Ian Wienand <ianw@vmware.com> | 2010-12-20 11:33:38 -0800 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-12-27 02:13:06 +0100 |
commit | 260fb551ff4ba0cb8a5fdff848bce10588611231 (patch) | |
tree | 268ba74ab461484ee8123ef262ebf21976a01af9 | |
parent | 1f937d64686d9a71c9325f2e9b23eba235a9255e (diff) | |
download | busybox-w32-260fb551ff4ba0cb8a5fdff848bce10588611231.tar.gz busybox-w32-260fb551ff4ba0cb8a5fdff848bce10588611231.tar.bz2 busybox-w32-260fb551ff4ba0cb8a5fdff848bce10588611231.zip |
login: apply PAM environment
login should apply the PAM environment modified by plugins
such as pam_env. Other 'login's do a similar thing.
I tested this by setting some env variables with pam_env which were
correctly applied.
Signed-off-by: Ian Wienand <ianw@vmware.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | loginutils/login.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/loginutils/login.c b/loginutils/login.c index 9a624df9a..c285b45a1 100644 --- a/loginutils/login.c +++ b/loginutils/login.c | |||
@@ -217,6 +217,7 @@ int login_main(int argc UNUSED_PARAM, char **argv) | |||
217 | const char *failed_msg; | 217 | const char *failed_msg; |
218 | struct passwd pwdstruct; | 218 | struct passwd pwdstruct; |
219 | char pwdbuf[256]; | 219 | char pwdbuf[256]; |
220 | char **pamenv; | ||
220 | #endif | 221 | #endif |
221 | 222 | ||
222 | username[0] = '\0'; | 223 | username[0] = '\0'; |
@@ -400,6 +401,16 @@ int login_main(int argc UNUSED_PARAM, char **argv) | |||
400 | (!(opt & LOGIN_OPT_p) * SETUP_ENV_CLEARENV) + SETUP_ENV_CHANGEENV, | 401 | (!(opt & LOGIN_OPT_p) * SETUP_ENV_CLEARENV) + SETUP_ENV_CHANGEENV, |
401 | pw); | 402 | pw); |
402 | 403 | ||
404 | #if ENABLE_PAM | ||
405 | /* Modules such as pam_env will setup the PAM environment, | ||
406 | * which should be copied into the new environment. */ | ||
407 | pamenv = pam_getenvlist(pamh); | ||
408 | if (pamenv) while (*pamenv) { | ||
409 | putenv(*pamenv); | ||
410 | pamenv++; | ||
411 | } | ||
412 | #endif | ||
413 | |||
403 | motd(); | 414 | motd(); |
404 | 415 | ||
405 | if (pw->pw_uid == 0) | 416 | if (pw->pw_uid == 0) |