Re: [PATCH] libsemanage: Include user name in ROLE_REMOVE audit events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 24, 2018 at 1:16 PM Vit Mojzis <vmojzis@xxxxxxxxxx> wrote:
>
> Use "previous" user name when no new user is available in
> semanage_seuser_audit. Otherwise "id=0" is logged instead of
> "acct=user_name" ("id=0" is hard coded value).
>
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1622045

Hi,
Thanks for the patch! Reviewing it took some time because I was quite
unfamiliar with the audit logs generated by semanage and was wondering
where "id=0" come from, and when I tried to use semanage login and
semanage user to get these audit logs, I got surprised by something in
semanage user documentation...

Anyway, for the record, "id=0" comes from the 0 in the call to
audit_log_semanage_message() that occurs in semanage_seuser_audit(),
and according to libaudit source code [1], id is only used when name
is NULL. So your patch looks good to me and I merged it.

Thanks,
Nicolas

[1] https://github.com/linux-audit/audit-userspace/blob/e42602b7b246ae62e7a12e9cd91f0ac37b1b1968/lib/audit_logging.c#L586

> ---
>  libsemanage/src/seusers_local.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/libsemanage/src/seusers_local.c b/libsemanage/src/seusers_local.c
> index 413ebddd..5fbb09e4 100644
> --- a/libsemanage/src/seusers_local.c
> +++ b/libsemanage/src/seusers_local.c
> @@ -71,17 +71,18 @@ static int semanage_seuser_audit(semanage_handle_t * handle,
>         const char *sep = "-";
>         int rc = -1;
>         strcpy(msg, "login");
> +       if (previous) {
> +               name = semanage_seuser_get_name(seuser);
> +               psename = semanage_seuser_get_sename(previous);
> +               pmls = semanage_seuser_get_mlsrange(previous);
> +               proles = semanage_user_roles(handle, psename);
> +       }
>         if (seuser) {
>                 name = semanage_seuser_get_name(seuser);
>                 sename = semanage_seuser_get_sename(seuser);
>                 mls = semanage_seuser_get_mlsrange(seuser);
>                 roles = semanage_user_roles(handle, sename);
>         }
> -       if (previous) {
> -               psename = semanage_seuser_get_sename(previous);
> -               pmls = semanage_seuser_get_mlsrange(previous);
> -               proles = semanage_user_roles(handle, psename);
> -       }
>         if (audit_type != AUDIT_ROLE_REMOVE) {
>                 if (sename && (!psename || strcmp(psename, sename) != 0)) {
>                         strcat(msg,sep);
> --
> 2.14.3
>
> _______________________________________________
> Selinux mailing list
> Selinux@xxxxxxxxxxxxx
> To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
> To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.

_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux