Re: checking user status

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

 



On Tue, 2009-08-18 at 12:10 -0700, Larry wrote:
> On Tue, Aug 18, 2009 at 10:15 AM, Larry Ross <selinux.larry@xxxxxxxxx>
> wrote:
>         
>         On Tue, Aug 18, 2009 at 5:39 AM, Stephen Smalley
>         <sds@xxxxxxxxxxxxx> wrote:
>                 On Tue, 2009-08-18 at 08:19 -0400, Stephen Smalley
>                 wrote:
>                 > If this is another manifestation of the same
>                 problem, then the easiest
>                 > approach would be to grab the libselinux .src.rpm,
>                 patch
>                 > libselinux/src/checkAccess.c to syslog() a message
>                 whenever there is a
>                 > denial, build and install your patched libselinux,
>                 and then retry and
>                 > look for the log message.
>                 
>                 
>                 Something like this patch (un-tested, against the
>                 current upstream
>                 libselinux):
>                 
>                 diff --git a/libselinux/src/checkAccess.c
>                 b/libselinux/src/checkAccess.c
>                 index c1982c7..cae1626 100644
>                 --- a/libselinux/src/checkAccess.c
>                 +++ b/libselinux/src/checkAccess.c
>                 @@ -2,6 +2,7 @@
>                  #include <sys/types.h>
>                  #include <stdlib.h>
>                  #include <errno.h>
>                 +#include <syslog.h>
>                  #include "selinux_internal.h"
>                  #include <selinux/flask.h>
>                  #include <selinux/av_permissions.h>
>                 @@ -29,7 +30,15 @@ int
>                 selinux_check_passwd_access(access_vector_t requested)
>                 
>                                if ((retval == 0) && ((requested &
>                 avd.allowed) == requested)) {
>                                        status = 0;
>                 +               } else {
>                 +                       syslog(LOG_ERR,
>                 +                              "avc:  denied { %s }
>                 for scontext=%s "
>                 +                              "tcontext=%s
>                 tclass=passwd\n",
>                 +
>                  security_av_perm_to_string(passwd_class,
>                 +
>                 requested),
>                 +                              user_context,
>                 user_context);
>  
> Looks like this should have been:
>                         syslog(LOG_ERR,
>                               "avc:  denied { %s } for scontext=%s "
>                               "tcontext=%s tclass=passwd\n",
> 
> security_av_perm_to_string(SECCLASS_PASSWD,
>                                                requested),
>                               user_context, user_context);
>  
>  
> Where should the reference to "security_av_perm_to_string'" come from?
>  
> checkAccess.lo: In function `selinux_check_passwd_access':
> checkAccess.c:(.text+0x9d): undefined reference to
> `security_av_perm_to_string'

My patch was relative to the latest version of libselinux from
http://userspace.selinuxproject.org.  The one shipped in RHEL5 is
obviously much older and may lack that function.  The older function
would have been print_access_vector() and/or avc_dump_av(), but you'd
have to adjust them to syslog() the output.  Or you could patch, build,
and install the latest libselinux from userspace.selinuxproject.org.

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

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

  Powered by Linux