From: Alexey Gladkov <gladkov.alexey@gmail.com> To: Andy Lutomirski <luto@kernel.org> Cc: LKML <linux-kernel@vger.kernel.org>, Kernel Hardening <kernel-hardening@lists.openwall.com>, Linux API <linux-api@vger.kernel.org>, Linux FS Devel <linux-fsdevel@vger.kernel.org>, Linux Security Module <linux-security-module@vger.kernel.org>, Akinobu Mita <akinobu.mita@gmail.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Alexey Dobriyan <adobriyan@gmail.com>, Andrew Morton <akpm@linux-foundation.org>, Daniel Micay <danielmicay@gmail.com>, Djalal Harouni <tixxdz@gmail.com>, "Dmitry V . Levin" <ldv@altlinux.org>, "Eric W . Biederman" <ebiederm@xmission.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ingo Molnar <mingo@kernel.org>, "J . Bruce Fields" <bfields@fieldses.org>, Jeff Layton <jlayton@poochiereds.net>, Jonathan Corbet <corbet@lwn.net>, Kees Cook <keescook@chromium.org>, Linus Torvalds <torvalds@linux-foundation.org>, Oleg Nesterov <oleg@redhat.com>, Solar Designer <solar@openwall.com> Subject: Re: [PATCH v8 10/11] docs: proc: add documentation for "hidepid=4" and "subset=pidfs" options and new mount behavior Date: Wed, 12 Feb 2020 17:03:39 +0100 Message-ID: <20200212160339.q6pm5zmjy5mfnvcr@comp-core-i7-2640m-0182e6> (raw) In-Reply-To: <CALCETrWOXXYy5fo+D0wVBEviyk38ACqvO5Fep_oTEY6+UrS=4g@mail.gmail.com> On Mon, Feb 10, 2020 at 10:29:23AM -0800, Andy Lutomirski wrote: > On Mon, Feb 10, 2020 at 7:06 AM Alexey Gladkov <gladkov.alexey@gmail.com> wrote: > > > > Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com> > > --- > > Documentation/filesystems/proc.txt | 53 ++++++++++++++++++++++++++++++ > > 1 file changed, 53 insertions(+) > > > > diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt > > index 99ca040e3f90..4741fd092f36 100644 > > --- a/Documentation/filesystems/proc.txt > > +++ b/Documentation/filesystems/proc.txt > > @@ -50,6 +50,8 @@ Table of Contents > > 4 Configuring procfs > > 4.1 Mount options > > > > + 5 Filesystem behavior > > + > > ------------------------------------------------------------------------------ > > Preface > > ------------------------------------------------------------------------------ > > @@ -2021,6 +2023,7 @@ The following mount options are supported: > > > > hidepid= Set /proc/<pid>/ access mode. > > gid= Set the group authorized to learn processes information. > > + subset= Show only the specified subset of procfs. > > > > hidepid=0 means classic mode - everybody may access all /proc/<pid>/ directories > > (default). > > @@ -2042,6 +2045,56 @@ information about running processes, whether some daemon runs with elevated > > privileges, whether other user runs some sensitive program, whether other users > > run any program at all, etc. > > > > +hidepid=4 means that procfs should only contain /proc/<pid>/ directories > > +that the caller can ptrace. > > I have a couple of minor nits here. > > First, perhaps we could stop using magic numbers and use words. > hidepid=ptraceable is actually comprehensible, whereas hidepid=4 > requires looking up what '4' means. Do you mean to add string aliases for the values? hidepid=0 == hidepid=default hidepid=1 == hidepid=restrict hidepid=2 == hidepid=ownonly hidepid=4 == hidepid=ptraceable Something like that ? > Second, there is PTRACE_MODE_ATTACH and PTRACE_MODE_READ. Which is it? This is PTRACE_MODE_READ. > > + > > gid= defines a group authorized to learn processes information otherwise > > prohibited by hidepid=. If you use some daemon like identd which needs to learn > > information about processes information, just add identd to this group. > > How is this better than just creating an entirely separate mount a > different hidepid and a different gid owning it? I'm not sure I understand the question. Now you cannot have two proc with different hidepid in the same pid_namespace. > In any event, > usually gid= means that this gid is the group owner of inodes. Let's > call it something different. gid_override_hidepid might be credible. > But it's also really weird -- do different groups really see different > contents when they read a directory? If you use hidepid=2,gid=wheel options then the user is not in the wheel group will see only their processes and the user in the wheel group will see whole tree. The gid= is a kind of whitelist for hidepid=1|2. -- Rgrds, legion
next prev parent reply index Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-10 15:05 [PATCH v8 00/11] proc: modernize proc to support multiple private instances Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 01/11] proc: Rename struct proc_fs_info to proc_fs_opts Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 02/11] proc: add proc_fs_info struct to store proc information Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 03/11] proc: move /proc/{self|thread-self} dentries to proc_fs_info Alexey Gladkov 2020-02-10 18:23 ` Andy Lutomirski 2020-02-12 15:00 ` Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 04/11] proc: move hide_pid, pid_gid from pid_namespace " Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 05/11] proc: add helpers to set and get proc hidepid and gid mount options Alexey Gladkov 2020-02-10 18:30 ` Andy Lutomirski 2020-02-12 14:57 ` Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 06/11] proc: support mounting procfs instances inside same pid namespace Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 07/11] proc: flush task dcache entries from all procfs instances Alexey Gladkov 2020-02-10 17:46 ` Linus Torvalds 2020-02-10 19:23 ` Al Viro 2020-02-11 1:36 ` Eric W. Biederman 2020-02-11 4:01 ` Eric W. Biederman 2020-02-12 14:49 ` Alexey Gladkov 2020-02-12 14:59 ` Eric W. Biederman 2020-02-12 17:08 ` Alexey Gladkov 2020-02-12 18:45 ` Linus Torvalds 2020-02-12 19:16 ` Eric W. Biederman 2020-02-12 19:49 ` Linus Torvalds 2020-02-12 20:03 ` Al Viro 2020-02-12 20:35 ` Linus Torvalds 2020-02-12 20:38 ` Al Viro 2020-02-12 20:41 ` Al Viro 2020-02-12 21:02 ` Linus Torvalds 2020-02-12 21:46 ` Eric W. Biederman 2020-02-13 0:48 ` Linus Torvalds 2020-02-13 4:37 ` Eric W. Biederman 2020-02-13 5:55 ` Al Viro 2020-02-13 21:30 ` Linus Torvalds 2020-02-13 22:23 ` Al Viro 2020-02-13 22:47 ` Linus Torvalds 2020-02-14 14:15 ` Eric W. Biederman 2020-02-14 3:48 ` Eric W. Biederman 2020-02-20 20:46 ` [PATCH 0/7] proc: Dentry flushing without proc_mnt Eric W. Biederman 2020-02-20 20:47 ` [PATCH 1/7] proc: Rename in proc_inode rename sysctl_inodes sibling_inodes Eric W. Biederman 2020-02-20 20:48 ` [PATCH 2/7] proc: Generalize proc_sys_prune_dcache into proc_prune_siblings_dcache Eric W. Biederman 2020-02-20 20:49 ` [PATCH 3/7] proc: Mov rcu_read_(lock|unlock) in proc_prune_siblings_dcache Eric W. Biederman 2020-02-20 22:33 ` Linus Torvalds 2020-02-20 20:49 ` [PATCH 4/7] proc: Use d_invalidate " Eric W. Biederman 2020-02-20 22:43 ` Linus Torvalds 2020-02-20 22:54 ` Al Viro 2020-02-20 23:00 ` Linus Torvalds 2020-02-20 23:03 ` Al Viro 2020-02-20 23:39 ` Eric W. Biederman 2020-02-20 20:51 ` [PATCH 5/7] proc: Clear the pieces of proc_inode that proc_evict_inode cares about Eric W. Biederman 2020-02-20 20:52 ` [PATCH 6/7] proc: Use a list of inodes to flush from proc Eric W. Biederman 2020-02-20 20:52 ` [PATCH 7/7] proc: Ensure we see the exit of each process tid exactly once Eric W. Biederman 2020-02-21 16:50 ` Oleg Nesterov 2020-02-22 15:46 ` Eric W. Biederman 2020-02-20 23:02 ` [PATCH 0/7] proc: Dentry flushing without proc_mnt Linus Torvalds 2020-02-20 23:07 ` Al Viro 2020-02-20 23:37 ` Eric W. Biederman 2020-02-24 16:25 ` [PATCH v2 0/6] " Eric W. Biederman 2020-02-24 16:26 ` [PATCH v2 1/6] proc: Rename in proc_inode rename sysctl_inodes sibling_inodes Eric W. Biederman 2020-02-24 16:27 ` [PATCH v2 2/6] proc: Generalize proc_sys_prune_dcache into proc_prune_siblings_dcache Eric W. Biederman 2020-02-24 16:27 ` [PATCH v2 3/6] proc: In proc_prune_siblings_dcache cache an aquired super block Eric W. Biederman 2020-02-24 16:28 ` [PATCH v2 4/6] proc: Use d_invalidate in proc_prune_siblings_dcache Eric W. Biederman 2020-02-24 16:28 ` [PATCH v2 5/6] proc: Clear the pieces of proc_inode that proc_evict_inode cares about Eric W. Biederman 2020-02-24 16:29 ` [PATCH v2 6/6] proc: Use a list of inodes to flush from proc Eric W. Biederman 2020-02-28 20:17 ` [PATCH 0/3] proc: Actually honor the mount options Eric W. Biederman 2020-02-28 20:18 ` [PATCH 1/3] uml: Don't consult current to find the proc_mnt in mconsole_proc Eric W. Biederman 2020-02-28 20:18 ` [PATCH 2/3] uml: Create a private mount of proc for mconsole Eric W. Biederman 2020-02-28 20:30 ` Christian Brauner 2020-02-28 21:28 ` Eric W. Biederman 2020-02-28 21:59 ` Christian Brauner 2020-02-28 20:19 ` [PATCH 3/3] proc: Remove the now unnecessary internal mount of proc Eric W. Biederman 2020-02-28 20:39 ` Christian Brauner 2020-02-28 21:40 ` Eric W. Biederman 2020-02-28 22:34 ` [PATCH 4/3] pid: Improve the comment about waiting in zap_pid_ns_processes Eric W. Biederman 2020-02-29 2:59 ` Christian Brauner 2020-02-14 3:49 ` [PATCH v8 07/11] proc: flush task dcache entries from all procfs instances Eric W. Biederman 2020-02-12 19:47 ` Al Viro 2020-02-11 22:45 ` Al Viro 2020-02-12 14:26 ` Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 08/11] proc: instantiate only pids that we can ptrace on 'hidepid=4' mount option Alexey Gladkov 2020-02-10 16:29 ` Jordan Glover 2020-02-12 14:34 ` Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 09/11] proc: add option to mount only a pids subset Alexey Gladkov 2020-02-10 15:05 ` [PATCH v8 10/11] docs: proc: add documentation for "hidepid=4" and "subset=pidfs" options and new mount behavior Alexey Gladkov 2020-02-10 18:29 ` Andy Lutomirski 2020-02-12 16:03 ` Alexey Gladkov [this message] 2020-02-10 15:05 ` [PATCH v8 11/11] proc: Move hidepid values to uapi as they are user interface to mount Alexey Gladkov
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=20200212160339.q6pm5zmjy5mfnvcr@comp-core-i7-2640m-0182e6 \ --to=gladkov.alexey@gmail.com \ --cc=adobriyan@gmail.com \ --cc=akinobu.mita@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=bfields@fieldses.org \ --cc=corbet@lwn.net \ --cc=danielmicay@gmail.com \ --cc=ebiederm@xmission.com \ --cc=gregkh@linuxfoundation.org \ --cc=jlayton@poochiereds.net \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=ldv@altlinux.org \ --cc=linux-api@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mingo@kernel.org \ --cc=oleg@redhat.com \ --cc=solar@openwall.com \ --cc=tixxdz@gmail.com \ --cc=torvalds@linux-foundation.org \ --cc=viro@zeniv.linux.org.uk \ /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
Linux-Fsdevel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-fsdevel/0 linux-fsdevel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-fsdevel linux-fsdevel/ https://lore.kernel.org/linux-fsdevel \ linux-fsdevel@vger.kernel.org public-inbox-index linux-fsdevel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-fsdevel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git