freebsd-skq/sys/fs
Robert Watson 387d2c036b o Centralize inter-process access control, introducing:
int p_can(p1, p2, operation, privused)

  which allows specification of subject process, object process,
  inter-process operation, and an optional call-by-reference privused
  flag, allowing the caller to determine if privilege was required
  for the call to succeed.  This allows jail, kern.ps_showallprocs and
  regular credential-based interaction checks to occur in one block of
  code.  Possible operations are P_CAN_SEE, P_CAN_SCHED, P_CAN_KILL,
  and P_CAN_DEBUG.  p_can currently breaks out as a wrapper to a
  series of static function checks in kern_prot, which should not
  be invoked directly.

o Commented out capabilities entries are included for some checks.

o Update most inter-process authorization to make use of p_can() instead
  of manual checks, PRISON_CHECK(), P_TRESPASS(), and
  kern.ps_showallprocs.

o Modify suser{,_xxx} to use const arguments, as it no longer modifies
  process flags due to the disabling of ASU.

o Modify some checks/errors in procfs so that ENOENT is returned instead
  of ESRCH, further improving concealment of processes that should not
  be visible to other processes.  Also introduce new access checks to
  improve hiding of processes for procfs_lookup(), procfs_getattr(),
  procfs_readdir().  Correct a bug reported by bp concerning not
  handling the CREATE case in procfs_lookup().  Remove volatile flag in
  procfs that caused apparently spurious qualifier warnigns (approved by
  bde).

o Add comment noting that ktrace() has not been updated, as its access
  control checks are different from ptrace(), whereas they should
  probably be the same.  Further discussion should happen on this topic.

Reviewed by:	bde, green, phk, freebsd-security, others
Approved by:	bde
Obtained from:	TrustedBSD Project
2000-08-30 04:49:09 +00:00
..
cd9660 o Restructure vaccess() so as to check for DAC permission to modify the 2000-08-29 14:45:49 +00:00
coda Remove 42 unneeded #include <sys/ioccom.h>. 2000-05-03 07:31:38 +00:00
deadfs Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
devfs o Restructure vaccess() so as to check for DAC permission to modify the 2000-08-29 14:45:49 +00:00
fdescfs Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
fifofs Introduce vop_stdinactive() and make it the default if no vop_inactive 2000-08-18 10:01:02 +00:00
hpfs o Restructure vaccess() so as to check for DAC permission to modify the 2000-08-29 14:45:49 +00:00
msdosfs o Restructure vaccess() so as to check for DAC permission to modify the 2000-08-29 14:45:49 +00:00
ntfs o Restructure vaccess() so as to check for DAC permission to modify the 2000-08-29 14:45:49 +00:00
nullfs Rename the loadable nullfs kernel module: null -> nullfs 2000-07-28 11:54:09 +00:00
nwfs Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
portalfs Introduce vop_stdinactive() and make it the default if no vop_inactive 2000-08-18 10:01:02 +00:00
procfs o Centralize inter-process access control, introducing: 2000-08-30 04:49:09 +00:00
specfs Fix panic when removing open device (found by bp@) 2000-08-24 15:36:55 +00:00
umapfs Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
unionfs Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00