[comp.unix.sysv386] public access unix accounting & admin

heiser@tdw201.ed.ray.com (09/20/90)

This is a question for those of you running public-access Unix systems,
especially if they're on Esix or other Sysvr3 386 systems.

Is there an accounting program floating around to keep track of 
"subscription" users?  If a user has paid a subscription for 6 months, what
method do use to (a) notify the user when the subscription is nearing
its end, and (b) notify the admin of that fact, and (c) put the account
in limbo (chahnge the passwd) until such time as the user pays up again.
I guess it wouldn't be too hard to write something to do this ... but why
re-invent the wheel...  

Also, is there a program around to allow users to set up their own 
shell accounts?  I'm not sure I'll even be doing things this way, but it'd
be interesting to know for future reference.  What I actually plan to do is
to let all new users login via the bbs, then leave a message if they want
to have shell access.  Any comments on this?

-- 
Work:    heiser@tdw201.ed.ray.com
	 {decuac,necntc,uunet}!rayssd!tdw201!heiser
Home(1): bill%unixland.uucp@world.std.com -or- uunet!world!unixland!bill
	 Public Access Unix Coming Soon!
Home(2): Bill.Heiser@f240.n322.z1.fidonet.org (BBS: 1-508-655-3848)
Other:	 heiser@world.std.com     (Pub. Access Unix)

karl@naitc.naitc.com (Karl Denninger) (09/20/90)

In article <2484@sud509.ed.ray.com> heiser@tdw201.ed.ray.com writes:
>This is a question for those of you running public-access Unix systems,
>especially if they're on Esix or other Sysvr3 386 systems.
>
>Is there an accounting program floating around to keep track of 
>"subscription" users?  If a user has paid a subscription for 6 months, what
>method do use to (a) notify the user when the subscription is nearing
>its end, and (b) notify the admin of that fact, and (c) put the account
>in limbo (chahnge the passwd) until such time as the user pays up again.
>I guess it wouldn't be too hard to write something to do this ... but why
>re-invent the wheel...  
>
>Also, is there a program around to allow users to set up their own 
>shell accounts?  I'm not sure I'll even be doing things this way, but it'd
>be interesting to know for future reference.  What I actually plan to do is
>to let all new users login via the bbs, then leave a message if they want
>to have shell access.  Any comments on this?

I have a program called "subscript" which does this.  It uses a file in
/etc, called "subscript", and a program called "validate" which is called
during the user's .profile.  This works for bourne and korn shells.

It does not, however, work for csh.  To fix this, I hacked the program, and
made it smarter.  If it is installed as a login shell (it knows because it's
ppid is 1 in that case) then it will do the check, and if it succeeds
execute "shellname.real".  You move the real shell to that name, and all is
ok.  If it is executed as a subshell it just exec's "shellname.real" with
the original arguments, and doesn't bother with the checks.  This way it
doesn't interfere with people's scripts and system functions.  It also
ignores any UID < 1000 (so you can have "system" accounts which are not
checked).  Additionally there is a bypass flag in the subscription file
which causes the validater to always return success without checks.

Works great.

The validate program prints the expiration date of a user's subscription on
the termianl when it runs, so everyone knows where they stand every time
they log on.  It also has the ability to postdate an account (ie: I enter
one today that comes active next Friday).  

I could probably be convinced to make it available for a small bribe :-)
Nielsen didn't have anything to do with this; I wrote it long before coming
to work here.

--
Karl Denninger	AC Nielsen
kdenning@ksun.naitc.com
(708) 317-3285
Disclaimer:  Contents represent opinions of the author; I do not speak for
	     AC Nielsen on Usenet.

epeterso@encore.com (Eric Peterson) (09/21/90)

karl@naitc.naitc.com (Karl Denninger) writes:

| I have a program called "subscript" which does this.  It uses a file in
| /etc, called "subscript", and a program called "validate" which is called
| during the user's .profile.  This works for bourne and korn shells.
| 
| It does not, however, work for csh.  To fix this, I hacked the program, and
| made it smarter.

I saw a .login/.profile of a user at FSU which was smart enough to do
all sorts of things based upon the machine, operating system, and
shell it was running under.  Basically what it did was run the entire
.login or .profile through /lib/cpp each time he logged in, with
system-dependent code #ifdef'ed in and out.  It took quite a while to
log in at times, particularly on a slow system, but it worked ...

Eric
-- 
      Eric Peterson <> epeterson@encore.com <> uunet!gould!epeterson
  Encore Computer Corp. * Ft. Lauderdale, Florida * (305) 587-2900 x5208
Real Time: Here and now, as opposed to Fake Time, which is there and then.

stevek@swatty.uucp (Steve Kriesel) (09/22/90)

Please Include me in followups regarding public access accounting..

I am currently in the process of setting up Public Access Unix..

Thankx....


.sig is on vacation

davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (09/22/90)

  You can write a portable login which won't take forever, but it will
get complex. I have a profile which sits on a machine and is NFS mounted
on a number of others. Some BSD, some SysV, various CPUs, etc. Figures
out if login is from serial, telnet, or X-terminal.

  Lot'sa tests.
-- 
bill davidsen - davidsen@sixhub.uucp (uunet!crdgw1!sixhub!davidsen)
    sysop *IX BBS and Public Access UNIX
    moderator of comp.binaries.ibm.pc and 80386 mailing list
"Stupidity, like virtue, is its own reward" -me