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) |
