[comp.unix.sysv386] Editor Escape

bbs@alchemy.UUCP (BBS Administration) (09/26/90)

	I've been following this thread for some time now, and it does bring
about a pretty serious problem for administrators of bulletin board
systems. The system my company has written handles the problem in several
ways. There is a permission bit called "User can escape to the shell" and
when enabled, a command to do so will appear in the main BBS menu. If not
enabled, the command does not appear.

	When it comes to using an editor, we created a file that contains the
full pathname to the editor binary program, a "nice" description of the
editor, and the "permissions required" to use it. Then, via a preference
editor each user can run from within the BBS, they can select which
editor will be their editor to be run when entering a letter, writing an
article, whatever. Only those editors to which they have permission are
listed when selecting this. If users have the "shell escape" bit enabled,
then we allow them to select VI, since escaping to the shell is something
they could do anytime they wanted to. For users without this, I wrote
a line editor. Recently, the source code for ELVIS was posted to the
net (alt.sources I think) and it really works quite well. After playing
around a bit, I managed to add a "?" command for help, and remapped
several commands so "Q" and "q" will quit the editor, "S" and "s" will
save the contents and quit, and "R" and "r" will run a program that
allows the user to navigate their $HOME directory (and any subdirectories)
in search of a file they'd like to read in (using arrow keys and an easy
user interface). Additionally, I disabled shell escapes, and running
an external "filter" program. It's almost as easy as "grep system *.c"
to be honest. Find where programs are forked and print "You can't do
that." and return from the subroutine.

	What I'm trying to say, though I'm a bit lengthy, is that the
solution to everyone's problems lies in the fact that trying to make
VI or some other binary program do what you want by remapping the
keyboard, or running PTY on it to change things, might not be the
best solution. I like VI, and want everything to work "as advertised".
Most BBS users don't even know what UNIX is, and only need the basics of
an editor, so why bother with something as "complicated" as VI to
begin with? ELVIS lets you use the arrow keys (even in insert mode),
let's the user type ^Z^Z to save & exit the editor and basically makes
command mode "unnecessary" in most cases. Hacking away at the code to make
it "safe" was really quite easy if you know "C" -- so why not get the
source and tailor it to your needs (like adding a "?" command for help
and other amenities that YOU see fit)?

Comments, suggestions and flames are always welcomed, (and sorry about
being so long winded, it's my trademark)

-- John

John Donahue, Senior Partner | UUCP: ucrmath!alchemy!{bbs, gumby}  | The Future
  Alchemy Software Designs   | INET: {bbs, gumby}@alchemy.UUCP     | Begins Now
-------------------+---------+-------------------------------------+-----------
Communique On-line | +1-714-243-7150 {3, 12, 24, 96HST} Bps. 8-N-1 | Next Wave:
Information System |    Alchemy Software Designs Support System    | Communique