From: Miloslav Trmac <mitr@redhat.com>
To: Cody Maloney <cmaloney@theoreticalchaos.com>
Cc: util-linux@vger.kernel.org
Subject: Re: [PATCH 3/3] chsh: Add libuser support
Date: Thu, 3 Jan 2013 11:34:11 -0500 (EST) [thread overview]
Message-ID: <805019865.52854570.1357230851238.JavaMail.root@redhat.com> (raw)
In-Reply-To: <1357183321-24637-4-git-send-email-cmaloney@theoreticalchaos.com>
Hello,
----- Original Message -----
> @@ -148,9 +170,11 @@ int main(int argc, char **argv)
>
> printf(_("Changing shell for %s.\n"), pw->pw_name);
>
> +#ifndef HAVE_LIBUSER
> if(!auth_pam(uid, pw)) {
> return EXIT_FAILURE;
> }
> +#endif
>
> if (!shell) {
> shell = prompt(_("New shell"), oldshell);
> @@ -163,15 +187,72 @@ int main(int argc, char **argv)
>
> if (strcmp(oldshell, shell) == 0)
> errx(EXIT_SUCCESS, _("Shell not changed."));
> +
> +#ifdef HAVE_LIBUSER
> + ctx = lu_start(pw->pw_name, lu_user, NULL, NULL, NULL, NULL,
> &error);
AFAICS the "prompter" argument must not be NULL for LDAP to work. lu_prompt_console_quiet (not lu_prompt_console) is a good value.
> + memset(&val, 0, sizeof(val));
> + g_value_init(&val, G_TYPE_STRING);
> + g_value_set_string(&val, shell);
> +
> + lu_ent_clear(ent, LU_LOGINSHELL);
> + lu_ent_add(ent, LU_LOGINSHELL, &val);
If you don't mind depending on libuser >= 0.58, all of the above can be replaced with
> lu_ent_set_string(ent, LU_LOGINSHELL, shell);
and you can drop the "g_value_unset" calls as well.
> +#ifdef HAVE_LIBUSER
> +static int auth_lu(struct lu_context *ctx, uid_t uid, struct passwd
> *pw) {
> + if(!lu_uses_elevated_privileges(ctx)) {
> + /* Drop privileges */
"initgroups" needs to be called here to drop supplementar group memberships.
> + if (setegid(getgid()) == -1) {
> + errx(EXIT_FAILURE, _("Couldn't drop group privileges"));
> + return FALSE;
> + }
> + if (seteuid(getuid()) == -1) {
> + errx(EXIT_FAILURE, _("Couldn't drop group privileges"));
> + return FALSE;
> + }
> + return TRUE;
> + }
> +
> + return auth_pam(uid, pw);
> +}
> +#endif
next prev parent reply other threads:[~2013-01-03 16:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-13 9:12 [PATCH v2 0/4] Add support for using libuser to chsh and chfn Cody Maloney
2013-01-03 3:21 ` [PATCH 0/3] Add support for using libuser to chsh Cody Maloney
2013-01-03 3:21 ` [PATCH 1/3] chsh-chfn: Add flag for enabling/disabling libuser support Cody Maloney
2013-01-03 3:22 ` [PATCH 2/3] chsh: Move pam auth to its own function Cody Maloney
2013-01-03 3:22 ` [PATCH 3/3] chsh: Add libuser support Cody Maloney
2013-01-03 16:34 ` Miloslav Trmac [this message]
2013-01-07 11:51 ` Karel Zak
2013-01-08 6:15 ` Cody Maloney
2013-01-08 6:17 ` Cody Maloney
2013-01-08 6:18 ` Cody Maloney
2013-01-13 9:12 ` [PATCH 2/3] chsh: Move pam auth to its own function Cody Maloney
2013-01-13 9:12 ` [PATCH v2 1/4] chsh-chfn: Add flag for enabling/disabling libuser support Cody Maloney
2013-01-13 9:12 ` [PATCH v2 2/4] chsh-chfn: Move pam auth to its own function, factoring out common code Cody Maloney
2013-01-13 9:12 ` [PATCH v2 3/4] chsh: Add libuser support Cody Maloney
2013-01-14 18:16 ` Miloslav Trmac
2013-01-17 0:52 ` Cody Maloney
2013-01-28 22:01 ` Miloslav Trmac
2013-01-13 9:12 ` [PATCH v2 4/4] chfn: " Cody Maloney
[not found] ` <50F2FBBE.7000305@gmail.com>
2013-01-13 19:31 ` [PATCH v2 0/4] Add support for using libuser to chsh and chfn Cody Maloney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=805019865.52854570.1357230851238.JavaMail.root@redhat.com \
--to=mitr@redhat.com \
--cc=cmaloney@theoreticalchaos.com \
--cc=util-linux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.