--- 		     LOCKVC 3.00 (c) 1994,1995,1997 by Matthias Straub 	   --- 
--- 		     this package was released under GPL	  	   ---
---		     see COPYING for details				   ---

	0. Introduction
	1. Installation
	2. Usage
	3. Changes
	4. Goals
	5. Problems
	6. Known Bugs
	7. Thanks


0. INTRODUCTION
	
	You're familiar with the situation:
	You leave your computer alone to get a bottle of the world's most
	famous soft drink, and when you come back, your terminal's taken,
	your data's lost, your resources destroyed, and the system's
	admin is asking you about those postings you've made on
	alt.binaries.pictures.erotica.
	Now it is too late to be sorry. You should have known better:
	This happened a thousand times before.
	Until now...

	LockVC is a  console-locking-program  combined  with  some
	nifty  vga-screensavers. The version at this date (Jan 99)
	is 3.6.  Executing LockVC on a virtual console brings up a
	randomly  chosen vga-screensaver (that doesn't really save
	your screen, though).  To select a screensaver, run lockvc
	-help for a complete list.

	All virtual consoles get locked, i.e. you cannot change to
	another VC and you can't stop the program by pressing any key-combos 
	(apart from ctrl-alt-delete, if not disabled by your admin).
	You can only exit the program by entering your system-password.
	Root's password will also terminate lockvc.
	The amount of time, that the VCs can be locked may be limited by
	your system's admin, this will be displayed on executing lockvc.
	If you fail to exit lockvc within this time, lockvc will
	terminate all your processes and log you out.
	
	Svgalib is required on your system and lockvc  has  to  be
	run  with  root-privileges.  Only  standard  vga-modes are
	used. This should work on any reasonable machine.
	If you use glibc, libvga must be linked with glibc, _not_
	static linked with libc5.  The latter will appear to work
	at first, but leave security holes.
		

1. INSTALLATION

	+ You need glibc-devel (rpm-based distros) (IOW the C library
	  headers) to compile "Hello World!".  lockvc needs that, and
	  svgalib-devel, and if you use PAM, pam-devel.

	+ If you use the devfs option of the 2.4.x kernels, please run
	  devfsd as well, for this release of lockvc.  Maybe the next
	  one will be devfs-friendly, especially if someone cares.

	+ See INSTALL please.
	
	+ Get yourself root privileges and run 'make install'.
	  lockvc will be placed in '/usr/local/bin' unless 
	  ./configured with a different --prefix=.
	
	+ If you want to limit the time the console can be locked by your
	  users, create '/etc/maxlock' and write the number of minutes
	  after which a user gets kicked out into the first line.
	  (see the sample maxlock-file)

	+ The screensaver daemon is designed to be run from /etc/inittab
	  with respawn (see file inittab for a sample line).  You might
	  want to exempt some runlevels from its attention.  It will
	  lurk in the background until the keyboard and mouse have been
	  idle for a time (default 5 minutes), then lock the console
	  and run a screensaver as if the last active console had run 
	  lockvc.  Given the password, it will restore the screen and exit,
	  and init should spawn another.

	  It interprets /etc/maxlock like this:
	  0 0 0
	      ^no mouse.  (or, ignore the mouse).
	    ^ after 5 minutes idle, lock the console.
	  ^  unlimited locking time.  
	  or:
	  15 10 1
		^mouse
	      ^after 10 minutes idle, lock the console.
	   ^after 15 minutes locked, log out the user.

	  If you want all consoles logged out after maxlock,

	  ./configure --enable-logout-all

	  and make/install it.	  
	  Daemons will not be harmed.  However, if syslogd logs to a
	  console, it is SOL.  Sorry, I couldn't help it.

	  It seemed it might be inconvenient to lock a getty that
	  becomes idle, so lockvc will refrain from locking a tty that
	  belongs to group 0.  If a user switches to a logged in
	  session, or switches to another getty before logging in
	  lockvc will lock it immediately, and only the password of the
	  user who owns the session, or the administrator, can unlock it.
	  All this depends on a login that changes the owning group of
	  logged in tty's, and on group 0 owning the unused ones.  If
	  daemon mode simply does nothing, and you are unwilling to fix
	  login  :=) , and willing to have an idle getty locked, you
	  can ./configure --enable-gettys-too.
	  If you are using tty63 for something else, results are 
	  unspecified.:-)

	  If you run syslogs on some vacant consoles, you can get
	  the "daemon" to treat them as getties by having group 0 own
	  them.  Otherwise, if you time out while watching a syslog
	  console, you will need the administrator's password to unlock
	  it.  I run syslog to tty12, so I did "chgrp 0 /dev/tty12" to
	  take care of it.

	  The mouse code works with a PS/2 mouse, and should work with
	  a serial mouse.  If daemon mode does nothing, try using 0 for
	  the third parameter in /etc/maxlock to ignore the mouse.
  
	  If X is started by a user, he owns all those X sesions.  Virtual
	  consoles xdm is using are owned by group 0 and the lockvc daemon
	  treats them as it does an open getty.
	  
	  Whether or not daemon mode is installed and active, lockvc
	  can still be started by hand, and will behave the same as in
	  the previous version (3.4).

	+ add an alias like ' alias lockstars="lockvc stars 1000 8" '
	  to your global profile to set the default values for your machine.

