public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Bodo Eggert <7eggert@gmx.de>
To: Mike Mohr <akihana@gmail.com>, linux-kernel@vger.kernel.org
Subject: Re: group ownership of tun devices -- nonfunctional?
Date: Sun, 19 Aug 2007 18:05:26 +0200	[thread overview]
Message-ID: <E1IMnHK-00012c-VC@be1.lrz> (raw)
In-Reply-To: 8Tpwf-3Nb-1@gated-at.bofh.it

Mike Mohr <akihana@gmail.com> wrote:

(intentionally not snipping much)

> Per the post here:
> 
> http://lkml.org/lkml/2007/6/18/228
> 
> it appears that the group ownership patch has made it into .23.  I am
> using these patches, amongst which the kernel component appears to be
> identical:
> 
> http://sigxcpu.org/unsorted-patches/0001-allow-tun-ownership-by-group.patch
> http://sigxcpu.org/unsorted-patches/tunctl_gid.diff
> 
> I can create devices that are owned by my user account (tunctl -u
> `whoami` -t tap0) and it works fine.  However, if I use group
> permissions with -g it stops working.  In all cases, if I pass -g
> <group>, the interface is created correctly but it is unusable as a
> non-root user.
> 
> So my question is: am I doing something wrong?  If I am, I don't see
> it.  Assuming then that I am not doing anything wrong on my end, I
> assume then that there is something missing from the kernel patch I
> applied.  I read over it and I can't see any issues, especially
> considering that tunctl comes back without error (even with -g) and
> creates an interface.
> 
> Just wondering if this was an issue that should be looked into--


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) ||
+                     capable(CAP_NET_ADMIN)))
                        return -EPERM;

Please verify and forward to the maintainers if my guess appears to be correct.
-- 
Never stand when you can sit, never sit when you can lie down, never stay
awake when you can sleep.

Friß, Spammer: xxh@n.btxp.7eggert.dyndns.org

       reply	other threads:[~2007-08-19 16:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <8Tpwf-3Nb-1@gated-at.bofh.it>
2007-08-19 16:05 ` Bodo Eggert [this message]
2007-08-19 16:10   ` group ownership of tun devices -- nonfunctional? Rene Herman
2007-08-19 21:42     ` Bodo Eggert
2007-08-19 23:24       ` Rene Herman
2007-08-20 11:45         ` Bodo Eggert
2007-08-22 20:42       ` Jeff Dike
2007-08-23  7:13         ` Guido Guenther
2007-08-18  5:56 Mike Mohr

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=E1IMnHK-00012c-VC@be1.lrz \
    --to=7eggert@gmx.de \
    --cc=akihana@gmail.com \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox