GASH 1.0 DATABASES
18 September 1994
ARL:UT Computer Science Division
Dean Kennedy & Jonathan Abbey
---------------------------------

NOTE: Certain #define's possible in the defs.h file can change the format
of one or more GASH databases.  If you change these definitions and recompile,
GASH will no longer be compatible with your old databases, and you will
have to edit by hand or with a script of some kind.  

admin_info

Contains a list of users who have been granted GASH administration privileges,
along with their allowed commands, uid and gid range, and various name
masks.

Each administrator should have a unique 3 character code which will be embedded
into certain GASH objects to identify the creating administrator.  The various
name masks are applied to this three character code to determine access
permissions.

Example: I have an admin code of 'omj', and Dean has an admin code of 'omd'.
If my email mask is 'om*', I can edit email aliases that Dean created.  If
his email mask is 'omd', he can only edit email aliases that he created.

The admin_info database has one field, the group mask, which is dependent
on the definition of USE_GROUP_MASK in defs.h or your makefile.  If it is
defined, the group mask field will be present.  If you change USE_GROUP_MASK
at some point, you will have to modify the admin_info database.

USE_GROUP_MASK implies that all of your groups' names will be six characters
in length and that their first 3 characters will be the admin code of
the administrator who created the group.

user_info

Your basic passwd file, optionally with an appended social security
field, if USE_SOCIAL_SECURITY is turned on in defs.h / the makefile.
If you redefine USE_SOCIAL_SECURITY at some point, you will need to
change the user_info file to match.

If USE_SOCIAL_SECURITY is turned on, GASH will check that each ss
number is unique.  Turning on ARL_SPECIFIC will enable a whole bunch
of social security related things that you probably won't want.

group_info

The group_info database can be a simple group file, or (if
USE_EXPANDED_GROUPS is defined), it can additionally include a
contract number (which we use to determine who to charge the group's
computer time to), and a one-line project description.

As above, if you recompile GASH and change the state of
USE_EXPANDED_GROUPS, you'll have to go in by hand and make things nice.

netgroups

A standard NIS netgroups file, with some conventions that GASH follows
to keep things straight.  Netgroups come in two flavors, user or
system, and the one cannot contain an item of the other type.

Large netgroups will have to be split into multiple smaller netgroups.
Both user and system netgroups allow you to make recursive reference
to another netgroup of the same type.

auto.vol

A standard auto.vol file;  Your clients should be configured to
automount /v/ with the contents of the auto.vol file.  See the
NCE_CLIENT file for more info.

auto.home.default

A standard auto.home file.  Each user must have an entry in this file.
Each entry will consist of a user name followed by white space
followed by a volume name from auto.vol.  GASH will replace the volume
name with the expanded NFS filesystem definition from the auto.vol
file at database make time.

auto.home.*

Auxiliary auto.home files, for hosts that need to provide a separate
home directory for one or more users.  As above, except that the first
three characters after "auto.home." must be equal to the creating
administrator's admin code, and that administrators whose automounter
masks allow them permission can edit any entry in the file.

hosts_info

The big one.  Contains information on every system in your network
environment, including any and all interfaces, all IP numbers
associated with the system, all ethernet addresses associated with the
system, a list of GASH administrators with system editing privileges
for this system, the operating system being run by this system, the
system type, and the room number.  See networks_by_room in the
CONTROL_FILES file for more detail.

pending_actions

A database that GASH uses to keep track of things it needs to do
later.  You probably won't need to ever touch this.

aliases_info

A list of email aliases defined in the NCE.  All GASH users have an
entry in this database which lists any other names that mail can be
sent to for that user, and an email target, which can consist of one
or more qualified email addresses (i.e., with '@'), and/or one or more
GASH user names who should receive their mail.  Permission to edit
user email aliases is based on the uid of the user in question.

Group and external (non-NCE) users' may also have email aliases
defined in aliases_info.  The cma command will guide you through the
process.  Permission to edit group and external users' email aliases
is based on the admin code of the administrator who created the email
alias, and the editing administrator's email alias mask.

Note that we call all entries in the aliases_info database "aliases".
By alias, we are not referring to the set of alternate names that can
be associated with a user or external user record, but rather the
entire mail definition.  A group alias is essentially a mailing list.


