From: basil@osric.cs.odu.edu (Keith Basil)
Subject: More functionality. More UNIX utils.
Summary: More flexibility in Unix configurations.
Keywords: Unix Waffle setuid future
Organization: Old Dominion University, Norfolk, Va
Date: Sat, 12 Dec 1992 02:16:38 GMT

	I just sent a note to Thomas inquiring about some of the following
  functions and/or capabilities with Waffle.  I'm posting so that if anyone
  out there has a hack that achieves the listed functionality, please reply
  and send information on how it was done.  Some of these are suggestions
  for future versions, the ones that are *'d are things that I'd like to be
  able to do NOW.  Here's the list:

** o    I want to run waffle as the user's shell, BUT I only want them to
        login with a real unix uid and password and not have to enter another
        BBS username and password. To fix this, I had the idea of re-writing
        login.c to get the real uid from the passwd file and map it onto
        Waffle's admin/password file when looking up the corresponding BBS
        information.  login.c would ignore the password prompting.  and 
        "passwd" can be made to be an extern.  Here's where the problems
        arise (assuming that such a hack to login.c can be done). One
        Waffle needs to be run setuid to Waffle. (no problem).  BUT when
        launching other external programs, they run at Waffle's setuid!
        For example, when pine was called it couldn't write to the user's
        home directory (if it was not under the waffle dirs).  A solution
        to this would be to do a "get real uid" before externs are executed
        and make the real uid the effective uid for the externs.  In this
        case, pine would have had the user's privs to create the ~/mail dir.

        The reasons for allow waffle to run as a "really easy to use shell"
        are: 
        -the user doesn't have to login twice (obviously)
        -mail doesn't have to be hammered as much to work properly.
        -file space quotas can be enable per user.
        -shell access can be given without the user having BBS privs and
         grabbing admin/* or doing rm -r /u/waffle/
         Plus experienced users who like shell access can just drop to shell
         and do whatever they want.. and the novices can stay in waffle.
        -time billing and accounting can be handle via underlying unix tools.
        -security audits are easier to use..
        -and a real who/finger.. ;)

 * o    Additional fields in Waffle's pass.h file.  I want to have more than
        one Newsreader and more than one mailreader.  It would be REALLY
        nice if a user could go into the status screen and change thier mail
        or newsreader like the terms and editors work now.

   o    Is it possible to increase the range of access levels?  And can
        they be made to exclusive levels in the sense of, if a user has
        level "4" can he/she be restricted from levels 1-3?  I plan to
        differentiate between minor and adult access, under two different
        groups.  I don't want little Johnny getting pictures of what his
        parents do in the bedroom.

   o    Command history!! Hitting the arrows to get previous commands would
        be sweet.

   o    The HELP and INFO structure is really nice.  Can parsing support be
        adding in like the bbs commands?

   o    Support for submenus.

   o    Sometime down the line (vers. 2.4 maybe?) support for NAPLPS for
        online graphics.

==============================================================================

	Also, if anyone knows of any waffle related FTP sites that specialize
  in *UNIX* Waffle utilities, please respond.  I've ftp'd entirely too many
  neat sounding filenames only to discover they have .EXE extensions. If there
  is no such site, I might start one. ;^P

	Keith

	basil@cs.odu.edu