2. USAGE

	+ see 'lockvc -help' for that.

 
3. CHANGES in version 1.6

	+ About 60% faster starfield-routine than in the previous
	  version. Therefor new default-values 500 9.
	
	+ Double-buffering for less flickering.
	
	+ lockvc now uses the user's system password as key.

	+ Option for root to limit the allowed time the console
	  can be locked by regular users.
   
   CHANGES in version 1.7
 
	+ some minor bugs removed

	+ Shadow-password option added by Ed Beaumont

   CHANGES in version 1.8

	+ double-length shadow-passwords and
	  passwords including spaces now work

	+ faster on 386, 486 due to integer math
	  derived from a patch by Jeff Epler
	  
   CHANGES in version 1.9
   
        + renamed uname -> uName, because uname is used in ELF 
	  include-files. 

   CHANGES in version 2.01b

	+ post-termination-console-echo-screw-up fixed
 
   CHANGES in version 3.0

	+ All new. All better. Turned to a modular concept that
	  allowed to include all available vga-routines into
	  one executable.

	+ Added a 'Fire'-saver and a 'Fudge'-kinda-wobbling-picture-saver
   
   CHANGES in version 3.4

	+ PAM aware option.

	+ You can now correct your mistakes in entering a password,
	  as you can with login.
	
	+ Uses fgets instead of gets, closing a security hole.

   CHANGES in version 3.6

	+ Screensaver daemon option.
   
   CHANGES in version 3.8

	+ It has come to my attention that the screensaver daemon did not
	  work in Mandrake 6.1, because there was no tty63.  That is easy to
	  fix.

   CHANGES in version 3.9

	+ The mouse code did not work.  It might now.

   CAHNGES in version 3.9.1

        + Doco fixes.  The man page should install now.

   CHANGES in version 3.9.2

	+ Should now compile with glibc-2.2.x as well as glibc-2.0.x
	  and 2.1.x.  More doco fixes.

   CHANGES in version 4.0.2

	+ ./configure script.  You should not need to hack the Makefile.

   CHANGES

	+ Please consult the ChangeLog.
    
4. GOALS for upcoming versions
	
	+ getting rid of the kernel-standard-screenblanker
	  and letting lockvc be the screensaver instead.
	
	+ additional screensavers to avoid boredom.

	+ leave some cpu-time to the rest of the system

5. PROBLEMS

	If for any reason lockvc refuses to terminate on a valid 
	password or key, you can still login remotely and kill 
	the lockvc-process, or reboot your system.


6. KNOWN BUGS

	eats up all cpu-time :(

7. THANKS go to 

	Harm Hanemaayer and Tommy Frandsen, the implementors of (s)vgalib
	who provided us with a great graphics-library.

	Lars Johannsen for his support.

	Ed Beaumont <morlok@abyss.apana.org.au> for the shadow-password
	routines and the man-page.

	Lawson Whitney <lawson_whitney@juno.com> pam-option and
	screensaver daemon.

	<unknown> for the Linux-Shark-Picture (in the fudge-saver)

   Additional thanks for patches and bugfixes go to:

	Jeff Obik Epler <jepler@herbie.unl.edu>  
	Janusz Zamecki <janusz@sprocket.ict.pwr.wroc.pl>
	Sam <slouken@virtbrew.water.ca.gov>    
	Andreas Kies <andi@andiunx.m.isar.de> 
	Jeong-Ho Lee <jhlee@math.wisc.edu>
	Marc Merlin <merlin@efrei.fr>

--

Matthias Straub, s_straub@ira.uka.de
Universitaet Karlsruhe, Germany

--

Lawson Whitney, <lawson_whitney@juno.com>
Concord, NC, USA

