Re: [PATCH] setpriv: support setting unnamed capabilities

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

 



On Wed, Jul 19, 2017 at 08:18:55AM +0200, Bernhard Voelker wrote:
> On 07/17/2017 11:14 PM, Patrick Steinhardt wrote:
> > When setting capabilities, we accept human readable names like for
> > example `sys_rawio` or `net_admin`. To do so the translation between the
> > capability name and its in-kernel index, we rely on the function
> > `capng_name_to_capability`. When the function does not know the named
> > capability, it will return an error value and we abort setting the
> > capability.
> > 
> > This relies upon the ability of libcap to know all capabilities inside
> > of the kernel. But actually, it is possible that new capabilities are
> > introduced inside of the Linux kernel which are not recognized yet by
> > the library. When dumping these unknown capabilities, libcap will simply
> > return a string like "cap_38", that is it will append the capability's
> > in-kernel index to the prefix "cap_". This may lead a user to also think
> > that "cap_38" may be passed to the switches "--inh-caps" or
> > "--ambient-caps", which is unfortunately not the case.
> > 
> > We can do better here by instead accepting strings in the form of
> > "cap_N". To do so, we can simply rely on the fact that capability
> > indices are steadily increasing and that the highest index known to the
> > kernel is stored inside of the kernel's procfs, made readily available
> > by our function `real_cap_last_cap()`. So in case libcap does not know a
> > capability name, we can simply parse the string and, if it is in the
> > correct format, check whether the detected index is between 0 and the
> > highest capability index. If so, we can treat it as a valid capability
> > string and apply it.
> 
> Thanks - would you mind to also add a sentence to the man page?
> 
> Thanks & have a nice day,
> Berny

Sure, can do this. I'll send a follow-up patch tomorrow as the
patch has already been applied.

Patrick

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux