summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2000-08-23 21:41:25 +0000
committerps <ps@FreeBSD.org>2000-08-23 21:41:25 +0000
commit99533f6c61e9d8adefa5eb5144179e63328e0ef8 (patch)
tree012a94b06a8064a72e5e759b640ad9650532a3c5 /sys
parent079703721bb552520bac11859fca966738a9a755 (diff)
downloadFreeBSD-src-99533f6c61e9d8adefa5eb5144179e63328e0ef8.zip
FreeBSD-src-99533f6c61e9d8adefa5eb5144179e63328e0ef8.tar.gz
Add a sysctl which hides all process except those that belong to
the user asking for the process list. Reviewed by: peter
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_proc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 338657e..9fd0f45 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -55,6 +55,10 @@ MALLOC_DEFINE(M_SESSION, "session", "session header");
static MALLOC_DEFINE(M_PROC, "proc", "Proc structures");
MALLOC_DEFINE(M_SUBPROC, "subproc", "Proc sub-structures");
+static int ps_showallprocs = 1;
+SYSCTL_INT(_kern, OID_AUTO, ps_showallprocs, CTLFLAG_RW,
+ &ps_showallprocs, 0, "");
+
static void pgdelete __P((struct pgrp *));
/*
@@ -599,6 +603,11 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS)
p = LIST_FIRST(&zombproc);
for (; p != 0; p = LIST_NEXT(p, p_list)) {
/*
+ * Show a user only their processes.
+ */
+ if ((!ps_showallprocs) && p_trespass(curproc, p))
+ continue;
+ /*
* Skip embryonic processes.
*/
if (p->p_stat == SIDL)
OpenPOWER on IntegriCloud