#!/bin/sh
# DF-2706 run: A/B/C contrast as unprivileged user.
# Prereq (as root):  /tmp/snoopmark running as uid 0, security.ps_showallprocs=0
#   cp /bin/sleep /tmp/snoopmark && chmod 700 /tmp/snoopmark
#   nohup /tmp/snoopmark 600 &
#   ROOTPID=$(pgrep -f snoopmark)
#   sysctl security.ps_showallprocs=0
set -e
[ -x /tmp/pidsnoop ] || cc -O -o /tmp/pidsnoop /tmp/pidsnoop.c
ROOTPID="${1:-$(ssh_root_pgrep_placeholder)}"
echo "=== [A] kern.proc.pid.$ROOTPID (uid-0 process) as unpriv user ==="
/tmp/pidsnoop "$ROOTPID"
echo
echo "=== [B] kern.proc.all as unpriv user ==="
/tmp/pidsnoop -all
echo
echo "=== [C] kern.proc.uid.0 as unpriv user ==="
/tmp/pidsnoop -uid 0
echo
echo "SUCCESS CRITERION: [A] shows >=1 record with uid=0 and comm of the"
echo "marker while [B] shows only the caller's own procs and [C] shows 0."
