DragonFly BSD
DragonFly kernel List (threaded) for 2003-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Anybody working on removing sendmail from base?


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 29 Sep 2003 14:18:43 -0700 (PDT)

    I think we should narrow the discussion some and talk about variant
    symlinks a bit more.  The issue is where to store the variables
    and how to deal with security (aka suid an sgid programs).

    Consider that, right now, we are using shell and program wrappers
    for lots of things.  These wrappers really obfuscate what is actually
    being run rather then clarify it.  For example, take 'mailq'.  Anyone
    care to try to find what 'mailq' actually runs without drawing upon your
    preexisting knowledge of sendmail?

    A variant symlink, on the otherhand, would clarify it.  /usr/bin/mailq
    would become a variant symlink to something like ${mtabase}/bin/mailq
    which itself might be a hardlink or softlink to "sendmail".  Other
    programs would operate the same way.

    -

    So, to begin this discussion lets consider how 'mtabase' is dealt with
    in the kernel?  I'll throw out a possibility:

	* 'varsym' structure represents variable, 'varsymlist' structure
	  represents variable set.

	* Master varsymlist which is system-wide
	* Embed varsymlist in jail
	* Embed varsymlist in struct uidinfo (see sys/resourcevar.h)
	* Embed varsymlist in struct proc (for local adjustments)
	* Make uidinfo per-jail as well as per-uid.
	* Resource limit to limit max kernel memory used for a varsymlist
	  variable set.
	* Utilities and system calls to modify varsymlist system-wide,
	  in jail, for uid in jail, or locally (in proc).

    SUID/SGID operation:

	* on exec new program does NOT inherit varsymlist from parent
	  process.
	* SGID programs do not inherit varsymlist from uidinfo.

    UTILITIES:

	* setvarsym, delvarsym, showvarsym, default to local varsym with
	  options to modify system-wide (true root only), jail (pseudo
	  root only), or user/uid (root or that user only) copy.

    Am I missing anything?

						-Matt




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]