All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/4] proc: support multiple separate proc instances per pidnamespace
@ 2017-03-30 15:22 ` Djalal Harouni
  0 siblings, 0 replies; 46+ messages in thread
From: Djalal Harouni @ 2017-03-30 15:22 UTC (permalink / raw)
  To: Linux Kernel Mailing List, Andy Lutomirski, Alexey Gladkov,
	Al Viro, ebiederm, Andrew Morton
  Cc: Linux API, kirill, Oleg Nesterov, Pavel Emelyanov,
	James Bottomley, Kees Cook, Dongsu Park, Ingo Molnar,
	Michal Hocko, Alexey Dobriyan, kernel-hardening,
	linux-security-module, Djalal Harouni

Hi,

This RFC can be applied on top of Linus' tree 89970a04d7

This RFC implements support for multiple separate proc instances inside
the same pid namespace. This allows to solve lot of problems that
today's use case face.

Historically procfs was tied to pid namespaces, and mount options were
propagated to all other procfs instances in the same pid namespace. This
solved several use cases in that time. However today we face new
problems, there are mutliple container implementations there, some of
them want to hide pid entries, others want to hide non-pid entries,
others want to have sysctlfs, others want to share pid namespace with
private procfs mounts. All these with current implementation won't work
since all options will be propagated to all procfs mounts.

This series allow to have new instances of procfs per pid namespace where
each instance can have its own mount option inside the same pid namespace.
This was also suggested by Andy Lutomirski.


Now:
$ sudo mount -t proc -o unshare,hidepid=2 none /test

The option 'unshare' will allow to mount a new instance of procfs inside
the same pid namespace.

Before:
$ stat /proc/slabinfo

  File: ‘/proc/slabinfo’
  Size: 0         	Blocks: 0          IO Block: 1024   regular empty file
Device: 4h/4d	Inode: 4026532046  Links: 1

$ stat /test3/slabinfo

  File: ‘/test3/slabinfo’
  Size: 0         	Blocks: 0          IO Block: 1024   regular empty file
Device: 4h/4d	Inode: 4026532046  Links: 1


After:
$ stat /proc/slabinfo

  File: ‘/proc/slabinfo’
  Size: 0         	Blocks: 0          IO Block: 1024   regular empty file
Device: 4h/4d	Inode: 4026532046  Links: 1

$ stat /test3/slabinfo

  File: ‘/test3/slabinfo’
  Size: 0         	Blocks: 0          IO Block: 1024   regular empty file
Device: 31h/49d	Inode: 4026532046  Links: 1


Any better name for the option 'unshare' ? suggestions ?

I was going to use 'version=2' but then this may sound more like a
proc2 fs which currently impossible to implement since it will share
locks with the old proc.


Al, Eric any comments please ?

[Patch RFC 4/4] proc: support flushing dcache entries of a task on multiple procfs mounts
Is maybe not needed, and I have to test it further.

Thanks!

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2017-03-31 11:45 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-30 15:22 [PATCH RFC 0/4] proc: support multiple separate proc instances per pidnamespace Djalal Harouni
2017-03-30 15:22 ` [kernel-hardening] " Djalal Harouni
2017-03-30 15:22 ` Djalal Harouni
2017-03-30 15:22 ` Djalal Harouni
2017-03-30 15:22 ` [PATCH RFC 1/4] proc: add proc_fs_info struct to store proc options Djalal Harouni
2017-03-30 15:22   ` [kernel-hardening] " Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 19:10   ` Andy Lutomirski
2017-03-30 19:10     ` [kernel-hardening] " Andy Lutomirski
2017-03-30 19:10     ` Andy Lutomirski
2017-03-30 19:10     ` Andy Lutomirski
2017-03-31 10:49     ` Djalal Harouni
2017-03-31 10:49       ` [kernel-hardening] " Djalal Harouni
2017-03-31 10:49       ` Djalal Harouni
2017-03-31 10:49       ` Djalal Harouni
2017-03-30 15:22 ` [PATCH RFC 2/4] proc: add helpers to set/get hidepid and gid mount options Djalal Harouni
2017-03-30 15:22   ` [kernel-hardening] " Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 15:22 ` [PATCH RFC 3/4] proc: support mounting new procfs instances inside same pid namespace Djalal Harouni
2017-03-30 15:22   ` [kernel-hardening] " Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 19:10   ` Andy Lutomirski
2017-03-30 19:10     ` [kernel-hardening] " Andy Lutomirski
2017-03-30 19:10     ` Andy Lutomirski
2017-03-30 19:10     ` Andy Lutomirski
2017-03-30 15:22 ` [PATCH RFC 4/4] proc: support flushing dcache entries of a task on multiple procfs mounts Djalal Harouni
2017-03-30 15:22   ` [kernel-hardening] " Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 15:22   ` Djalal Harouni
2017-03-30 19:12 ` [PATCH RFC 0/4] proc: support multiple separate proc instances per pidnamespace Andy Lutomirski
2017-03-30 19:12   ` [kernel-hardening] " Andy Lutomirski
2017-03-30 19:12   ` Andy Lutomirski
2017-03-30 19:12   ` Andy Lutomirski
2017-03-31 11:45   ` Djalal Harouni
2017-03-31 11:45     ` [kernel-hardening] " Djalal Harouni
2017-03-31 11:45     ` Djalal Harouni
2017-03-31 11:45     ` Djalal Harouni
2017-03-30 22:16 ` Alexey Gladkov
2017-03-30 22:16   ` [kernel-hardening] " Alexey Gladkov
2017-03-30 22:16   ` Alexey Gladkov
2017-03-31 11:26   ` Djalal Harouni
2017-03-31 11:26     ` [kernel-hardening] " Djalal Harouni
2017-03-31 11:26     ` Djalal Harouni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.