*****************************************************************************
    .      .               .         ___                           .  _ 
   /|\ / _ |_     _     _ -+- _ . .   |         _ ._  _ . _ ._    /| ' )
  /-| X (_`| |   (_`| |(_` | |_)|V|   |     \ /|_)| `(_`|/ \| |    |  < 
 /  |/ \._)| |   ._)|_|._) |_|_,|||  _|_     V |_,|  ._)|\_/| |    |o._)
                    ._|
                                       15-Mar-93   Digital Design 1991-1993
*****************************************************************************


		S y s t e m   a d m i n i s t r a t o r ' s
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		r e f e r e n c e   m a n u a l
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.0 Getting started

	1.1	Installing AXsh system
	1.2	Using AXsh with other software
	1.3	Adding and removing users
	1.4	Security
	1.5	Helping users
	1.6	Manuals
	1.7	Installing new software
	1.8	Administrator's daily duties
	1.9	Short introduction to the programs
	1.10	Problems and answers, tips and tricks

2.0 Configuring and customizing AXsh

	2.1	/etc/rc
	2.2	/etc/rc.server
	2.3	/etc/rc.ffe
	2.4	/etc/rc.news
	2.5	/etc/rc.mail
	2.6	/etc/crontab
	2.7	/etc/issue and /etc/motd
	2.8	/etc/forbiddenvars
	2.9	/etc/globallogin
	2.10	/etc/nologin
	2.11	/etc/adm/ directory
	2.12	/etc/xprotos.tab
	2.13	/etc/Questionnaire
	2.14	/etc/adm/Answers
	2.15	/etc/exampleuser/ directory
	2.16	/etc/register.*

3.0 Networking under AXsh

	3.1	Network installation
	3.2	Creating a node
	3.3	Creating a new network
	3.4	Connecting to Internet
	3.5	UUCP
	3.6	AXnet mail
	3.7	AXnet news

4.0 Registering stuff

	4.1	Registering form
	4.2	Bug report form
	4.3	New application report form
	4.4	Author
	4.5	Copyright notices


*****************************************************************************
1.0 Getting started

AXsh is a shell based local communication software, which allows remote users
to connect to your machine.  AXsh can also be run under UUCP, but you need to
do some changes to some of the configuration files.  AXsh consists of three
main parts:  the AXsh shell software, AX-sysghost, which holds information
about users and AX-server, which takes incoming calls, starts AXsh etc.  AXsh
supports multiple users, multiple lines and different user levels.  You can
define allowed commands and directories for each user level.  Command
arguments can also be restricted to home directory or to allowed directories.

AXsh is a SHAREWARE product and the REGISTRATION fee is about US$ 30, 150
FIM.  We'll accept any other currency too, because that is more convinient
for everybody, but US$ and FIM are preferred.  The cheapest way to send the
money is in cash in a letter.  If you don't plan to register, but have an
Internet mail address, you should still send some mail so I can keep you upto
date about updates to the demo distribution.  We are developing the system
constantly and all comments and bug reports are welcomed.  (See the addresses
in the end of this document.)

Before you start to install, you should check that your system is cabable of
running AXsh.  Here is a list of things you should have:

	- Amiga 500/600/1000/2000/2500/3000/3000T/4000
	- at least 0.5 MB of memory (>1M recommended)
	- at least 5 MB of hard disk space for AXsh in a public system
	- Hayes standard modem connected to Amiga via RS-232

You also need:

	- KS2.0 OR arp.library v39 or newer

IMPORTANT! 1.3 will be the last 1.3-compatible version. Next version will
	   REQUIRE ks2.0 or later.

To use network or file transfer:

	- xprzmodem.library 2.52 or newer
	- any other xprotocol library

The disk space usage can be controlled by yourself.  If you don't have 5 megs
of disk space for AXsh, don't take Internet news or hundreds of users.
Frankly, it's up to you.  Kickstart 2.0 is recommended, but not currently
needed.

If you need to know about AXsh shell itself or about other programs, just
read the appropriate man-files. This document discusses only the installation
and configuration-related topics.

This section is kind of abstract stuff, so if you're familiar with AmigaDOS
and know how to unpack AXsh to the installation diskette and how to use
WorkBench, skip this first section and concentrate on the second part of this
manual.

In this manual some of the paths are defined this way:  /etc/adm/ .  "/"
means root directory, in this case the AXsh:  assign.  /etc/adm means
AXsh:etc/adm.  In AXsh they both work just fine.


*****************************************************************************
1.1 Installing AXsh system

For automatic installation you need a formatted disk.  You should use a FFS
format floppy, otherwise everything wont fit into the disk.  You cannot use a
harddisk partition, it has to be a floppy!  If you don't have possibilities
to use an FFS format disk or you want to use a seperate partition for AXsh,
you can install the system by hand.

	format drive df0: name AXshPack NOICONS FFS

When you have a disk ready, unpack the AXsh packet to it:

	lha x InstallDisk df0:

You can do the above also automatically with the MakeInstallDisk ICONX script.
Now you can just double click the disk icon and select an appropriate install
script for your system.  The installer will ask you to select the right
drawer and files to install.


*****************************************************************************
1.1.2 Installing by hand

Create a new directory or a partition for AXsh and make an assign to point to
that directory:

	assign AXsh: <AXsh directory>
	e.g. : assign AXsh: DH0:Communications/AXsh/

If you prefer a partition for AXsh, it's reasonable to label it `AXsh':

	relabel <partition name> AXsh
	e.g. :  relabel DH4: AXsh

And now when you write the following command line:

	cd AXsh:

..you should be in your local AXsh directory.  If any system requesters
appear, you've done something wrong above. At this point, unpack the packet
to the directory/disk:

	lha x InstallDisk AXsh:

This will take a while to be executed.  It unpacks the AXsh packet to your
(hopefully) hard disk.  After the shell prompt appears again, you should have
all files unpacked. You should consult chapter 2.0 for customizing configuration
files to fully use AXsh cababilities.  Now, try this from any CLI or shell:

	path AXsh:bin/
	AXsh -con

AXsh version string and login prompt should appear.  Give login name root and
password root.  Now you should notice if you have succeeded in the
installation process.  Use "exit" to terminate an AXsh session.  You can get
more information about the AXsh shell itself from its own manual :
/man/AXsh.man.


If you want to use AXsh remotely, you have to make AXAUX: available:

	mount AXAUX: from AXsh:etc/Mountlist.AXsh

Now AXAUX:  handler is added to the system and it is ready to handle the
builtin serial line.  If you want to use a different serial device, refer to
section 2.2 about /etc/rc.server and the manual pages for ax-server and
axaux-handler. You can now start the AX-server with "AX-server".

If you do not start AX-sysghost, the first AXsh run will start it
automatically.  Next thing to do is to make the mounting procedure automatic.
If you're running AmigaOS 2.0 or higher, do the following:


AmigaOS 2.0 installation:

Edit s:user-startup using your favourite text editor and write:

	assign AXsh: <AXsh directory>
	mount AXAUX: from AXsh:etc/Mountlist.AXsh

After that, save the user-startup and open the AXsh installation diskette's
Storage directory from Workbench.  You'll see icons with an A on the top left
corner.  Move these icons to your boot disc's WBStartup directory.  Now, when
system opens Workbench, it automatically launches these programs.  If you're
not using Workbench, follow the AmigaOS 1.3 installation steps, but edit
s:user-startup instead of s:startup-sequence.


AmigaOS 2.1 installation:

In addition to the AmigaOS 2.0 installation steps move the AXAUX handler from
the AXsh installation diskette's Storage/DOSDrivers directory to the system
Devs/DOSDrivers directory and leave out the mount command from the
user-startup. You should also copy the locale system files to the Locale:
directory as well as the catalog files, if you want to use other languages
than the default English.

	copy AXsh:storage/Locale/catalogs locale:catalogs all

Currently AXsh (the shell itself), Mail and Ami (private mail programs),
Rn (news reader) and FFE (file frontend) all support WB2.1 locale.library.
Included languages are:

English   Default (Included in the programs)
suomi	  (Finnish)	by Pasi Ojala		po87553@cs.tut.fi
franais  (French)	by Cedric Beust		Cedric.Beust@sophia.inria.fr
dansk	  (Danish)	by Soeren Berg Hansen	siera@imada.ou.dk
espaol	  (Spanish)	by Sebastian Delmont	sdelmont@dino.conicit.ve
svenska	  (Swedish)	by Morgan Ericsson	morgan@krynn.augs.se

Thousand thanks and happy and productive future to all translators. If you
are willing to do translation to your own language, just contact me.


AmigaOS 1.3 installation:

Edit s:startup-sequence using your favourite text editor and write before the
endcli >nil:  command:

	assign AXsh: <AXsh directory>
	execute AXsh:etc/Startupadd.AXsh

And that's it.  Save the modified startup-sequence and try booting the
machine.  You may check the Startupadd.AXsh file to see what is done there.


*****************************************************************************
1.2 Using AXsh with other software

AXsh can be used as a BBS software by itself, but it can also be used with
other software packages. AXsh can be setup to run under DLG and other
'traditional' bulletin board systems that support the door-concept and
you can use TrapDoor and UUCP Getty instead of AX-server, if you also handle
Fidonet or UUCP traffic.

Here is an example of TrapDoor settings:
	BBSmode Spawn
	BBSCommand "execute AXsh:etc/remote-startup"
	BBSInOut "AXAUX:serial.device/0/shared/speed%B"
	Serialname serial.device
	Serialunit 0
	Baud 19200

We have also included instructions how to use AXsh under UUCP, but you have
to go through all the configuration files and change them according to
the instructions.


*****************************************************************************
1.3 Adding and removing users

Administrator's most important task in administrating is keeping track of
users.  In AXsh this part is made fairly easy.  Users can register themselves
by giving a login name 'new' (this feature can be disabled if needed, see
/etc/rc), which invokes a program called AXsh:bin/register.  It asks for the
desired login name, user's real name, password and the administrator can ask
them what ever he or she wants depending of the contents of
AXsh:etc/questionnaire.  You can also edit the /etc/register.*-files to your
preference or you can replace the register commands with a program that just
takes the information about the new user and you create the account after
verifying the user. Registering features and questionnaire file are explained
more carefully in chapter 2.10.

The default register program creates new accounts automatically, so you don't
have to do that either.  The only thing you must do is to check users'
information. All the answers to the questions are collected into one file
called AXsh:etc/adm/answers.  The filename can also be changed by modifying
AXsh:etc/rc.

Users can also be added manually by using passwd. However, you should notice
that passwd does NOT create home directories nor does it copy any default
files, it simply adds the login name to the system. Because of this, it
is adviced that you use register to add new users, even if you do that
locally. On the other hand, using passwd directly is the only way to make
two login names use the same home directory, if that kind of feature is
needed.

Removing users needs some more effort.  You have to know the user's login
name and you have to be logged in as a superuser.  Usually login name 'root'
has this access level.  If you are using an AmigaShell, you can use the
supplied 'login' command to set the superuser bit (login 32768).  When you
decide to remove a user, you must be sure, that it is what you really want to
do, because there is no way to get user's account back after removing it.

	passwd -r <user's login name>

This line removes user's account from AXsh:etc/passwd file.  This WILL NOT
delete the user's home directory or any other files belonging to the user
(like the system mailbox), so you have to do that yourself.  Depending
on the configuration you go to system's home directory (usually AXsh:home/)
and type the following line:

	delete <users login name> all quiet

Delete is a standard AmigaDOS command.  For further information consult your
AmigaDOS user's manual.

With passwd you can also change user quotas and accesslevels. Passwd -l will
list all users in /etc/passwd-file and passwd -ll will list available user
level names. Passwd in also used to change real names and passwords (as the
command name implies :-).


*****************************************************************************
1.4 Security

Security is a top priority thing on an AXsh system.  It's up to you how much
privileges you give to a user.  It's not very wise to give executing
privileges to 'format' for access level 'normal'.  If you run a closed
system with just few known users, it's not that important as long as you
don't give executing privileges for intuition based programs.

You also control which directories the users have access to. However, if
you give the user any of the superuser levels, he has access everywhere.
Still, only the commands defined in the rc file can be used remotely.

In a public system it's very important to double check the users for whom
you're giving higher privileges than 'normal'.  Any other user except 'root'
should not have access level 'superuser'.  Normally it's not necessary to
give a user special privileges.  'Normal' would do just fine.  You can add
quota or unset it, if you've got enough storage space.  There are also other
user levels, you can read about them in the configuration part.


*****************************************************************************
1.5 Helping users

Because AXsh is not a traditional BBS software, there will be some problems,
if you run a public system.  That's why it's essential to keep all the manual
pages in sight.  /etc/motd file (message of the day) should contain
information about how to get manual references and manual pages
(man -k - and man <name>).

If you want to make the use of the system easier to your users, you can
use the alias system to make menus and one-letter command aliases.

*****************************************************************************
1.6 Manuals

Manuals are AXsh's online help for a user.  They should ALWAYS be stored in
AXsh:man/ directory.  As mentioned above, manual pages are read with the man
command.  It is also possible to search for a manual entry with a reference
key.  It might be for example the word 'user'.  When you write the command

	man -k user

man displays all the manual pages' reference lines which contain something
about users.  Let's try it:

	man -k user

finger 	-(AXsh) show user information
irc 	-(AXsh) multiuser chat utility: (Non-internet-relay chat)
passwd 	-(AXsh) manipulate userfile
register-(AXsh) ask facts about the user and create an account
who 	-(Shell) show users currently on the system,terminals,times
write 	-(Shell) send a message to another user

OK.  Now we have the refernce lines on the screen.  If `write' is the needed
command, just write:

	man write

and the manual page for write appears on the screen.  Online manuals work
very much the same way as in Unix, but they are not separated in classes.
All the manual pages are stored directly under AXsh:man/. Manual reference
lines are stored in AXsh:man/Reference.

You might use a separate man program, if it checks and obeys BREAK-signals
(ctrl-c sent by the user or the corresponding signal sent directly to the
program). You also should have /checkcd defined in the AXAUX-filename.


*****************************************************************************
1.7 Installing new software

AXsh is being updated all the time.  New versions of programs and whole new
programs are released moderately often.  It's your job to install new
software so that it works correctly.  In addition to this you should have
some local news groups in which you inform local users about this new software
or modification, so that they can benefit from it as well.  After you've
tested the new software locally, you can add execute privileges for users.

Installing new version of an old program is not that complicated.  Just move
the program in correct directory (usually AXsh:bin/) and check that
everything works. See also if any modifications to the settings is needed.

If you have received a whole new release of AXsh, read carefully all the
update files before installing.  You should also install AXsh into a new
drawer or first copy the configuration files you have personalized or
otherwise modified.  There may also be some programs to change the news
subsystem or other parts of the system to a new format.  (Upgradenews
converted version1.24 news system to 1.25 format.)


*****************************************************************************
1.8 Administrator's daily duties

There are couple of things that administrators should perform daily.  If
you're using cron (CyberCron, dcron), you can do these tasks automatically.
First, you must move all the user log files away from AXsh:etc/adm/.
They are named as follows:

	Log<date>-<time>-<tty>

AXsh stores what the user has written to these log files if -log option is
given as a command line argument. It's recommended to use this option with a
public system.  If something goes wrong, you can easily check what the user
was doing when it happened.

If you're on a net, a file called AXsh:etc/adm/netlog will contain
information whether a netcall succeeded or not.  By using the program
/bin/userstat (and netstat, which is now obsolete) you can analyze this file.
But if you have a lot of news groups, this log file may get very big in a
very short time.  That's why you should make it shorter every now and then.

The third thing you have to do DAILY, if you're running a public system:
Check the answer file AXsh:etc/adm/answers.  If there's Donald Ducks or other
jokers, just kick them out.  It's too big security risk to let them be there.
But don't worry, no one has ever overstepped his access level on a correctly
installed AXsh system. Ever.

XPR saves information about downloads and uploads to the file /etc/adm/Xpr.log,
so that you can see what files are most popular and what files are uploaded.
Each line lists date, size of the file, cps-rate, user, protocol and
filename.

And of course you have to read your mail and news.


*****************************************************************************
1.9 Short introduction to the programs

This is a short introduction to the programs, so that you know which
program does which. Most of the programs also have manual pages
(possibly outdated though) and the programs also spit out usage lines when
they are started without arguments or with -? or -h.


AXsh
	The shell. AXsh handles the login process, command line
	editing, argument and command checking and execution. AXsh
	also has its script language and variables. You can also
	assign macros to functions keys and use the filename-completion
	feature.


System utilities:

AXAux-Handler
	This handler does the communication with the serial port
	and the programs. (If you have remote connection.)

ax-server
	This server handles incoming calls, adjusts the baudrate if
	needed and starts new process for remote login. The server
	also handles net calls. You can also use Getty, if you need
	to handle UUCP as well, or you can place AXsh under a 'normal'
	BBS program as a 'door' program.

	AX-server will open a small window and will promptly show the
	name of the configuration file it is using. After you activate the
	window you can press the menu button on your mouse. The window
	should expand to include two gadgets called "Console" and "Terminal".
	If you press the Console-gadget, the server will start a new AXsh
	session on console (this is controlled by the %newcon: entry in
	/etc/rc.server).  If you press the Termina-gadget, the server will
	release the serial device so that you can start a terminal program.
	When you are done with the serial, press the gadget again and the
	server will try to allocate the serial again.

	AX-server now also locks the serial port, so now you can use a
	'lockserial' program or a terminal program that itself uses the
	OwnDevUnit.library. In this case you don't have to use the terminal
	gadget at all. OwnDevUnit.library must be found from libs:, otherwise
	no locking is used. However, AX-server DOES NOT lock the serial
	for the command. You could add a lockserial command to the
	/etc/remote-startup file.

ax-sysghost
	This program keeps track of the users and their variables.
	It also keeps track of the system load. The sysghost should be
	started on startup, but AXsh will try to start it itself if it's
	not running.

killsysghost
	If you need to get rid of the sysghost, this program sends
	a quit-message to it. However, sysghost can't exit if there
	are users logged in.


AmigaDOS utilities:

uptime
who
login
	These utilities may be used when using the AmigaDOS shell.
	Uptime and who works in the same way as the corresponding
	AXsh internals, login may be used to set the UserID associated
	with each process. (See also top)


Mail system:

ami
mail
mailserver
	Ami and mail are used when reading and sending private mail.
	Mailserver is used to distribute mail received from other
	systems. AXsh mail uses To:-line when delivering mail, so
	it has to generate a new message for each Cc:, and Bcc: is
	quite hard to implement.

	However, you can also configure the mail system so that you can
	use UUCP-mail or other mail systems.


News system:

rn
	Rn contains the whole news system. With rn you both read news
	and handle all the news administration tasks. You can also
	configure the news system, so that you can use UUCP-news or
	CNews systems.
nntpnews
	Nntpnews is a simple program which uses NNTP to import news
	from Internet (exporting is not implemented). This program
	is available on seperate request.


AXsh networking:

net
	This program uses xprzmodem.library to transfer news and
	mail packets between two AXsh systems. It also needs
	rn, mailserver and C:LhA.

	You can also use Fidonet transport mechanism (with TrapDoor)
	to exchange the packets. There will be AREXX script files
	in this package that handle this.


File system:

XPR
	XPR handles file transfer. Both upload and download is
	available and different protocols and settings can be
	easily added. XPR can use any xprotocol-library. The
	package includes several settings for zmodem,ymodem and
	xmodem transfers.
FFE
	FFE is the file front end. It is a 'graphical' user interface,
	quite like DirWork and Directory opus. You can move in
	the filesystem, read filenotes (file filenotes or seperate
	description files), see text file contents or packet
	(lha and lzh) contents and transfer files with XPR or just
	move them to the home directory where they can be further
	processed (like only download one file from the packet).


User accounts:

passwd
	With passwd you can change password, user name, quota,
	accesslevel and add or remove users, list all users or
	'finger' a user.
register
	Register takes the user's name and other data and creates
	a new account and a home directory and the default files
	automatically.


Information and statistics:

calendar
mach
	Calendar displays the calendar page for current month and
	mach determines which processor and co-processors you have.
netstat
	Displays statistics of the received news articles.
	Now obsolete, use userstat instead.
top
	Shows processes and tasks running in the system, their
	names, states, stacks, priorities, CLI numbers and owners.
	You can also hide libraries, devices and handlers from the
	listing.
userstat
	Displays various statistics from various subjects. Includes
	TOP 10 lists for users by calls and time, for downloads and
	uploads by number of times and bytes, and for net activity.
	Also displays most popular files and graphical representation
	of the system utilization. Long display format displays
	everything, normally only first 10 entries are displayed.


File handling utilities:

cat
	Spits files to the standard output.
more
	Shows files with a pager. Doesn't handle input from standard
	input though.
wc
	Word counter. Counts chars, words and lines in files.


Nice utilities:

Italics
banner
bigtext
	These programs use ASCII graphics to display text in
	bigger font. Banner uses a five-row-high font, bigtext
	and italics use a three-line-high font.
du
	Shows disk usage.
editor
	AXsh's full-screen editor. Does not work very well, but
	is better than nothing. Put "set term vt100" into your .login
	if you have adequate terminal emulation.
ls
	A directory lister which also shows group and world protection
	bits. Does not handle wildcards.
cc
	Consolechat utility. cc opens a window into the WB screen
	and so the user can talk with the system administrator.
	CC is a lot like U*ix talk.
man
	Displays manual pages or searches for references.


*****************************************************************************
1.10 Problems and answers, tips and tricks

Problem:
	I have a problem with users logging in via a modem.  When the modem
	answers the phone it send a carrier and then after 2 or 3 seconds
	hangs up.  I have a SupraFaxModem 14,400 running with an Amiga
	2000HD.
Reason:
	This must be the 'CD never gets up after DTR goes down'-bug..  In
	SupraFaxModem the Carrier Detect line drops when DTR line goes
	inactive, but it never comes up again even if DTR goes active again.
	This is why the computer thinks that the carrier has dropped and
	hangs up.
Solution:
	Increase the DTR delay register, add s25=255.
	You can also use Getty (UUCP 1.16D) to take the incoming calls.
	Getty does not release the serial, so DTR never drops.
	You should also have the modem ignore DTR, &d0.


Problem:
	I have a ZyXEL U1496E. When I set the serial speed to 38400 the
	program does not work correctly. The highst possible speed is
	19200.
Reason:
	AXAUX normally gets the serial speed from the preferences and
	possible speeds only include speeds upto 19200 bps.
Solution:
	Use 19200 or add /speed38400/ to the axaux-filename and use that
	speed in %bpslock:


Problem:
	Editor thinks that it has more lines than it has.
Reason:
	Actually, your window is too narrow. Editor does not really read the
	columns variable, but assumes that you have 80 columns.
Solution:
	Add a little overscan and make the window bigger. A window of 664x216
	is the right size in ks2.0. In ks1.3 you have to get/use a new
	preferences program.


*****************************************************************************
2.0 Configuring and customizing AXsh

This section is reserved for the actual configuring and customizing.
Getting AXsh out of the packet is not much.  In this section we give AXsh
unique features in your system.  We'll modify all the /etc/rc files up to
date and also make the system stylish and usable to you and your users.

Remember that the identifier names are case-sensitive, should be always in
lowercase and the colon is part of the name. Rest of the line is ignored.
The setting for that specific entry follows on the next line. All paths
should end in a slash or a colon, for example AXsh: and AXsh:home/ are legal
values.


*****************************************************************************
2.1 /etc/rc

/etc/rc is the main configuration file in AXsh.  In that file you define what
commands and directories the users are allowed to use.  You have to decide
what commands every access level can run and the directories they can access.

Here's the rc file's structure:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	%home:	/* users' home directories */
	AXsh:home/
	%news:	/* news-system directory */
	AXsh:usr/spool/news/
	%mail:	/* system mailbox directory */
	AXsh:usr/spool/mail/
	%timezone:	/* timezone string, default GMT (max 9 chr) */
	EET
	%upload:	/* system upload directory */
	AXsh:usr/spool/upload/
	%exampleuser:	/* this dir is copied to a new home dir */
	AXsh:etc/ExampleUser/
	%priority:	/* AXsh priority */
	0
	%thismachine:	/* Hostname */
	pasbox.hro.fi
	%hub:	/* The machine we are supposed to call */
	tap.tre.fi
	%password:	/* Password for us in the hub */
	secretpass
	%organization:
	Digital Disaster Design - Wanna fry some chips ?
	%tempdir:	/* Temporary place for e.g. mail/news packets */
	T:
	%answers:	/* Answer file */
	AXsh:etc/adm/answers
	%newregister:	/* "no" will disable the "new"-loginname register feature */
	yes
	%defuserlevel:	/* user level for new users - default is "visitor" */
	visitor
	%defquota:	/* quota for new users - default is 50k */
	50
	
	; Permitted dirs. Only symbolic paths are necassasy
	%dirs:
	$daemon:
	$system:
	$wizard:
	$superuser:
	$assistant:
	$privileged:
	$trusted:
	$friend:
	work:
	$qualified:
	$normal:
	$guest:
	$visitor:
	C:
	dh0:
	dh0:System/
	dh0:Tools/
	Libs:
	devs:
	devs:keymaps/
	devs:printers/
	L:
	fonts:
	AXsh:
	AXsh:etc/
	AXsh:bin/
	AXsh:info/
	AXsh:man/
	AXsh:usr/
	AXsh:usr/spool/
	AXsh:usr/spool/news/
	AXsh:usr/spool/upload/
	AXsh:usr/src/
	AXsh:home/
	#
	
	%commands:	/* p-no path, h-in home, q-check quota */
	$wizard:	/* i-ignore args, f-not a filename r-raw mode */
	$superuser:
		run
		path
	$daemon:
	$system:
	$assistant:
		utils:m
		c:c13/runback
	$privileged:
	$trusted:
	$friend:
		lc:lc
		lc:blink
	f	AXsh:bin/mailserver
	f	AXsh:bin/net
	$qualified:
	$normal:
	$guest:
	$visitor:
	f	ALIAS
	f	CD
	f	CHFN
	f	ECHO
		EXECUTE
	f	FINGER
	q	FTP
		IF
	f	INTERNAL
	f	PASSWORD
	p	PROTECT
	f	QUOTA
		QUIT
	f	SET
	f	SYSINFO
	f	UNALIAS
	f	UNSET
	p	UPLOAD
	f	UPTIME
	f	WAIT
		WHICH
	f	WHO
	f	WHOAMI
	f	WRITE
	f	AXsh:bin/AMI
	f	AXsh:bin/ascii
	f	AXsh:bin/banner
	f	AXsh:bin/bigtext
	f	AXsh:bin/calendar
		AXsh:bin/cat
	r	AXsh:bin/CC
	f	AXsh:bin/clear
	rf	AXsh:bin/consoletalk
		AXsh:bin/du
	qp	AXsh:bin/editor
		AXsh:bin/ffe
	f	AXsh:bin/italics
	f	AXsh:bin/last
		AXsh:bin/ls
	f	AXsh:bin/mach
	qf	AXsh:bin/mail
		AXsh:bin/man
		AXsh:bin/more
	f	AXsh:bin/netstat
	h	AXsh:bin/news
	f	AXsh:bin/passwd
	f	AXsh:bin/register
	qi	AXsh:bin/rn
	qph	AXsh:bin/rx
	qh	AXsh:bin/sigmaker
		AXsh:bin/sx
		AXsh:bin/sz
	f	AXsh:bin/top
		AXsh:bin/userstat
		AXsh:bin/wc
		AXsh:bin/XPR
	i	C:Assign
	f	C:Avail
	fi	C:c13/Date
	i	C:Dir
		C:Info
		C:List
	f	C:Status
	f	c:c13/ECS
	f	c:c13/SI
		c:c13/Cmp
	f	c:c13/DevInfo
	f	c:c13/Procs
		C:Version
		c:c13/WhereIs
		Utils:DFrags
	pqh	Utils:HamSharp
	qph	Utils:LHarc
	qph	Utils:LhA
	qph	Utils:Lz
	p	Utils:Uudecode
	p	Utils:Uuencode
	qp	C:Copy
	qp	C:Delete
	qp	C:Join
	qp	C:Sort
	qp	C:MakeDir
	qp	C:C13/Move
	qp	C:Rename
		C:Type
		LC:grep
	p	LC:touch
	p	LC:Diff
	#


Directory and command definitions:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are two main sections which are splitted in several parts by user level
names:
	%dirs:			%commands:
	$daemon:		$daemon:
	$system:		$system:
	$wizard:		$wizard:
	$superuser:		$superuser:
	$assistant:		$assistant:
	$privileged:		$privileged:
	$trusted:		$trusted:
	$friend:		$friend:
	$qualified:		$qualified:
	$normal:		$normal:
	$guest:			$guest:
	$visitor:		$visitor:
	#			#

Each section begins with %<identifier>:  and usually ends with a #.  Access
level specifiers are defined with $<specifier> qualifier.  There are four
superuser access level specifiers:
    daemon, system, wizard, superuser and
eight normal user levels:
    assistant, privileged, trusted, friend, qualified,normal, guest, visitor
(You can get a list of these with passwd -ll.)

Allowed directories are defined in the %dirs:  section.  Each directory path
name ends with a / or :.  All the paths defined after the access level
specifier are valid for the corresponding access level.  This means that
directories specified with lower level users are also valid for higher access
level users, if you keep the access level specifiers in the same order as
here and don't use the limiting character (#).

You can also make separate definitions for each access level, if you end a
level definition with a #-sign.  You can mix these two defining methods too,
for example "normal" has some of its own directories and all of the
directories that are defined for "guest", which has only its own definitions.

	e.g.
		%dirs:
		$guest:
		axsh:usr/
		axsh:usr/spool/
		axsh:usr/spool/news/
		$visitor:
		axsh:
		axsh:man/
		axsh:info/
		#
		$assistant:
		axsh:
		axsh:etc/
		axsh:etc/adm/
		#
		$daemon:
		$wizard:
		$superuser:
		...

	Here "visitor" can access only his own home directories, AXsh root
	directory, man and info directories. "guest" has all these and
	some additional directories to access.
	"assistant" can do only administrative jobs and has access to AXsh
	root directory and /etc and /etc/adm directories.


The %commands:  section lists all the executable commands for each access
level.  We suggest that you modify your own rc file based in the rc file
which is included in the distribution.  Commands for each access level are
specified in the same way as in the directory section.  You must not add any
intuition-based programs to the list.  For local use, just use path to add
directories to AXsh:s path.  Only superuser (root), when logged in on
console, is allowed to run any program.  Any superuser can use any directory
too. Starting from 1.26, AXsh can also run resident and shell-internal
commands under KS2.0 .

Before the command name in the /etc/rc file there are possibly some flags. If
you put a "p" before the command, it's arguments can point only to the home
directory, but the command can be run anywhere.  Like "p editor".  You can
start the editor anywhere, but only edit your own files.  "h" means that the
command can be run only in the home directory. Usually this means that the
program stores its data files in the current (default) directory and allowing
the use of the command elsewhere would cause configuration and other files
pop up randomly anywhere the user can go. "i" will make the arguments
disappear.  These three flags has no effect on superusers

"q" suggests that the used disk space is checked after the command.  "r" will
cause the command to be run in raw-mode, instead of the usual console-mode.
Must be used for those programs that expects to be run on RAW:  .  "f" will
not try to do any interpretations on the arguments, otherwise ".." , "~" and
other Unix-like paths are converted to AmigaDOS format.


Global definitions:
~~~~~~~~~~~~~~~~~~~
After (or before) dirs and commands there are a few other identifiers, which
can be changed quite freely depending on the configuration of the AXsh
system.

First there's the default home directory for users.  We suggest that you use
AXsh:home/, but it may be some other directory as well.  This controls where
the registered users' home directories are created.  This does not have any
effect to home directories that already exist. All path definitions MUST end
with a slash or colon ("/" or ":").

%news:  and %mail:  specifies where the news and mail systems are located.

%timezone: sets the string that is appended to date strings when sending
news or mail. It may be 9 characters long, the default is GMT if this entry
does not exist.

%upload:  defines where the network uploads go.  It's possible to send binary
files through net with news packets and they end up where this definition
points. Remember that this may or may not be the same directory that is used
in XPR. XPR upload directory is specified in /etc/xprotos.tab.

%exampleuser:  defines a path that points to the directory that will be
copied to new user's home when a new account is created.  You can store
read.me files etc.  there.  We recommend that you'd use AXsh:etc/exampleuser/
here.  Register uses c:copy to copy the files, so that should exist also.

%priority:  is the priority that AXsh takes on startup. You might use 1,
because you're using the system on the console paying nothing but the
electricity bill.  The poor guy on the phone line is paying the phone bill,
so he should be the one getting CPU time whenever he wants.

%thismachine:  tells the network name of this site.  No special format in
used, we've used this:  machine_name.town.state.  For example:
my_bbs.london.gb.  To make the network work, this name should be less than or
equal to 16 characters.

%organization:  defines an Internet organization line.  Could contain state
and town and name of your system.

%hub:  defines the machine that is your hub machine on the net.  Hub refers
to the main machine that you poll.  This and the %password:-entry are
normally associated with the rc.server event definitions.

%password:  defines the password that is sent when a net connection is
established and the hub machine has taken your machines name.  This is
something you and your hub machines administrator should decide.  The
password may not be too easy to guess, because other systems may have system
privileges on the remote hubs.  You do not have to give another host system
privileges if you give permission to use AXsh:bin/net to normal users.

%tempdir:  defines the temporary directory for network files.  Usually T:  or
RAM:. Currently this is only used to store network packets while receiving and
sending them. Rn also uses this while creating new articles.

When the system crashes and AXsh notices it, it tries to reboot the system
to avoid gurus and system down-times.  It's done by executing an external
program which is defined in %reboot:.  We recommend that you use SetCPU
romboot.

%answers:  defines the file where AXsh:bin/register stores users'answers.
Usually AXsh:etc/adm/answers.

%newregister:  enables or disables the login name "new".  "no" will disable
the feature.

%defuserlevel: defines the user level for newly-registered users. Default
level is "visitor". You can also define the quota for new users with
%defquota:. Default quota is 50k.


*****************************************************************************
2.2 /etc/rc.server

AX-server has its own configuration file called /etc/rc.server.  It contains
modem initialization commands, network stuff and command lines that are used
to initiate new AXsh sessions and network events.  Default AX-server
configuration file looks like this:

	%bpslock:
	19200
	%bps:
	19200
	
	%serverpri:
	4
	
	%starthour:
	0
	%stophour:
	25
	
	%newshell:
	newshell AXAUX: from AXsh:etc/remote-startup
	
	%newcon:
	newshell raw:0/9/428/210/AXsh from AXsh:etc/local-startup
	
	%modem-reset:
	ATZ
	%modem-aa:
	ATS25=255W2\N3&C1&D0M0E0S0=1
	%modem-noaa:
	ATE1S0=0
	
	%eventhour:
	25
	%eventmins:
	0
	%eventnumber:
	ATX4E0DT161320
	%eventcommand:
	AXsh:bin/nntpnews <axaux: >axaux:
	
	%ringflash:
	0
	%device:
	serial.device
	%unitnumber:
	0
	%handshake:
	cts/rts

In the first line %bpslock:  defines possible baud rate lock.  If you have a
high speed modem that can always use the same speed (e.g.  19200 bps), you
can define %bpslock:.  If AX-server finds a %bpslock:  specifier from the
configuration file, it uses ALWAYS that bps rate regardless of actual
connection bps rate.  It will still show the connect message received from
the modem in the title bar.

For now you should only use speeds that are available in serial preferences !
If you are using multiple devices or other than the builtin serial port, you
MUST use a fixed DTE-speed and also tell axaux: what the used speed is
(for example AXAUX:serial.device/6/shared/checkcd/speed38400).

If %bpslock:  is not used, %bps:  defines the highest possible speed of you
modem.  All the controlling commands ("ATZ" etc.) are sent at this baud rate.
Baud rate between modem and Amiga is changed to match the rate at phone line
after a successful connection.  The baud rate in preferences is set
accordingly so that AXAUX will operate at the right speed.  This is why you
can only use speeds that are possible in serial preferences.

%serverpri:  defines AX-server's priority.  It should be less than five, but
more than one.  Four should be enough.  AX-server should never stuck.  NEVER.
It may take a while if the modem is giving it a hard time by using the
handshake (7-WIRE) to hold the transmission.  In that case you might want to
hard-reset the modem.  Commodore recommends that all the programs' priorities
should be less than 5.

If you are running a system that takes calls in only at night or only at day
time, you can describe starting and stopping hours for AX-server.
%starthour:  defines the hour when AX-server starts to answer the incoming
calls and %stophour:  when it stops.  For example if your system opens at
20:00 (08:00 PM) and closes down at 06:00 (06:00 AM) you type here:

	%starthour:
	20
	%stophour:
	06

%newshell:  opens a new AXsh by executing a script which usually is stored in
AXsh:etc/ directory and named remote-startup.  This opens an AXsh session for
external users.

Local console session is opened in the same way.  %newcon:  opens a window to
the console and then executes AXsh starting script.  You can change the
window parameters, but don't touch the AXsh:etc/local-startup file.  It's
just fine. The window should be 80 columns wide, because currently most
programs expects that. If necassary, add some overscan to make the window
larger (I have 724x564 in PAL-interlace).

%modem-reset:  defines the string that resets the modem.  Usually ATZ. It is
wise to store modem settings with echo disabled, as that saves you from some
unexpected difficulties.  You should also disable the DTR checking, because
there is delay between AX-server releasing serial and AXAUX:  opening it
again. You can also set the DTR delay to a high enough value.

%modem-aa:  defines the autoanswer string.  This string is sent to the modem
when the time is between starthour and stophour.  You may have to modify this
depending on your modem's command language.

AX-server sends %modem-noaa:  string to modem when stophour occurs.  It can
reset modem or just put autoanswer off.  Currently AX-server just resets the
modem if it needs to turn the autoanswer off, so this entry is not really
used.

%eventhour:  and %eventmins:  tells AX-server when to make a network call.
You have to discuss about this with your remote hub's administrator.

%eventnumber:  defines the string that AX-server sends to modem when an event
hour occurs.  Usually it contains ATDT<phonenumber>.

%eventcommand:  defines the script or program that is to be executed after a
connection is established between your machine and remote hub.  If the number
is busy or the connect fails, AX-server will try again in five or ten minutes
until it succeeds or the the event hour does not match anymore.  If you are
calling an AXsh hub, the event command would be something like:

	AXsh:bin/net <axaux: >axaux:

AX-server can flash the screen when phone rings.  %ringflash:  defines the
situations where it flashes the screen:

	0 - do not flash
	1 - when sleeping (not taking calls in)
	2 - when answering calls
	3 - always

There are also two additional definitions.  You can use %device:  and
%unitnum:  to use some other device than the built-in serial.  If you set
these, you have to do modifications to the %newshell too.  e.g.

	newshell AXAUX:modem0.device/0/ from AXsh:etc/remote-startup

However, the ring checking is still done directly from the CIA.  If you use a
printer much, you might want to turn the flash off, because the modem Ring
Indicator uses the same CIA input line with the printer Online Select line
and AX-server would think that the phone is ringing.

If you are not using the builtin serial, you should have 0 in the %ringflash:
entry !

%handshake:  configuration entry is for those people who don't have the
possibility to use cts/rts (7wire) handshaking with their modem.  In that
case set it to "none".  AXAUX: uses handshaking by default, so you also
need to change the %newshell:  entry to include /noflow.

	newshell AXAUX:serial.device/0/noflow from AXsh:etc/remote-startup

You can also use several different configuration files, because one can be
picked using a command line parameter when invoking AX-server.  The name of
the configuration file can be seen in the window title bar during the
setup. The synopsis is:

	AX-server [-f<config-file>] [-x<xpos>] [-y<ypos>] [-h<title-height>]

As you can see, it is also possible to define where the window will be opened
and if the system title font is larger than 8 points, the title bar height
can also be set.  You still should remember that if the window will not fit
into the screen, the program does not try to reopen it and exits.


You can also run a multiline system, if you mount several axaux-handlers,
named differently of course. You also need as many server configurations.
You need seperate handler for each line, because AXAUX-handler is not
designed to handle several ports simultaneously.


*****************************************************************************
2.3 /etc/rc.ffe

FFE is a `file area' for users.  If you have files to download in your
system, it's reasonable to set up ffe.  For that you need to modify rc.ffe.
FFE (File Front End) is stored in AXsh:bin/ and it uses a VT100 interface.

AXsh:etc/rc.ffe looks like this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	%filepath:
	Archive:
	
	%descpath:
	axsh:etc/ffe/
	
	%xprpath:
	axsh:bin/xpr
	

	%suffix:
	.zoo utils:zoo l
	%suffix:
	.lha utils:lha v
	%suffix:
	.lzh utils:lha v
	%suffix:
	.dms utils:dms view


%filepath:  in the first line defines where your public files are stored on
the disk.  It may also be a complete path name as well as an assign.  If it
is a path, it must end with a /. Now you can also define several (16)
%filepath: entries. In this case FFE will show 'links' to all of them in
the top level directory and you can change between them.

FFE will give access to all subdirectories that are under the defined filepath
directory. This is not always wanted, for example if you have some directories
that you want to be private. FFE won't show a directory (and you can't enter
it when in FFE) if its hidden-flag is set or the execute-flag is unset. So,
you can hide whole branches of the directory tree from the normal users.
Superusers still have access to all file directories.

%descpath:  defines where the file description texts are stored.  This
directory should exist to make the descriptions work.  Each file may have a
short description file.  (Read FFE's manual page for more information).
Don't change this.  If there is no description file, FFE will show the
filenote, if that exists.

%xprpath:  defines where the xpr program is stored.  Usually it's with AXsh
and is stored in AXsh:bin/.

With %suffix: entries you can define different commands for different types
of files. This can be used to allow a user to take a look into the contents
of a file packet. Just define a command and an appropriate option for a
suffix. The command is started with 'c' and if no suffix match and the file
is not binary, it is displayed with a pager.

The default rc.ffe will have suffixes defined for zoo, lha, lzh and dms
packets, but you may have to change the paths.


*****************************************************************************
2.4 /etc/rc.news

The news subsystem can be configured by changing various configuration
entries in the /etc/rc.news configuration file.  If you use UUCP, you have to
change the default values defined there.  This part of the document will give
suggestions only and better settings may be possible.  Even if you use AXsh
mail and news you should read what all possibilites there is.

The entry %news:  in the main configuration file (/etc/rc) defines the
location of the newsgroups.


/etc/rc.news:
~~~~~~~~~~~~~
    %grabfile:
    Grab.rn
	The name of the grab file created in home directory.  Whenever
	a Grab option is selected in rn, this filename is used.

    %batchfile:
    AXsh:usr/spool/news/%s.batch
	This is the file where message filenames that are sent to
	other system are saved. %s in this string is the hostname.
	With UUCP you would use UUSPOOL:batch/%s. See also %sysfile:.

    %sysfile:
    AXsh:usr/spool/news/Sys
	Hosts to whom forward news. This file is very much like the
	Sys file in UUCP. Read explanations about the entries from
	the file itself. In UUCP you would use UULIB:sys.

    %newsgroupfile:
    AXsh:usr/spool/news/NewsGroups
	File  where  the newsgroups are listed.  Only groups present
	in  this  file are consired active by rn.  The numbers after
	the newsgroup names in the file are the expire times,  older
	messages in the corresponding group are deleted when "rn tidy"
	is executed.

    %quotestring:
    > %s
	Used when doing follow-ups. %s is the quoted string itself.
	Newline is appended automatically.

    %postnews:
    internal
    UUCP:c/postnews <%f -f %u -r "%r" -R UULIB:Newsheader
	This  defines the command used when posting news.  With AXsh
	news  you  should  use  internal and with UUCP use something
	like UUCP:c/postnews <%f -f %u -r "%r" -R UULIB:Newsheader.
	As you can see, you can use some special variables.
	    %f = name of the article file
	    %u = user login name
	    %r = user full name

	If you use Active file, you HAVE TO use external postnews.
	Also remember that Rn does not generate Path:,From:,Date: nor
	Organization: lines with external postnews.

    %distribution:
    world
	Distribution  defines  the Distribution:-field for messages.
	The default value is "world".

    %fupref:
    In %s %s tells:
	This  defines the followup header line.  The first %s is the
	article-ID, the other one is the sender.

	%sendmail: (Obsoletes %mailer:)
	axsh:bin/mailserver %f
	UUCP:C/Sendmail <%f -f %u -R "%r" -t "%t"
	 %f = name of the letter file
	 %u = user login name
	 %r = user full name
	 %t = receiver (login name only)
	Rn  now edits mail replies itself instead of executing the mailer
	command. So, %mailer: configuration entry was made obsolete by
	%sendmail: entry, which works similarly to that in rc.mail.

	However, CC: (%c) is not available and "AXsh:bin/mailserver %f"
	is used instead of "internal". This is also the default setting.
	Rn doesn't provide a Message-ID: for mail messages, but at least
	UUCP1.16D version of the sendmail adds it automatically.

    %netlogfile:
    AXsh:etc/adm/netlog
	Name  of  the  netlogfile.   Net, rn and other programs will
	write short report lines here about net activity.

    %activefile:
    none
	Name of the active file to be used.  "none" means that it is
	not used.

	Currently the active file is only read, and you have to use
	external postnews command if you use it. Some of the commands
	in Rn are also disabled if you use an active file (CNews),
	because they must be handled by a seperate program.

    %nntpgroupfile:
    AXsh:usr/spool/news/NNTPGroups
	The file where the NNTP-newsgroups are listed. Only used in the
	NNTPnews-program, which imports news from a NNTP server.
	(The program is available on separate request.)

    %nntplogin:
    \n			kaima-ts>	kummi-ts>
    "term flow hard\n"	kaima-ts>	kummi-ts>
    "term telnet-t\n"	kaima-ts>	kummi-ts>
    "telnet news.cc.tut.fi 119\n"	"200 lehtori" 200
    #
	Set of Send-Expect1-Expect2 strings used when NNTPnews logs in to
	the NNTP server.

    %nntpdebug:
    0
	Debug level for NNTPnews. 0 means no logging, 1 logs only the
	handshake process and group responses, 2 logs all traffic (slow!).


NEWSGROUPS
	All active newsgroups are listed in the Newsgroups file and they
	should have directories, and .next files.  AXsh uses tree-structured
	directories.  For example comp.sys.amiga.misc has a directory
	AXsh:usr/spool/news/comp/sys/amiga/misc.

	AXsh news also uses .lowest files where it stores the number of the
	lowest article in that newsgroup.

	If you use CNews' active-file, newsgroups-file is not used and
	.next and .lowest files are not used. Rn will believe what the
	active file says. You also shouldn't use rn tidy or rn active
	when using CNews.


SYS-file
	In this file we define where to send news articles.  Name of the file
	is defined in the news configuration file (/etc/rc.news).  Each line
	(that is not a comment or an empty line) defines a host and a
	newsgroup patterns.  Only articles in groups that are defined in the
	sys file are forwarded.  Negative patterns can also be used, so that
	news in those groups are not sent.

	Patterns that are currently supported include:
	    *,*str,str*,*str*,str
	and negated versions of these.

	example:
	    remote:*,-local*

	All groups except groups starting with a string "local" are sent to
	the remote host. The host name must start from the first column.

	Things that are different from UUCP:
	    ? and machine aliases not supported yet
	    \ (line continuation) is not supported yet.
	      However, lines may be upto 256 characters long.


NEWSGROUPS-file
	This  file  contains all active newsgroups, expire times for
	the messages in each groups and additional flags.
	    e.g.
		alt.hackers			60 r
		axnet.axsh.dev			60 
		junk				10 

	Here  the  group  alt.hackers  is  a  read-only group, where
	posting is not allowed. All articles older than 60 days will
	be removed when a command "rn tidy" is executed.

	axnet.axsh.dev  has no restrictions, but the exprire time is
	the default 60 days.

	junk could be defined to be a read-only group also, but here
	the expire time is set to 10 days.

	Newsgroups file is not used when Active file is used.


ACTIVE-file
	The  active  file  rn  generates (rn active <filename>) only
	contains  the  newsgroup  names  and  the number of the last
	and first article in each group. Do not generate active file
	is you don't know exactly what you are doing.  If  your news
	system  already  creates and handles an active file,  DO NOT
	use  Rn  to  generate  an  active file, but use %activefile:
	configuration entry instead.
	    e.g.
		alt.hackers 0001027 0000765 y
		alt.sys.amiga.uucp 0001384 0000986 y
		comp.arch 0001561 0001548 y
		comp.sys.cbm 0002951 0002551 y
		rec.arts.sf.starwars 0002546 0002546 y


*****************************************************************************
2.5 /etc/rc.mail

The mail subsystem can be configured by changing various configuration
entries in the /etc/rc.mail configuration file.  If you use UUCP, you have to
change the default values defined there.  This document will give suggestions
only and better settings may be possible.  Even if you use AXsh mail and news
you should read what all possibilites there is.

The entry %mail:  in the main configuration file (/etc/rc) defines the
location of the mailbox files.


/etc/rc.mail:
~~~~~~~~~~~~~
    %sendmail:
    internal
    UUCP:c/sendmail <%f -f %u -R "%r" -t %t -c "%c"
	This  defines  what  command  is  used to deliver an already
	compiled  mail  message.   For  AXsh  mail  this  should  be
	"internal", for UUCP you would use
	UUCP:c/sendmail <%f -f %u -R "%r" -t "%t" -c "%c".
	As you can see, a number of special variables can be used.
	    %f = name of the letter file
	    %u = user login name
	    %r = user full name
	    %t = receiver (login name only)
	    %c = carbon copies

	For external sendmail, only one message is generated and the
	program should also handle the receivers in the Cc:-line.

    %routetable:
    AXsh:usr/spool/mail/Routetable
	This  entry  gives  the  filename  for the AXsh mail routing
	table.   Each  line  in  the file lists two host names.  The
	second  host  name  defines  the host where the mail will be
	delivered  if  the  receiver's host is the same as the first
	host name.

	    e.g.
		x.ola.fi	tap.tre.fi

	All messages to x.ola.fi are sent to tap.tre.fi to be further
	forwarded. This file is NOT used if UUCP (external) sendmail
	is used.

    %aliasfile:
    AXsh:usr/spool/mail/Mailaliases
	The file defined here is used for mail aliases.  Aliases are
	expanded  before  .forward files and they refer only to mail
	addresses,  no  piping  to  commands  are  yet  implemented.
	Further  alias and .forward replacement can be disabled with
	a "\"-sign.

	    e.g.
		pasi.ojala: \root
		root: albert
		axsh: root root@tap.tre.fi root@x.ola.fi root@oxygene.tku.fi

	This file is NOT used if UUCP sendmail is used.
	Remember that the lines (and addresses) are case-sensitive !!


$HOME/.forward
	Users can create a file named .forward in their home directory
	to   forward  received  messages  to  other  systems  or  to
	different user name in the same system.  .forward consist of
	lines,  each  carrying  one mail address.  Further alias and
	.forward expansions can disabled with a "\"-sign.

	    e.g.
		\root
		albert@tap.tre.fi

	Does UUCP use .forward-files ?
	Remember that the lines (and addresses) are case-sensitive !!


*****************************************************************************
2.6 /etc/issue & /etc/motd

/etc/issue is displayed before the login prompt and could have e.g.  the
system name and OS version.  This file is optional:  if it does not exist, no
error message is printed. Don't use long issue files.

/etc/motd is the `message-of-the-day' file, which is displayed to every user
after a successful login.  It's recommended that the administrator modifies
this file and adds at least some explanations about how to get help (man -k
-).


*****************************************************************************
2.7 /etc/forbiddenvars

This file defines which variables can't be set by user. You need this with
'foreign' newsreaders and other UUCP stuff, because a user shouldn't be
allowed to change e.g. the POSTNEWS variable.

You can also define how many times a given variable can be set (usually 1),
so that you can set them in /etc/globallogin, which is executed before
.login. AXsh 1.3 exports all the variables to 2.0 shell local variables,
if it is possible (if you have a ks2.0 system). Since AXsh version 1.3, all
variable names are case-insensitive, but the case is preserved.

/etc/ForbiddenVars:
~~~~~~~~~~~~~~~~~~
    user
    USERNAME
    HOME
    organization
    version
    quota
    lastlogin
    MAILER	1

    <variable-name> <soft-spaces> [<set's allowed>]

All these variables can only be set by the system, except MAILER is allowed
to be set once. Of course you would want to use /etc/GlobalLogin to set the
variable before the user can run his own scripts.


*****************************************************************************
2.8 /etc/globallogin

GlobalLogin is executed EVERY time a user logs in, before executing ~/.login,
so that you can be certain that needed variables are set. Globallogin is
executed with user privileges, but if you use /etc/ForbiddenVars correctly,
you can set the variables you like.


*****************************************************************************
2.9 /etc/crontab

Cron is a program that executes particular programs at particular time.  AXsh
does not contain cron, but there are at least two PD crons, which are tested
and found useful with AXsh :  CyberCron and DCron.  Both can be found from
Fish Disks.

The recommended crontab file should contain at least these lines:


# axsh:etc/crontab
#
#min	hr	day	mon	dow	command
# adjust time every 24 hours.. keep us in line
0	 0	 *	 *	 *	c:setclock load
#	run rn tidy
0	7	*	*	*	axsh:bin/rn tidy -m300
#	clean /etc/adm/ of all the crap AXsh places there during a user call
0	18	*	*	*	c:type axsh:etc/adm/log#? >>axsh:home/root/temp/luserlog
1	18	*	*	*	c:delete >nil: axsh:etc/adm/log#?
2	18	*	*	*	axsh:bin/shorten 1000 axsh:home/root/temp/luserlog
3	18	*	*	*	axsh:bin/shorten 5000 axsh:etc/adm/netlog
59	18	*	*	*	c:setclock load


The first event occurs at 00:00.  Cron fixes Amiga's clock up to date again.
At 07:00 it runs rn tidy, which cleans old news files off the disk.  Then at
18:00 (06:00 PM) it's time to clean old log files and restore them in root's
home directory for further handling.  Shorten makes log files shorter, so
that they won't eat too much disk space.


*****************************************************************************
2.10 /etc/xprotos.tab

Both FFE and XPR need /etc/xprotos.tab to operate.  There's a default
xprotos.tab, but it can be modified, if new powerful protocols come out in
xpr versions.  You have to be careful not to allow overwriting in uploads,
because this is a serious security risk.  For example xmodem is a protocol
that should not be allowed.  It is included in the default xprotos.tab-file,
because it uses the xprymodem.library and this library has an upload-path
feature.

The default xprotos.tab looks like this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"zmodem"
Library: xprzmodem.library
Descrip: Binary/No overwrite/Full duplex/No delete/No paths
Options: TN ON B16 F0 E10 AN DN KY SN RN PAXsh:usr/spool/upload
Default: TC,ON,B16,F0,E10,AY,DN,KY,SN,RN,P

"zmodem-home"
Library: xprzmodem.library
Descrip: Binary/No overwrite/Full duplex/No delete/HomeDir
Options: TN ON B16 F0 E10 AN DN KY SN RN P

"zmodem-window8k"
Library: xprzmodem.library
Descrip: Binary/No overwrite/Full duplex/8k window/No delete
Options: TN ON B8 F8192 E10 AN DN KY SN RN PAXsh:usr/spool/upload

"xmodem"
Library: xprymodem.library
Descrip: Chop/Checksum
Options: YS,Z1,C0,B0,OAXsh:usr/spool/upload

"xmodem-crc"
Library: xprymodem.library
Descrip: Chop/CRC16
Options: YS,Z1,C1,B0,OAXsh:usr/spool/upload

"ymodem"
Library: xprymodem.library
Descrip: Batch/Chop/CRC16/1K blocks
Options: YB,Z1,C1,B1,OAXsh:usr/spool/upload

"ymodem-g"
Library: xprymodem.library
Descrip: Batch/Chop/CRC16/1K blocks/No Acks or retries on error
Options: YG,Z1,C1,B1,OAXsh:usr/spool/upload

"ymodem-a"
Library: xprymodem.library
Descrip: Batch/Chop/2K blocks/No CRC checking or retries
Options: YA,Z1,C1,B1,OAXsh:usr/spool/upload

Each protocol definition starts with a general protocol name.  This has
nothing to do with the library name or options it uses, it is just the name
the user uses to refer to it.  It can be found between two "-marks.  Next
line describes the library this particular protocol opens.  Descrip:  is a
description line, which will be displayed when user starts the transfer.
Options:  defines protocol oriented features.  They are usually explained in
the manual delivered with that specific library. If the options string ends
with a "P" (upper case p), the home directory of the user is appended.
This feature is need if you want to allow uploading to home directories as
well as to the global upload directory. See xpr.man for more info.

Xpr will write upload and download report lines to /etc/adm/xpr.log, if the
transfer protocol support file length and transfer progress indication.


*****************************************************************************
2.11 /etc/adm/ directory

/etc/adm directory is used to store log files generated by AXsh and some
external programs.  Administrator should check these files regularly. The
following files may be found on the active AXsh's /etc/adm directory:

------rwed-------- 17 8414 	05-Jul-92 01:15	Xpr.log
------rwed-------- 46 22701	04-Jul-92 23:21	answers
------rwed-------- 38 19150	05-Jul-92 18:03	cron.err
------rwed-------- 65 32952	05-Jul-92 03:17	netlog

Plus some Log.xx.xx.xx files, if AXsh is currently active.  Xpr.log contains
short information about files sent or received using xpr.  Answers is the
file, where AXsh:bin/register stores users' answers.  Cron.err is cron's log
file.  Netlog contains short status lines of net activity.  These lines can
be analyzed with AXsh:bin/netstat.


*****************************************************************************
2.12 /etc/Questionnaire

Questionnaire file contains all the administrator-defined questions asked by
AXsh:bin/register when a new user logs in the first time.  The questionnaire
file may look like this:

	Street address: 
	Postal address:
	Town: 
	Phone: 
	Age: 
	Computer: 
	Do you know how to use Amiga Shell? 
	Do you know how to use Unix? 


*****************************************************************************
2.13 /etc/adm/Answers

All the answers users give to your questions in /etc/questionnaire file are
stored in /etc/adm/answers.  It's important that you check these every day
and kick jokers out of your system.  If the user have `missed' some
questions, but looks OK (check his /etc/adm/Log.xx.xx.xx), it's better that
you just send him or her mail and ask the missing question again and add it
to the answers file.


*****************************************************************************
2.14 /etc/exampleuser/ directory

The contents of the /etc/exampleuser/ directory will be copied to every new
user's home directory after registering.  Default /etc/exampleuser/ looks
like this:

------rwed-------- 1 388	02-Jul-92 13:54 .login
------rwed-------- 1 332	02-Jul-92 13:54 .logout
------rwed-------- 1 38		02-Jul-92 13:54 .plan
------rwed-------- 1 37		02-Jul-92 13:54 .project
------rwed-------- 1 83		02-Jul-92 13:54 .signature

You may add your own files there as well, but try to avoid that because most
of the users keep them in their home directory even if they don't need them.
Extra files eat storage space.


*****************************************************************************
2.15 /etc/register.*

These files have the texts that are sent to a new user when he registers.
Register.script is a script file (or a command) which is invoked after an
account is created.  The new account (login name) is given as an argument.
The example register.script sends a pre-written mail message to new users and
displays register.after-textfile.


*****************************************************************************
2.16 /etc/nologin

When this file exists, no logins are allowed and any non-superuser users
currently on the system are kicked out. The file should contain the reason
for shutdown, like "Owners game session is about to begin" :-)
Superusers get a polite message which informs them that the system is
possibly going down and it would be nice if they logged out.


*****************************************************************************
3.0 Networking under AXsh

One of the most powerful features of AXsh is its cabability to operate in a
network.  This means that you can send files, news and mail between two
Amigas or between an Amiga and a Unix machine.  Usually one Amiga running
AXsh collects news from Internet and then deliveres them to a smaller net of
AXsh systems.  UUCP connection is recommended when doing Internet access.

You can also use other transport mechanisms, like TrapDoor to exchange the
packets, but you also need some scripts to handle the packing and unpacking.
AXshSZIMEX03.lha includes AREXX scripts to be used with TrapDoor and the
packet is either included in the package or available in a seperate support
package.


*****************************************************************************
3.1 Network installation

For networking you need the programs AXsh:bin/net, AXsh:bin/rn,
AXsh:bin/mailserver and C:LhA.  You also need xprzmodem.library (version 2.52
is recommended). If you don't have much RAM, you should define %tempdir:  in
/etc/rc to point somewhere in disk.


*****************************************************************************
3.2 Creating a node

What you have to do is define the machine name, hub name and password in
/etc/rc and the event time, event number (the number the hub is reachable
from) and the event command in /etc/rc.server .  Refer to the sections 2.1
and 2.2 for details.

The admistrator in the hub will have to make an account for your machine and
insert the node into the mail system routetable.  You also have to discuss
with him/her about the calling time, it is not very nice if all nodes try to
call in the same time.  If the hub allows the command net for normal users,
you can even register the node yourself.  The account for a node is excactly
the same as accounts for normal users.  Your machine must also be added to
the /usr/spool/mail/Routetable and /usr/spool/news/Sys so that you can
receive mail and news.

The same additions have to be done in your system.  You have to create the
Routetable file, which has lines like:

	<remote-node>	<route-node>

The <remote-node> is the name of the system you are sending mail to and the
<route-node> is the system the mail is forwarded to (usually your hub).  The
<remote-node> must start from the first column, but there may be any number
of spaces and TABs between the two names.

If you're not the hub and your system's name is (for example) pasbox.hro.fi
and your hub's name is tap.tre.fi, your routetable would look like this:

	tap.tre.fi	tap.tre.fi
	7heaven.ola.fi	tap.tre.fi

This means that all the messages going to 7heaven.ola.fi are first delivered
to tap.tre.fi, which forwards them to 7heaven.ola.fi, because you don't have
a direct connection to 7heaven.ola.fi.

The Sys file defines what newsgroups are forwarded and where.  See the
example sys file for explanations about how to set it up.


*****************************************************************************
3.3 Creating a new network

If there are some AXsh sites on your neighbourhood, but no working network,
it's highly recommended, that you make one.  By using AXnet you can transfer
news, mail and files between systems.  AXsh uses a star model in network,
e.g.  one system is a hub and other systems make networking calls to hub.  By
using this method maximum delay between sending and receiving a message is
two days, if every node polls the hub once a day.  It is also possible to use
a tree structure, but the message delays will get longer.  To get the best
possible connections available, it's highly recommended that AXnets are also
connected to Internet via UUCP.

Creating a new network is quite easy. For one thing you have to decide who's
going to be the hub.  Then you have to agree about passwords and machine
names of each node.  The hub system then creates accounts for the other
machines, and depending on the installation gives them system privileges.

All nodes has to update /usr/spool/mail/routetable.  Routetable contains
information about nodes attached in the network and tells where to forward a
message, if the receiver's machine is not the same as sender's.

One more thing:  if you're using network cababilities of AXsh, put lha packer
to your C: directory!  This may become configurable in the future versions.

*****************************************************************************
3.4 Connecting to Internet

Use UUCP. AXsh mail and news programs should be configurable enough to
co-exist peacefully with the UUCP system.  However, if you have problems,
don't hesitate to contact me (see the E-mail addresses in the end of this
document). We also have a NNTP news importer available.

Since 1.3 you should also be able to use AXsh Rn to read CNews news.
However, to mix AXsh successfully with either UUCP or CNews (or any other
news system) you have to configure the news and mail systems appropriately
and you MUST define an external postnews command.


*****************************************************************************
3.5 UUCP - Using AXsh for remote login with UUCP (1.16D)

The /etc directory contains files UUCP-startup2.0 and UUCP-passwd-entry,
which may help you.  With UUCP you cannot use newshell to launch AXsh like
the AX-server does, because newshell returns straight away and getty will
assume that it can use the serial again.

UUCP-startup should have in ks 2.0:

	AXsh <>axaux:serial.device/0/shared/checkcd -log

or in ks1.3:

	AXsh <axaux:serial.device/0/shared/checkcd >axaux: -log

A getty-entry cannot use redirections, so you must have the above in a script
file, which you then execute from the getty-entry:

	bbs,*,444,0,(BBS-login),ram:,execute AXsh:etc/UUCP-startup

With UUCP you should also do some changes to /etc/rc.news (and /etc/rc.mail).

If you are having unexpected gurus or other weird things happen, you might
try to cure it by putting a stack command in the startup file before the AXsh
is launched.  All the programs in the AXsh distribution usually run with the
default 4k stack, but external programs may consume more stack:

	stack 30000
	AXsh <>axaux:serial.device/0/shared/checkcd -log


*****************************************************************************
3.6 AXnet mail

When a user sends mail, it is usually stored in the AXsh:usr/spool/mail
directory (this can be changed by modifying /etc/rc) with the same name as
the user's login name.  If the message is going to a remote system, it is
stored in the same directory as all the other mail, and its name is the same
as the remote system's (login) name.  When a new mail message arrives, the
datestamp of the system mailbox changes and AXsh will inform the user about
new mail by saying:

	New mail has arrived!

You can also use UUCP sendmail, just configure the appropriate entries in the
/etc/rc.mail-file. In that case, also set %mail: in /etc/rc to UUMAIL: or
assign UUMAIL: to the AXsh mail system directory. If you mix AXsh mail and
UUCP mail, you MUST define an external sendmail.


*****************************************************************************
3.7 AXnet news

User's newsgroup state information is stored in the home directory in the
file .rnnewsrc and the readnews preferences in the file .rnprefs.  These
files are read in when the user starts rn.  Rn updates these files when user
quits back to shell.

Each AXsh system should have at least one local newsgroup as a news channel
for local users about new stuff in system etc.  In addition to this there is
usually several public newsgroups which are delivered through net to all
systems.  If there's a system delivering messages from Internet to a local
AXnet, daily newsfeed may contain THOUSANDS of messages.  Every day.  That's
why it's reasonable to delete old messages by using rn tidy.

The file /usr/spool/news/NewsGroups has a number after each newsgroup name
and this defines how many days a specific message is kept in the system.  All
news articles that are older than that are deleted when you run rn tidy.  You
can also tell to rn what is the maximum number of articles in one group.

	rn tidy -m<messages>

For example

	rn tidy -m300

would delete all the messages older than the days defined in Newsgroups-file
and if there's more than 300 messages in a group, it will delete all but the
last 300.  This can be automatized by using cron.

If you use CNews or plain UUCP, you should use its own expire-mechanism
instead of rn tidy.  The new rn will find out if the .lowest files are not
upto date and will do a quick 'binary search' scan to find the article with
the lowest number.  Because of this rn startup may take slightly longer,
especially if the .lowest files are not upto date.

You can also send binary files between systems with:

	rn net <host> send <filename>

However, this is only possible in an AXsh net. However, you still may use
other tranport mechanisms than the "net" program. You should also notice that
the host must exist and be directly reachable. There will be NO error
messages if you make a mistake, the file will be appended to a file in
the news directory and it will never be sent anywhere. So, be careful when
you send files and check the news directory periodically.

There also is an NNTP news importer available, if you have an account in
a suitable U*ix system.


*****************************************************************************
4.0 Registering stuff

This section is very important.  When you receive the AXsh package and have
installed it correctly and DO want new versions of AXsh, PLEASE tell us that
you exist. Send some mail to us. It guarantees that you are on our lists.
You also should send us the small registering fee/donation (US$ 30, 150 FIM,
in any currency), because we will then send the sources and some additional
programs and manual pages.

Please, DON'T send cheques, because it costs me about 60 FIM to cash them.
And 60 FIM is 40% of the original 150 FIM cheque ! It sure costs less to
exchange currency and I don't even have to do that, if you send FIM or US$.
If your bank does direct international money transfers for less, you can
also send the money directly to my account:

Pasi Ojala
Finland - TSOP Kyrskoski 506326-559792

And remember:
Even the AXshDemo package is shareware and should only be used for evaluation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The bug report form is needed, if you find a bug or an unpleasant feature
from AXsh.  AXsh is not bug free, but it's quite well behaving program at the
moment.  You can also send reports and suggestions without the form. In fact
the form is only needed if you use conventional snail-mail. We prefer E-mail,
but conventional mail can also be used if you don't have Internet access
(or you don't know how to use Fidonet-Internet-gateway).

If you have developed an application for AXsh, let us know about it by
filling the Application report form and sending it to us.


You can send all the forms via Internet to 

	po87553@cs.tut.fi OR albert@cc.tut.fi

or use conventional mail:

	Pasi Ojala
	Telkontie 50
	39230 Osara
	FINLAND


*****************************************************************************
4.1 Registering form

Name of the system administrator:

_____________________________________________________________________

Name of the system:

_____________________________________________________________________

System's phone number, highest baud rate and working hours:

_____________________________________________________________________

Network address:

_____________________________________________________________________

Administrator's full address:



_____________________________________________________________________

Administrator's phone number:


_____________________________________________________________________

Current version of AXsh:


_____________________________________________________________________


*****************************************************************************
4.2 Bug report form

Name of the system administrator:

_____________________________________________________________________

System's phone number, highest baud rate and working hours:

_____________________________________________________________________

Network address:

_____________________________________________________________________

Administrator's full address:


_____________________________________________________________________

Administrator's phone number:

_____________________________________________________________________

Current version of AXsh:

_____________________________________________________________________

Description of the bug/feature:

_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


*****************************************************************************
4.3 New application report form

Name of the author:

_____________________________________________________________________

Author's full address:


_____________________________________________________________________

Author's phone number:

_____________________________________________________________________

Application name and current version:

_____________________________________________________________________

Description of the application:

_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


_____________________________________________________________________


*****************************************************************************
4.4 Author

	Pasi 'Albert' Ojala	po87553@cs.tut.fi OR albert@cc.tut.fi


The translators:

Cedric Beust 		<Cedric.Beust@sophia.inria.fr>	French translation
Soeren Berg Hansen	<siera@imada.ou.dk>		Danish translation
Sebastian Delmont	<sdelmont@dino.conicit.ve>	Spanish translation
Morgan Ericsson		<morgan@krynn.augs.se>		Swedish translation


The idea originally by:

Juha 'Comm' Tuominen


*****************************************************************************
4.5 Copyright notices

Unix is a registered trademark of AT&T

Amiga is a registered trademark of Commodore Business Machines, Inc.

AmigaOS is a registered trademark of Commodore Business Machines, Inc.


AXsh and Digital Design are not registered trademarks, but using them without
permission is bad for your teeth.

