Re: For review (v2): user_namespaces(7) man page

From: richard -rw- weinberger
Date: Thu Apr 25 2013 - 03:48:12 EST

On Wed, Mar 27, 2013 at 10:26 PM, Michael Kerrisk (man-pages)
<mtk.manpages@xxxxxxxxx> wrote:
> Inside the user namespace, the shell has user and group ID 0,
> and a full set of permitted and effective capabilities:
> bash$ cat /proc/$$/status | egrep '^[UG]id'
> Uid: 0 0 0 0
> Gid: 0 0 0 0
> bash$ cat /proc/$$/status | egrep '^Cap(Prm|Inh|Eff)'
> CapInh: 0000000000000000
> CapPrm: 0000001fffffffff
> CapEff: 0000001fffffffff

I've tried your demo program, but inside the new ns I'm automatically nobody.
As Eric said, setuid(0)/setgid(0) are missing.

Eric, maybe you can help me. How can I drop capabilities within a user
In childFunc() I did add prctl(PR_CAPBSET_DROP, CAP_NET_ADMIN) but it always
returns ENOPERM.
What that? I thought I get a completely fresh set of cap which I can modify.
I don't want that uid 0 inside the container has all caps.

And why does /proc/*/loginuid always contain 4294967295 in a new user namespace?
Writing to it also fails. (Noticed that because does not work).

Final question, is it by design that uid 0 within a namespace in not
allowed to write to


P.s: I've used 3.9-rc8 for my tests...
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at