Date: Sun, 20 Aug 2000 22:11:09 -0400 From: James Housley <jim@thehousleys.net> To: Mike <mike@mikesweb.com>, freebsd-isp@FreeBSD.ORG Subject: Re: ps question Message-ID: <39A08FBD.5CAF9137@thehousleys.net> References: <4.3.2.7.2.20000820205038.00b2b648@127.0.0.1> <20000820205802.B27829@databits.net>
index | next in thread | previous in thread | raw e-mail
++ 20/08/00 20:51 -0400 - Mike:
>Quick question, how do I make 'ps' work so no matter how users run it, it
>only shows them their processes, and only root can see what -a would display?
>thanks
It shouldn't be too hard or re-write ps so that at the top while/after
processing the command line args the user-id is checked, getuid(2)?. If
it is is ZERO then nothing special. If it is not ZERO then limit.
Here is a very simple hack:
--- ps.c Thu Jul 13 14:16:49 2000
+++ ps-limited.c Sun Aug 20 22:09:53 2000
@@ -121,6 +121,7 @@
dev_t ttydev;
pid_t pid;
uid_t uid;
+ int isroot;
int all, ch, flag, i, fmt, lineno, nentries, dropgid;
int prtheader, wflag, what, xflg;
char *nlistf, *memf, *swapf, errbuf[_POSIX2_LINE_MAX];
@@ -138,6 +139,10 @@
if (argc > 1)
argv[1] = kludge_oldps_options(argv[1]);
+ if (getuid() == 0 || getgid() == 0)
+ isroot = 1;
+ else
+ isroot = 0;
all = fmt = prtheader = wflag = xflg = 0;
pid = -1;
uid = (uid_t) -1;
@@ -152,7 +157,8 @@
#endif
switch((char)ch) {
case 'a':
- all = 1;
+ if (isroot)
+ all = 1;
break;
case 'C':
rawcpu = 1;
Jim
--
"Eagles may soar, but weasels don't get sucked into jet engines"
-- Anon
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39A08FBD.5CAF9137>
