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>
next in thread | previous in thread | raw e-mail | index | archive | help
++ 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39A08FBD.5CAF9137>