File: README

package info (click to toggle)
orville-write 2.55-2.3
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 568 kB
  • ctags: 317
  • sloc: ansic: 3,494; sh: 2,978; makefile: 156
file content (141 lines) | stat: -rw-r--r-- 7,881 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
ORVILLE WRITE PROGRAM - version 2.55
by Jan Wolter

The orville write program is a version of the standard Unix write program that
adds many nice features.  It has been heavily used on M-Net since 1985, on
Grex since 1991 and on a few other systems.  It is a ground-up
reimplementation using no proprietary code.  The current version is quite
portable.

Write was written for use on M-Net and Grex, both public access unix systems in
Ann Arbor.  As such, many of the features are designed to support a system
featuring a delicate mix of novice users and hostile pranksters, plus a lot of
people who just want to talk.  It's user interface is pretty much identical to
the normal write program, but it offers many extensions and improvements:

 - It is always possible to write someone who is writing you, even if his
   permissions are off.

 - Doing "write" without arguments replies to whoever is writing you.
   Similarly if you do "write whoever" and whoever is logged in more than once
   it will always write to the tty he is writing you from.

 - Optionally, orville write can be configured to allow users to turn on write
   permissions for only a selected list of users, or to turn off write
   permissions for all but a selected list of users.

 - If you write a person who is writing someone else, you will be asked if
   you want to interupt before the connection is made.

 - All control characters are expanded before sending them to the other user.

 - When you disconnect, the user will receive an "EOF (your-login)" instead
   of a simple "EOF".  (This is done to aid users in identifying who just
   did a "write whomever < /etc/termcap" to them.  The identification at the
   head of the messages scrolls off.)

 - It is possible to set up a link to write (called, perhaps, "jot") that will
   send each character to the other user as you type it.  This is less boring
   for the other user, since he doesn't have to sit there waiting for you to
   finish a whole line before he has anything to read.  However, it will not
   go into character-by-character mode until the other person has replied.
   (Since it's really annoying to have loose characters from someone chatting
   you getting mixed into the output from other programs you are running.)

 - It is possible to set up a link to write (called, perhaps, "tel") to send
   quick one-line telegram messages to other users.  Many people like to use
   this as a way to hold a conversation by sending telegrams back and forth
   while still doing something else on their terminals.  You can always write
   or tel a person for up to four minutes after he sent you a tel, even if
   his permissions are off.  There are provisions to prevent flooding people
   with tels.

 - Doing "write ." writes again to the last person you wrote.  This is
   especially handy with the "tel" command.

 - Users can set a switch so write won't ring bells when a message is received.

 - There is a facility for users to designate themselves as "helpers".  Then
   If a novice does "write help" he is connected to one of the helpers
   currently not busy writing someone else.  If there is more than one
   candidate, one is selected at random to distribute the workload.  It is
   possible to configure the system so only users listed in a file may
   designate themselves as helpers.  Helpers can do "mesg -h y" to turn on
   their helper status, or "mesg -h n" to turn it off.  This is our main
   mechanism for helping newusers on M-Net and Grex.  We also have the
   "finger" program display question marks by the names of users who are
   helpers, though source for finger is not included in this package.

 - There are two additional shell escapes.  Doing "!ls" at the begining of
   a line does the normal shell escape.  Doing "|ls" sends the output to the
   other user instead of to you.  Doing "&ls" sends the output to both of you.
   These are useful in instructing users about Unix commands through write
   and for including files into your conversation (with "&cat file").

 - When you receive a message from someone who is su'ed to some other account,
   you are notified of both of his identities.  The name from /etc/utmp is, of
   course, the one you reply to, but on many systems this is not as reliable an
   indicator of the identity of the person who is writing you as his uid, so
   mentioning this name as well can reduce confusion.

 - There is a configuration file, which an administrator can edit to among
   other thing, disallow piping files through write by disabling the & and |
   shell escapes and requiring standard input to the program to be a tty.
   This is meant to be turned on when you have a temporary excess of twits
   annoying other users.

 - The "mesg" command may be used to set a flag telling the system to record
   telegrams sent to you.  If you have this turned on, the "huh" command will
   redisplay the last message sent.  This is useful when telegrams get
   swallowed by other activity on your screen.

 - It is possible to separately set "write" and "telegram" permissions with
   the "mesg" command.  Thus you can depermit telegrams being sent to you,
   without depermitting writes.  You can also specify a preference for being
   writting in character mode or line mode.

 - The "mesg" program may optionally be compiled to allow a disconnect
   option.  Doing "mesg N" (as opposed to "mesg n") will not only turn you
   message permissions off, but disconnect anyone who is currently writing
   you.

 - There is an "amin" program (that's "am in", not the Ugandan guy), that lets
   you do "amin vi filename".  The runs "vi filename" normally, but if anyone
   writes you while you are running that process, he will be told that you are
   running "vi" and asked if he still wants to write you.  "amin -n vi file"
   just turns your message permissions off for the duration of the vi session.
   "amin -np vi file" will record any telegrams anyone send you while you are
   editing, and automatically display them when you are done editing.


CAVEATS:  This program must run SUID-root or SGID-tty (where 'tty' is whatever
 group the tty devices are on in your system).  (Otherwise you couldn't write
 people who are writing you even when their message perms are off.)  Security
 holes have been found in it from time to time over the years.  I like to think
 they've all been fixed now.

 As mentioned in the HELPERS discussion, we have made some associated mods
 to the finger program.  The finger source I have is someone's cheap clone,
 and is probably not useful for any serious modern Unix system.  Someday I'll
 do a set of patches for Gnu's finger.

 Our original purpose in rewriting write was that our old system had people's
 tty's writable to others when their message perms were on, and this led to
 too much "cat /etc/termcap > /dev/tty04" kind of stuff.  The orville write
 program supports a choice of two different workarounds for that problem, but
 neither is simple to install.  You either have to modify login (and possibly
 finger and other programs) or you have to live with some inconveniences.  Of
 course, nearly all modern Unix system don't have this problem (tty's are
 owned by some "terminal" or "tty" group and only group permissions are ever
 turned on).  If you have one of those systems, or you don't mind leaving
 tty's writable, there should be no problem installing write.

 We've tried hard to make Orville write very portable.  It should build easily
 on almost all versions of Unix.

If you'd like a copy of the distribution goto Orville Write's homepage at
http:/www.unixpapa.com/write.html .

By the way, if you'd like to give M-Net or Grex a try, telnet arbornet.org or
cyberspace.org respectively (or aim your browser at them).  Both systems give
away Unix accounts which may be used free of charge without validation.