"define"d policies and object order

Submit your RBAC policies or suggest policy improvements

"define"d policies and object order

Postby Hue-Bond » Tue Mar 07, 2006 7:07 pm

This works well:

Code: Select all
subject /bin/bash:/usr/bin/setterm hpdAo {
user_transition_allow hue
group_transition_allow hue

        /                               h
        /dev                            h
        /dev/urandom                    r   
        /etc                            h
        /etc/ld.so.cache                r
        /etc/terminfo/l/linux           r
        /home                           h
        /home/hue
        /home/hue/*                     h
        /lib                            h
        /lib/ld-2.3.6.so                x
        /lib/libc-2.3.6.so              rx
        /lib/libdl-2.3.6.so             rx
        /lib/libncurses.so.5.5          rx
        /usr                            h
        /usr/lib/gconv/gconv-modules.cache      r
        /usr/lib/locale   
        /usr/lib/locale/en_US.utf8      r
        /usr/share/locale               r
        -CAP_ALL
        bind    disabled 
        connect disabled
}


But this gives an error:

Code: Select all
# exactly the same
define usr_bin_setterm {
        /                               h
        /dev                            h
        /dev/urandom                    r
        /etc                            h
        /etc/ld.so.cache                r
        /etc/terminfo/l/linux           r
        /home                           h
        /home/hue
        /home/hue/*                     h
        /lib                            h
        /lib/ld-2.3.6.so                x
        /lib/libc-2.3.6.so              rx
        /lib/libdl-2.3.6.so             rx 
        /lib/libncurses.so.5.5          rx
        /usr                            h
        /usr/lib/gconv/gconv-modules.cache      r
        /usr/lib/locale
        /usr/lib/locale/en_US.utf8      r
        /usr/share/locale               r
}

subject /bin/bash:/usr/bin/setterm hpdAo {
user_transition_allow hue
group_transition_allow hue

        $usr_bin_setterm
        -CAP_ALL
        bind    disabled
        connect disabled
}

# gradm -E
Error on line 802 of /etc/grsec/policy.d/hue:
Object /home/hue needs to be specified before globbed object /home/hue/*


Workaround:

Code: Select all
define usr_bin_setterm {
        /                               h
        /dev                            h
        /dev/urandom                    r
        /etc                            h
        /etc/ld.so.cache                r
        /etc/terminfo/l/linux           r
        /home                           h
#       /home/hue
        /home/hue/*                     h
        /lib                            h
        /lib/ld-2.3.6.so                x
        /lib/libc-2.3.6.so              rx
        /lib/libdl-2.3.6.so             rx 
        /lib/libncurses.so.5.5          rx
        /usr                            h
        /usr/lib/gconv/gconv-modules.cache      r
        /usr/lib/locale
        /usr/lib/locale/en_US.utf8      r
        /usr/share/locale               r
}

subject /bin/bash:/usr/bin/setterm hpdAo {
user_transition_allow hue
group_transition_allow hue

## move this line from the above definition here to make gradm happy
        /home/hue
        $usr_bin_setterm
        -CAP_ALL
        bind    disabled
        connect disabled
}
Hue-Bond
 
Posts: 34
Joined: Mon Dec 13, 2004 4:31 pm

Postby spender » Sun Mar 12, 2006 4:13 pm

I think the define stuff is storing the objects in reverse order. If you change the order of them in the define, does it work properly?

-Brad
spender
 
Posts: 2185
Joined: Wed Feb 20, 2002 8:00 pm

Postby Hue-Bond » Sun Mar 12, 2006 5:46 pm

spender wrote:If you change the order of them in the define, does it work properly?


Code: Select all
define usr_bin_setterm {
        /usr/share/locale               r
        /usr/lib/locale/en_US.utf8      r
        /usr/lib/locale
        /usr/lib/gconv/gconv-modules.cache      r
        /usr                            h
        /lib/libncurses.so.5.5          rx
        /lib/libdl-2.3.6.so             rx
        /lib/libc-2.3.6.so              rx
        /lib/ld-2.3.6.so                x
        /lib                            h
        /home/hue/*                     h 
        /home/hue
        /home                           h
        /etc/terminfo/l/linux           r
        /etc/ld.so.cache                r
        /etc                            h
        /dev/urandom                    r
        /dev                            h
        /                               h
}


Code: Select all
subject /bin/bash:/usr/bin/setterm hpdAo {
user_transition_allow hue
group_transition_allow hue

        $usr_bin_setterm
        -CAP_ALL
        bind    disabled   
        connect disabled
}


Now I can enable RBAC without errors. I tried this too:

Code: Select all
define usr_bin_setterm {
        /usr/share/locale               r
        /usr/lib/locale/*               r
        /usr/lib/locale
        /usr/lib/gconv/gconv-modules.cache      r
        /usr                            h
        /lib/lib*                       rx
        /lib/ld-2.3.6.so                x
        /lib                            h
        /home/hue/*                     h
        /home/hue
        /home                           h 
        /etc/terminfo/l/linux           r
        /etc/ld.so.cache                r
        /etc                            h 
        /dev/urandom                    r
        /dev                            h
        /                               h
}


And same good result.
Hue-Bond
 
Posts: 34
Joined: Mon Dec 13, 2004 4:31 pm

Postby spender » Mon Mar 13, 2006 7:08 pm

It should be fixed in CVS now. Let me know if the problem persists.

-Brad
spender
 
Posts: 2185
Joined: Wed Feb 20, 2002 8:00 pm


Return to RBAC policy development