lkml.org 
[lkml]   [2007]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: group ownership of tun devices -- nonfunctional?
    On 08/19/2007 11:42 PM, Bodo Eggert wrote:

    > On Sun, 19 Aug 2007, Rene Herman wrote:
    >
    >> On 08/19/2007 06:05 PM, Bodo Eggert wrote:
    >>
    >>> IMHO the check is broken:
    >>>
    >>> + if (((tun->owner != -1 &&
    >>> + current->euid != tun->owner) ||
    >>> + (tun->group != -1 &&
    >>> + current->egid != tun->group)) &&
    >>> + !capable(CAP_NET_ADMIN))
    >>> return -EPERM;
    >>>
    >>> It should be something like:
    >>>
    >>> + if (!((tun->owner == tun->owner) ||
    >>> + (tun->group == tun->group) ||
    >> ???
    >
    > Argh, I edited asuming the same order of variables. Substitute
    > current->e{uid,gid} for one of the sides.

    Okay. Just had to ask. That looked so odd...

    >>> + capable(CAP_NET_ADMIN)))
    >>> return -EPERM;
    >
    > The intended semantics is If the user is not
    > * the allowed user
    > or
    > * member of the allowed group
    > or
    > * cabable of CAP_NET_ADMIN
    > then error out. I'm asuming

    There is a short description of the desired semantics in the link that was
    posted:

    http://lkml.org/lkml/2007/6/18/228

    ===
    The user now is allowed to send packages if either his euid or his egid
    matches the one specified via tunctl (via -u or -g respecitvely). If both
    gid and uid are set via tunctl, both have to match.
    ===

    Paraphrasing the original code above, it's saying:

    if ((owner_is_set && does_not_match) || (group_is_set && does_not_match))
    bugger_off_unless(CAP_NET_ADMIN);

    or reverting the logic:

    if ((owner_is_unset || does_match) && (group_is_unset || does_match))
    good_to_go();

    which probably matches the intention -- we're good to go only if the
    credentials that are set also match.

    Rene.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-20 02:33    [W:0.025 / U:3.448 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site