----
UAMS, A STUDY IN SYSTEM ADMINISTRATION AUTOMATION
By
ROLAND JOSEPH STOLFA
Bachelor of Science
Oklahoma State University
Stillwater, Oklahoma
1986
Submitted to the Faculty of the
Graduate College of the
Oklahoma State University
in partial fulfillment of
the requirements for
the Degree of
MASTER OF SCIE CE
May, 1997
UAMS, A STUDY IN SYSTEM ADMINISTRATION AUTOMATION
Thesis Approved:
Thesis Adviser
Dean of the Graduate College
ii
ACKNOWLEDGMENTS
I sincerely thank my graduate advisor Dr. George Hedrick for the kindness, guidance, help
and time he has given me during the years it has taken me to write this thesis. Without the
encouragement and help he has given me, the completion of this work would have been impossible.
I also sincerely thank Dr. Blayne Mayfield, Dr. Mitch Neilsen, and Dr. John Chandler for serving
on my committee.
My special thanks goes to Mr. Mark J. Vasoll for the encouragement and inspiration he has
shown me during the course of developing the code associated with this thesis. Special thanks also
go to Mr. Russ Smith (Mathematics Department), Mr. Rod McAbee and Mr. Clay Couger (College
of Engineering) Architecture and Technology) Mr. Brad Barnes (College of Veterinary Medicine),
and Mr. James Alexander (Computing and Information Services) for their support.
My respectful thanks goes to my wife Mrs. Dr. Lisa Y. Tresp, D.V.M and our daughter Ms.
Victoria F. Stolfa and our son Mr. Kevin M. Stolfa for all the love, encouragement and support they
have given me in writing this thesis.
iii
TABLE OF CONT ENTS
Chapter
Pag
1. INTRODUCTIO /HISTORY
1
1.1
Background . . .. .
1
1.2
Problem Statement .
2
1.3
Organization . . . .
3
2. LITERATURE REVIEW
4
2.1
Asmodius
4
2.2
ACMAINT
4
2.3
GAUD .
5
2.4
newu ..
5
2.5
Uniqname
5
2.6
SH ARE II .
6
2.7
simon . . .
6
2.8
GeNUAdmin
6
8
3. UAMS TODAY . . .
3.1
3.2
The Database .
8
3.1.1
The Database Descript ion .
3.1.2
Global Fields
10
3.1.3
Local Fields .
11
3.1.4
DB Views
l.l
8
12
URJ's
3.2.1
12
Automatic Rights
lV
3.2.2
Granted Rights .
12
3.2.3
Expiring Rights .
13
3.2.4
Anti Rights
13
Rights Alias File
14
3.3.1
Slave side
14
3.3.2
Master side
15
3.4
Shell Strings. . . .
15
3.5
Universal Computing Identifiers.
15
3.5.1
Background . . . . .
15
3.5.2
Creation Heuristics .
16
3.5.3
Special Case Users
17
Security Issues . . . . . .
17
3.3
3.6
3.7
3.8
3.6.1
URI's & Access Control
18
3.6.2
Configuration Spoofing
18
Initial Password Creation
19
3.7.1
Background . . . .
19
3.7.2
Creation Heuristics .
19
Runtime Configuration . . .
20
3.8.1
3.9
The UAMS Master/Slave Configuration File
20
21
Server/Client Model
21
3.10 Clients . . . .
3.10.1 U IX
21
3.10.2 POP .
23
3.10.3 Card Key Lock System
23
3.10.4 Novell . . . . . . . .
23
3.11 Master/Slave Server Model
24
3.12 Master to Slave Messages
25
v
3.12.1 Batch Load . . . .
25
3.13 Slave to Master Mes ages
27
3.13.1 User Query .
27
3.13.2 User Remove
28
3.13.3 Voting and Expiration of Records.
2
3.14 Summary . . . . . . . . . . . . . .. .. .
4. CENTRALIZED FLAT NAM ESPACE SYSTEM
29
31
4.1
What is it?
31
4.2
Benefits ..
31
4.2.1
Provided to the Individual Users
31
4.2.2
Provided to the System Administrator
32
4.2.3
Provided to the University.
33
Costs . . . . . . . . . . . . . . . . .
33
4.3.1
Preliminary Costs and Tasks
34
4.3.2
Continuing
35
4.3
4.4
36
Summary . . . . .
37
5. BLACK BOX DESCRIPT ION OF A CFNS
5.1
5.2
Minimal Data Struct ures Needed
37
5.1.1
People Database . . .
37
5.1.2
Association Database
37
5. 1.3
Cross Reference Database
38
Supported Client/Server Functions
39
5.2.1
Make Return Set
39
5.2.2
Query By .
39
5.2.3
Return Set
40
5.2.4
Vote For Set
40
vi
5 .2.5
Merge Ids . . . . . .
40
5.2.6
Create A New User.
41
5.3
How it all Fits Together
42
5.4
Other Issues . . . . . . .
42
5.5
5.4.1
Data Base Inconsistencies
42
5.4.2
Purging the Data Base of Old Records.
43
Summary . . . . . . . . . . . . . . . . . . . . .
43
6. PROPOSED F UT URE WORK AND CONCLUSIONS
6.1
6.2
Future Work
44
44
. ..
6.l.1
UAMS-lite
44
6.1.2
Real Time Access to t he Master UAMS Site.
44
Conclusions...... . . . . . . . . . . . . . . . . .
45
BIBLIOG RAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
APPENDIX A:
46
48
GLOSSARY
VIl
LIST OF TABLES
Table
Pag
3.1
Logical Record .
8
3.2
Physical Records
9
3.3
Global Fields of the Database
10
3.4
Departmental Fields of the Database .
10
3.5
Example UCI Generations .
17
5.1
People Database . . .
37
5.2
Association Database .
38
5.3
Association Database, Example 1
38
5.4
Association Database, Example 2 .
38
5.5
Cross Reference Databa..<;e
39
5.6
Return Data Set Fields
40
5.7
Merge RP e P arameters
41
viii
LIST OF FIGURES
Figure
Page
3.1
Sample datafeed for UNIX client system
22
3.2
Master /Slave and Server/ Client Relationships .
24
3.3 User Query Event Sketch . . . . .
3.4
~
.
26
Master Side Processing of User Query
27
3.5 Sample Slave to Master VOTE Data Feed
28
IX
CHAPT ER 1
INTRODUCTION/HISTORY
1.1
Background
Prior to the development of The User Data Base System, UDB, at Oklahoma State University
the two support staff members at Oklahoma State University Computer Science Department had
to mainta in over 40 machines manually. This included all the normal system administration of
hardware, backups, mail, and news, as well as account creation. T hey often found t hemselves in
search of a machine on which a user wanted an account, logging-on, creating the account, t hen
finding the user and informing them of t he initial password. In many instances, several days might
pass between the request and the creation of the account due, in part , to playing "telephone t ag."
Another scenario would involve the creation of enough accounts for an entire class. This typically
implied that there were no initial passwords for those st udents.
As time passed, access to the t wo terminal labs that the department runs for graduate students
also became a chore. This involved keeping track of many keys to t he labs in question. Mon itoring
the labs, and the equipment contained therein, became enough of a worry t hat a set of magn tic
st rip readers and a card key access system was installed on six doors in the department to monitor
t he use of the rooms.
With the advent of
etwork File System (NFS) hosts/ servers, file shari ng amongst one user's
account on several machines became a problem due to NFS needing the IIumeric user identifiers to
be the same on all systems. This involved merging many separate password files, sort ing out what
id's were in use on what, machine, and then changing the numeric user id's on all machi nes across
the network.
In short, there was no real solution to t he user account creation, deletion, and management
problems for a university. This situation lead to the original development of T he User Data Base
System, UDB, in 1987. Furt her refinements lead to the presentation on UDB at the Large Installation
Systems Administration Conference in 1990 (available as OSU-CS-TR-90-04) (SV90bj.
1
2
After the first paper on UDB, several other coli ges and departmen
ithin OSU decided to
participate in the types of services UDB was providing. How ver, to e."(tend UDB to that domain
would have required all departments that wanted to participate share one datab
on one ho t. The
OSU Computer Science Department found itself in need of a system of providing datab
ervic
to a majority of the campus. A system was needed that could maintain a campus wide flat name
space, for both logins, or Universal Computing Identifiers (UCI) as we call them, and numeric u r
id's (NUrD), allowing separate administrative entities a.ccess to only those pieces of information that
directly relate to their organization. The result of this was the User Account Management System
(UAMS) [Sto93].
As it stands today, UAMS (the term that describes the current merger of UDB and UAMS) is a
centralized database of user id's, supporting several departments and colleges within the university
in a distributed manner.
1.2
Problem Statement
HistoricaJIy, the Computing and Information Services group on campus had not issu d personalized
user id's (or P UDs) to students . However, in 1992, CIS reversed th mselves on this topic. In the
ensuing three years, the number of PUDs handed out by CIS has exploded . In 1995, a new fe ,
the Student Technology Fee, was established as a tax on the students to supply services for the
students as directed by the students. One of the side effects of this is that the students wanted to
have email accounts for all students starting in the fall of 1995. The CIS department now provides
P UDs to all incoming freshmen, in part to meet their obligation to the Student Technology Fee
Committee. In order to do this, CIS intends to support a Centralized Flat Name Space (CFNS)
system for the entire campus. Using this system, all users would have exactly one user login name
across all platforms on campus.
However, UAMS has UCls for virtually all OSU users (approximately 15000 at this time) . In
addition, the UAMS system has many of the features that CIS finds desirable for their support of
computing on campus. As a result , CIS has offered to merge their PUD database with the UCI
3
database maintained by UAMS in the Computer Science (COMSC) department if COMSC d velops
the code to support this merger on the UAMS side and if COMSC will a.dvise CIS in the developm nt
of their part of the code to support t his merger. The resulting CFNS will be acces ible by all of
the current UAMS supported departments , and will allow CIS to expand the CFNS concept to the
ent ire university.
The problem, and the fo cus of this thesis, is the result of the joint effort between t he COMSC
Department and CIS here at Oklahoma State University to implement a centralized fi a t name space
system for the entire campus, based on UDB and UAMS, and further to deal with the merging of
the two elatabases of information (PUDs -vs- UCIs). One of this thesis' goals is to describe how
such a modified UAMS system would work, whom it would benefit, and how much work it would
require to achieve the goal of a centralized flat name space system.
1.3
Organization
The thesis is divided into the following chapters:
• Chapter 2: A discussion on previous work related to user account generation and maintenance
software.
• Chapter 3: Internals of U AMS today, given as an example of a working distributed flat name
space system.
• Chapter 4: Centralized Flat Name Space Systems Described.
• Chapter 5: Black box description of a CFNS.
• Chapter 6: Conclusions and Proposed Fut ure Work.
• Appendix A: Glossary.
CHAPTER 2
LITERATURE REVIEW
National refereed publications in this area started in about 1988, as that is when the Large
Installation System Administration Conferences of the USENIX Association began. Several other
account maintenance systems have been reviewed. Some of their high points are summarized below.
2.1
Asmodius
In Asmodius [EVS88], a distributed database system and reliable datagram socket connection protocol is described to perform some of the same fun ctions as UDB. Further, the implementors of
Asmodius chose to rewrite and replace several of the standard operating system utilities, such as
passwd. These modified utilities then communicate to a centralized daemon which would in t urn
modify the central database and communicate the changes t o other daemons running on those systems under Asmodius' control. These daemons then modify their local copy of the database and
actually change associated operating system specific files, such
a..'l
/etc/passwd.
However, Asmodius utilizes daemon programs running on hoth t he server and the clients that rely
on TCP lIP networking facilities. Although these faciliti s are gain ing popularity h r at Oklahoma
State University, not all hosts at OS U have T CP lIP, hence this approach was not usable.
2.2
ACMAINT
In ACMAI T [CKCS90], a celltral database was presented to allow a single system administrator
to manage computer account creation across a heterogeneous set of computers. ACMAINT, like
Asmodius, was designed around modifying several of the operating system utilities (passwd, chin,
and chsh to name a few) to communicate with a centralized database. This database then transmits
the "change" information to a daemon running on each network attached host under ACMAINTs
control to perform the change.
In ACMAINT, the "change" daemons do not keep track of the entire database, nor do they keep
a view of the database appropriate to their system. Instead, these daemons are strictly in charge of
4
5
processing change requests. This is the major difference between A modiu and ACMAINT.
However, ACMAINT utilizes daemon programs running on both th
erv rand th client that
rely on TCP lIP networking facilities. Again, as t hese facilities are not univer ally pr ent in the
OSU environment, ACMAINT was inappropriate for use here at OSU.
2.3
GAUD
In GAUD [Urb90], a central database is accessed by many hosts over Remote Procedure Call (RP C)
protocol to allow access by the various offices t hat might allow or deny access to a particular user
to a particular machine. FUrthermore, GAUD has as design goal the maintenance of extra data to
assist in various financial accounting procedures. In addition, GAUD maintains a list of wh re a
users home directories reside on a distributed NFS file server farm.
However, GAUD suffers from th e reliance on the availability of source code to the operating
system, an item not all universities have. Furthermore, at OSU, RPC is not available on all hosts,
hence its unsuitability.
2.4
newu
In newu [SV90a], describes a fun ctionality t hat is already in UDB; ie. t h ability to cr ate and d ) te
accounts on a foreign host. In addi tion, newu manages disk quota issues for t he users it administers.
However, newu suffers from the same problem UDB had, in that it only worked within one
administrative entity. FUrt her, newu was developed to deal with t he workload associated with
adding one user to many machines. It does not provide any mechanism for dealing with groups of
adds and deletes, such as seen in a university environment around the change of semester enrollmen t
flux.
2.5
Uniqname
In Uniqname [DLM90j, a system of merging existing accounts wi th a 'global view' is presented . T his
is the result of severa) different computer systems, and incumbent user populat ions, existing prior
to the development of Uniqname. Uniqname also attempts to address a few divergent issues, such
f
6
as X.500 email addresses, Kerberos authentication, and AFS ecurit
ystems.
As UDB started wit h a unified 'global view', Uniqname offered a solution to something that was
not a problem in our case. In addition, it presents a solution to several problem that UDB did not
even attempt to address such as t hat of preferred mail box address .
2.6
SHARE II
In SHARE II [BGMR94]' an overall object oriented resource control system for areas such as CP
utilization, memory use limits, and disk quotas is presented. It controls many asp cts of system
administration that through source code modifications to both the kernel and several oper ating
system utilities. In addition to these areas, SHARE II also deals with user account management.
As not all sites here at OSU have the source to the operating system, this is not a viable
alternative.
2.7
simon
Simon [Fin92] presents a system similar to UDB that relies on a commercial database system . Simon
receives data from the registrar, from payroll processing, and has spe ial case "guests" m nually
entered. It then produces a resu lting view of who should be on a system. In addition , this system
manages some aspects of a charge back ystem.
As these t hings are undesirable here at OSU, this system was not a viable alternative to UDB.
2.8
GeNUAdmin
In GeNUAdmin [Har94]' Harlander describes an automatic system administration tool used to control various operating system parameters, tuning variables, user default variables, file system mounting options, and user accounts across a network of heterogeneous computer platforms. One of the
design goals of GeN Admin is to allow ease of administration by performing various consistency
checks to bot h t he operating system configuration and the user population.
Since it involves many more aspects of system administration than UDB, much of GeNUAdmin
can be ignored. The user administration aspects of this paper describes replacement code for several
,
7
system utilit ies, such as 'passwd'. Since this is something t hat UDB was explicit ly designed to avoid ,
this system was not a viable alternative to UDB.
CHAPTER 3
UAMS TODAY
This chapter describes the internal organization and the operating principals behind UAMS as
it exists today. This chapter is included so the reader will have a better understa.nding of bot h the
history and the fun ctionality that is being sought.
3.1
3.1.1
The Database
The Database Description
Conceptually, the database is a relational database with a single relation, consisting of the fi elds
shown in Table 3.1. These fields have evolved through the development of UAMS and the uses to
which it was put. Due to the operational use of these fields however, the logical record is divided
into six physical records (Table 3.2).
These six physical records are then stored in a hashed database. Originally this was done using
Ken Thompson's DBM (as supplied wit h UNIXl). However, as the size of the database grew, it
exceeded DBM ' capabilities. At that time, the Gnu Project's GDBM was chosen to replace DBM .
For each of the physical records (shown in Table 3.2), a DBM key=value pair is generated. T ypically
the first charact er of the physical record name is prep ended to th e NUID to form the key. The value
I
UNIX is a trade mark of X/Open.
osuid
issue
fulIname
uci
nuid
passwd
epasswd
major
auto
granted
comment
lupdate
Student/Faculty identification number (unique)
Student/Faculty ID card issue number
Full name of the individual, as defined by the uni versity
Universal Computing Identifier (unique)
Preferred Numeric User ID for NFS (unique)
Clear text password
DES encrypted password text
Student department affiliation
Automatic enrollment rights
Manually granted rights
Comment field
Last update time of this record
Table 3.1: Logical Record
8
9
General Record
Student/Faculty identification number
Student/Faculty ID card issue number
Full name of the individual , as defined by the university
Universal Computing Identifier
Preferred Numeric User 10 for NFS (DBM key)
Clear text password
DES encrypted password text
Student department affiliation
Last update time of this record
osu.id
issue
fulln ame
llci
nuid
passwd
epasswd
major
lupdate
Automatic Record
Preferred Numeric User 10 for NFS (DBM key)
Automatic enrollment rights
nuid
auto
l
nuid
granted
I Preferred Numeric User ID for NFS
nuid
comment
I Preferred Numeric User ID for NFS
I Comment fi eld
osujd
nuid
OSU ld Map Record
I Student/Faculty identification number (DBM key)
I Preferred Numeric User ID for NFS
uci
nuid
I Universal Computing Identifier (DBM key)
I Preferred Numeric User ID for NFS
I
Manual Record
(DBM key )
I Manually granted rights
Comment Record
(DBM key)
UCI Map Record
Table 3.2: Physical Records
10
osuJd
issue
fullname
uci
nuid
major
auto
Student/Faculty identification number (Unique)
Student/Faculty ID card issue number
FUll name of the indi vidual, as defined by the university
Universal Comput ing Ident ifier (Unique)
Preferred Numeric User ID for NFS (Unique)
Student department affiliation
Automatic enrollment rights
Table 3.3: Global Fields of the Database
passwd
epasswd
granted
comment
lupdate
Clear text password
DES encrypted password text
Manually granted rights
Comment fi eld
Last update time of this record
Table 3.4: Departmental Fields of the Database
is typically the plain text contents of the field; in t he General record case, the valu.e points to a
structure that contains the listed fields.
In the operation of this relational database, an UCI to OSU _ID record exists for each user, as does
a General Record. Each user who has any enrollment data has a corresponding Automatic Recore!.
A Manual Record exists for each user who has sp cial rights on the server. The COMMENT record
exists for the system administrators to keep a textual tag to be associated with the llser .
3.1.2
Global Fields
The data analysis concluded that all slave UAMS sites across campus must share some part of
the the global database of logical records maintained on the master site. The slave UAMS sites
would treat this data as read-only, allowing the master UAMS site to overwrite these fields when
needed. The global fields are treated as read-only on the master UAMS site aft er the initial creation
of he users record. This is because the entire list of uc rs and NUIDs a re kept unique on the ma..'lter
DAMS site. Once generated uniquely on t he master site, these global data fields can be transmitted
to any of t he slave UAMS sites while still guaranteeing the data integrity; ie. no duplicate
NUIDs (Table 3.3).
I
vcrs or
f
11
3.1.3
Local Fields
The local data fields are unique to each administrative UAMS ite. They are not transmitt d either
from the slave to the master site or vice versa. This allows each UAMS site to have control over the
special case users without infringing on any other
3.1.4
AMS site (Table 3.4).
DB Views
As of the development of UAMS, the database was further modified to be distribut ed between
a master and several slave UAMS servers. The mast er server maintains the uniqueness of UCI's
and NUID's, receives the data feed from the central university database, and handles request s for
new users from slave servers . Slave UA MS servers contain a view of the master UAMS database,
appropriate for the department that is running the slave server. Slave servers are also where a
departmental UAMS administrator configures the different clients.
This arrangement allows different UAMS administrators to configure their respective views of the
database to affect their department in a manor that is consistent with that department 's wishes. It
also allows for different, sometimes conflicting URIs, or
niversal Rights Identifiers as we call them,
to be used within different slave UAMS servers without interfering with the other departments.
One consequence of this splitting of each logical record into a global and local part is that each
administration is able to set t he default init ial password, while maintaining the same UCI. This
helps maintain some level of security among UAMS hosts. Using this arrangement disables one
user, knowing their UCI on one UAMS administ ered host, from loggi ng in ad-hoc to other UAMS
administered hosts based purely on the knowledge of the original password. It also implies that
an individual user's account information on one system has minimal use on another, as the init ial
password is different between UAMS administrations.
Each administrative UAMS site also has a separate and unique GRANTED right field for each
user in t heir system . This allows each site to specify unique (and possibly conflicting) URIs to give
access to djfferent clients (hosts, etc.). On the master UAMS site, the GRA NTED right field is also
12
used to select those special case users such as "root"
2,
who need to visit a slave UAMS site in
addition to those users destined to go to t he slave site because of enrollment inform tion. However,
since the GRANTED right field on t he master DAMS site does not go with the record to the slave
site, the slave UAMS site never sees that URI.
Another result of this data analysis is that each department is allowed their own comment field
(COMMENT) for each user. That way, any comments on a user are held in the confidence of the
commenting department.
3.2
3.2.1
URI's
Automatic Rights
The data held in the "auto" rights field contains information related to enrollment and employment.
Contained in a separate physical record, this field is a list of all relevant courses t his user is enrolled
in this semester. In addition, all employees of the university that happen to be in the UAMS system
have are given a dummy enrollment record to indicate the department for which they work, and what
kind of an employee (student, faculty, etc.) this user is. All data in this field expires autom atically
when UAMS receives new data from the central university database.
These rights take the form of a comma separated list of text strings. This fi ld of th logical
record was split into a separate physical record because t he data contained in it must to be updated
each time a new university database data feed is received. Having this as a separate field simplifies
the update process by allowing the system to simply remove all automatic records in one pass.
The program that receives t he enrollment data can simply reload the course enrollment data by
regenerating all the automatic records.
3.2.2
Granted Rights
The data held in the GRANTED rights field are speCial case rights given on an as needed basis.
Such things allow users such as "root" to have an acco unt on all machin es without concern that
their accounts could be deleted automaticall y at some point in the fu ture . In addition, there are
2
On most NIX sys tems, there is a special account used for system administration tasks. It is
typically called "root" and is a privileged account.
13
always special case users who need an account (or access to a room via the card key ace s y t m)
for a specified period of time but they would not otherwise be granted that right. This field of the
logical record was split into a separate physical record becau e it was found that there were very
few of these compared t o the number of total users in the database (10: 1 on average) .
3.2.3
Expiring Rights
Any GRANTED right may have an expiration date of the form "-YYYYMMDD" appended to it.
Upon a periodic
3
scan of the database, all GRANTED rights that have reached their expiration
date are removed from that user's record.
3.2.4
Anti Rights
As in a lmost any other university setting, students will be students. As UAMS was a pplied to an
ever larger body of students, it was inevitable that a student would need to be prohibited from
using a machine due to an infraction of the rules. Shortly befor e this became necessary the author
developed the anti-right. With this GRANTED right, a user could be excluded from a machine,
regardless of other rights.
For example, the user "foo" is to be prohibited from using machine "A" . However, "fo o" is
granted access to t hat machine due either to a class enrollment right (in an Auto fi eld in this us r's
record ), or to their Major (if they are a guest on th at machine, indicated by a URI in this user's
GRA NTED field of, say, "A", t he GRA TED right "A" is simply removed) . If t his was done, the
next time UAMS received this user's enrollment data from the central university database, t he Auto
field enrollment right would return. At this time, the Major code would be restored also. As these
are not solutions, the anti-right was developed. In the case of "foo" , a GRANTED anti-right would
be given as "!A". In fact, in order to lock "foo" out for a specified period of time, an expiration date
could be added, giving an expiring anti-right of "!A-YYYYMMDD " .
These anti-rights do nothing abnormal to the record of th e user. Instead, they alter the list of
users selected to go to a site, "A" in this case, to exclude t his user. If this same user has other
3
This process is typically activated once a day, but may also be initiated on demand.
14
GRANTED rights, for in tance t his user has an account on the same d partment's POP serv r,
their POP server rights are unaffected.
3.3
Rights A lias File
The Rights Alias File, or RAF, is t he central control mechanism within UAMS. The definitions
within it control which records are selected to go to which other clients. It also defines which URls
may be given to a user manually in the GRANTED right field of their record.
As may be guessed, looking at the manual page on RAF that comes with UAMS [St096], all
blank lines and lines that begin with "#" are comments. All other lines are broken into t hree colon
":" delineated fi elds. The first field is an alias for all lines referenced with t he same alias. The
second field is t he list of explicit URIs are to be used as a selection criteria for this alias. The third
field is an optional command field associated wit h this alias.
In short, the rights for a particular alias indicate all records that are t o be extracted and passed
thru the optional command to generate the information necessary for the client that the ali as
represents .
It is possible to maintain a list of users with a particular URI without actually using the list
in any alias line. This is done by leaving the first and t hird field blank and listing all th URls of
interest in in the second field.
3.3.1
Slave side
On a Slave server, the RAF is typically concerned with mapping which URIs into which client sid e
programs. Each installed Slave server comes with several client side programs. Among the more
useful ones are "genJolls," [Sto96] a program that prints out a class roll sheet for an instructor
to use when determining the login name and password for each student in a class. Another useful
program is "gen_unix," [Sto96] which prepares a data feed to a (possibly remote) site for the creation
of user accounts on that site.
15
3.3.2
Master side
On a Master server, the RAF is generally a spartan affair t hat simply map which classes of users
go to which slave site. A program called "gen-'1Sd" [St096] does this job. When it is fin ished , a data
feed is shipped to a given slave site that contains the "global" part of the master site 's database for
most of the records that the given slave site has .
3.4
Shell Strings
The Bourne shell and awk playa big part in UAMS. However , taking advantage of the DB M
database requires a clean method of getting the dat a from the OBM to the shell and vice versa.
The Bourne shell has environment variables of the form "name=value". It also has a met hod of
evaluating a string of "name=value" pairs where each pair is separat ed by a semi-colon (i .e . "eval" ).
Hence, the UAMS program "udbget" [Sto96] extracts t he data from the DBM into a string of
"name=value" pairs with each of the requested fields semi-colon separated. Further, the
AMS
program "udbput" [St096J parses the same type of string and inserts the updated data back into
t he DB M.
3.5
3.5.1
Universal Computing Identifiers
Background
A major part of the emphasis of the original UAMS was devoted to the generation of "meaningful"
user id's. Previously, all user accounts were generat ed in the form of "prefi x_count" where each user
shared a "prefix" wit h a ll classmates and had a unique "count". For example, a file st ructures class
with three st1ldents would have three user log on account names generated as "fs1," "fs2," and "fs3."
This complicates the administrative job by hiding the person behind a "f81" account (as the faculty
member assigned the accounts to the students) . In addition, some users had multiple accounts. This
was the result of one student enrolled in several different classes, each with a different computer
account for the programming assignments for that class on the same machine.
16
3.5.2
Creation Heuristics
More meaningful user names were desired . A few experiments wit h the enrollment data led to the
following extensible heuristic
<1.
1. First, all illegal characters are removed from the full name. These include such things as
hyphenation and punctuation. Then t he name is converted to lower case.
2. If a person 's last name is greater than seven (7) characters and their first name is greater t han
three (3) characters and less than or equal to seven (7) characters, t hen their fi rst name is
designated as "word!" and their last name is designated as "word2" . Otherwise, their last
name is designated as "wordI" and t heir first name is designated as "word2."
3. Following is the list of checks for uniqueness. When one of these
datb.~e
probes determines
that the UCI is not found in the database, then t hat VCI is assigned to this user. The first
one to be chosen ends the algorithm.
(a) Up to the fi rst seven characters of "wordl."
(b) The fi rst character of "word!" followed by up to the first six characters of "word 2. "
(c) Up to the first six characters of "wordl," followed by the first character of "word2."
(d) The first five characters of "wordl," the first character of "word2" and the fi rst character
of t his user's middl e name.
(e) The first seven characters of "word2."
(f) The user 's initials; i.e. first character of fi rst , middle, and last names concatenated.
(g) The first initial, their middle initial, and up to the first 5 characters of their last name.
(h) Up to the first six characters of "word2" followed by the fi rst character of "word!."
(i) Up to the first five characters of their first name followed by their middle initial and t hen
their last initial.
17
Name
Bogus Jay Serendipity
Bogus Serendipity J ay
3A
3E
bogus
serindi
jay
bogus
3B
3F
bserend
bjs
jbogus
bsj
3C
3G
boguss
bjseren
jayb
bsjay
3D
3H
bogus j
serendb
jaybs
bogusj
31
bogusjs
bogussj
Table 3.5: Example UCI Generations
Table 3.5 shows sf'veral of the possibilities for a pair of fi ctitious users.
3.5.3
Special Case Users
To handle the special case users such as "root" required several special considerations. Fir t, these
users did not have OS U-.lDs, any enrollment data, and quite seldom a FULLNAME. To cover these
cases, as well as the case of the occasional guest account (or odd software package) that did not
have an OSU-.lD, a simple heuristic was formed: taking the proposed VCI (say "root" ) and using a
"+" prepended to the VCI as the OS U-.lD. Thus "root" would have the OSU.lD of "+root ".
This simplifies some areas of system administration. For instance, all of the users with a plus in
their OS V -.lD field have no OS U st udent or staff id . Therefore they need not be selected for loading
into the card key lo ck software5 .
Also, they a re typically what we call "mechanical acco unts," ie. they come with a n operating
system and do not have a physical person behind them. So when scan ning t he password fil e for
accou nts to set no-login, t he system administrators can llse UAMS as an aid in t his process
3.6
6.
Security I ssues
As in any large dat abase project of this sort, security issues that are in direct contradiction to the
general purpose of the project arise; namely providing the user data. In U AMS, there a re several
types of security imposed on the access to the data to make t he dat a fairly secure .
.tit is extensible, but has served our needs for the last two years.
·5
As described in [SV90b], the Computer Science Department runs a card key lock system on several
labs within the department .
6
This is not an enforced func tion of UAMS, merely an example of llsing t he da.ta UAMS maintains.
18
UAMS assumes that each user on the system belongs to a group of their own . Each user id
number and their group id numb er are identical (for any user) , and t hese numbers are unique
amongst all others on the system. The following security discussion REQUIR ES that this be o.
3.6.1
URI's & Access Control
When all of the programs, shell scripts, and configuration files of a new master, slave, or client
UAMS code set are installed, it is assumed that these fil es are "chown(l)"ed to a part icular u er.
In the case of the UArvIS master and slave code, this user is assumed to be "udb." T he installatioll
script provides all t he "correct" file permissions for every file installed. Once all t he files are owned
by the assigned user, the progra ms and data are secure from t ampering.
Access is granted to the data contained in the database via URI's given the user in question. If t he
default UDBPRIVis selected (during configuration), a user must possess the "udb_priv" URI before
being given access to the data. This privilege is typically, and most securely, a GRANTED right,
outside of the conventional name space of all ot her URIs on the system thus avoiding accidentally
giving a user a URI that will allow them access to the database.
Once a user has attempted to run a C program component of UAMS, a library module written
in C, aUow.c [St096] to be precise, is used to determine if that user has been granted the correct.
URI. If the user is allowed, access is granted . If the user is not allowed, the attempt to gain access
is logged and the user is refused access to t he database .
. one of the shell scripts within UAMS access the database directly. They all rely on C progra ms
to perform the access on their behalf. Thus, using "allow.e" in the C programs secures all the data
contained in the database.
3.6.2
Configuration Spoofing
As discussed in Section 3.8, the configuration can be changed by defining one simple environment
mf'~hanis
variable. This does not, however, change the URI needed to gain access to the database. This
is configured into SRCROOT/h/udb.h during t he configure/ compilation stage in order
to prevent this kind of security attack.
19
3.7
3.7.1
Initial Password Creation
Background
In the past, accounts were typically generated without passwords or a single initial pas word for
the whole class. This posed several problems. Sometimes a malicious user wouLd log onto as many
of the accounts as possible and set a password on that account. T his prevented t he rightful user
from logging in. Another case t hat has occurred is where a new graduate student has been given an
account for the class he or she is teaching. These accounts were also generated without passwords.
However, some of these new students didn't know that a password should be set, thus allowing
anyone t o log into t heir account where such things as grades , student id to student name mappings ,
etc. may be found.
3.7.2
Creation Heuristics
At account creation time, UAMS generates a random password and associates it to the new account.
The generation of the password proceeds as follows:
1. A random number is generated and divided modulo the number of words in the word list. This
word is retrieved and is called "wordl."
2. A random number is generated and divided modulo the numb r of separator characters. T his
character is retrieved and is called "word2"
3. Another word from the word list is chosen, as in "I" above, and is called "word3."
4. The password is generated by concatenating "wordl," "word2," and "word3."
Several examples of t he result of this algorithm would be: sue lcat bob$dog imp!yack
This word is then passed to the DES encryption algorithm that comes wit h UNIX to generate
the encrypted password, and this is also associated with the account. On export versions of Unix,
this will not work, due to the non-DES algorithm being installed in the system libraries.
20
Both the plain text version of the password and the encrypted ver ion are say d in t he database.
Only t he plain text version is t ruly needed; however, the regeneration of t he encrypted version is a
very time consuming process (using the DES algorithm). It is for t his reason t hat we g nerate the
encrypted version only once and then save it for all fut ure uses.
Users are encouraged to change their password as soon as possible, so that it no longer matches
the UAMS database. Their current actual password is not
~ to
r e d ,
only an initial value for the
creation of a new account is stored.
3.8
Runtime Configuration
This section covers the run-time configuration process once a production environment is set up.
3.8.1
The DAMS Master/Slave Configuration File
The file udb.cfg [Sto96] cont ains t he central configuration file in either a master or slave UAMS site.
It is a plain text file and contains comments that outline what the variables contained in it are for ,
as well as configuration comments that allow the program "subst"
7
to provide reasonable defaults
for all variables.
In shell scripts
During the running of any of t.he shell scripts within the UAMS package, "udb. cfg" is read fi rst .
This is the whole purpose in editing in the path to UDBRO 0 Tjconfig/udb . fg during the con figure/compilation stage for all the shell scripts. This is also where the "PATH" environm ent variable
is set. As soon as any shell script is started, the assignment of "PATH" in t his file overrid es a ny
previous value that eit her the user or any external wrapper script may have set .
In each script, there is a variable "UDB_N AME" that is set to the name of the shell script that
is running, BEFORE "udb.cfg" is included into the running shell script . This allows for user defined
triggers to be placed within "udb.cfg" to do special t hings. One such thing, of great use during
debugging phases of the system, is to "set -x" (based on the UDB_ AME of the module to deb ug) .
7
The shell script program "subst" is a part of the USENET news reading package "C-News" .
21
In C programs
Within the UAMS package, in cfgstr.c [Sto96], there is a library C function that parses most of the
data from UDBROOT/config/udb.cfg and makes it available for use within the C fun ctions. Any
procedure may access the variables defined and set in " udb.cfg" in much the same way that shell
scripts do.
In each program, after the user has been validated as authorized to run the program in question ,
"udb.cfg" is read in and parsed to give the program the same definitions.
The UDBCFG environment variable.
In the previous two sections, UDBROOT/config/udb.cfg has been treated as a fixed path. In fact, it
is not. The environment variable UDBCFG may override the definition of UDBROOT/config/udb.cfg
at any time. UDBCFG must point to a file that contains all the same variables as the defa ult one
(in UDBROOT/config/udb.cfg), with possibly different right hand sides, to make the system rUIl.
Both shell scripts and C programs used in UAMS obey this convention.
3.9
Server/Client Model
A server/client relationship exists between any UAMS site and a system that is administered by the
owner of the UAMS server . III this system, any server, either a master UAMS or a slave UAMS,
may provide a data feed to a client system. T he format of the data delivered to the client is client.
specific, and typically is lIsed to generate some end product specific to tha t client .
3.10
Clients
Since there are several UAMS clients, this section concentrates on the largest example, the UNIX
client. The other clients available as UAMS clients will also be hriefl y discussed.
3.10.1
UNIX
This collection of shell scripts reads a data feed from a UAMS master or slave site (Figure 3.1)
and generates the correct password file , group file, and login directories for each new user described
,
-.
I
...
22
uci:epasswd:fullname:granted:major:auto:nuid
Figure 3.1: Sample datafeed for U IX client system
in the data feed. It also deletes from the password and group files all users no longer in the data
feed.
Furthermore, all URIs are propagated to all client UNIX systems from their administering UAMS
server to allow the generation of the URI database for each host . This allows each departmental
machine to make use of all of the enrollment data, the major code, and all of that departmental
UAMS server's unique URIs for its own purposes . One of the uses of the URIs that has been
implemented at OSU is the ability to run various programs (similar to access control lists). Another
is the automated maintenance of mailing lists.
In addition, the UNIX client can provide the following services:
• Validate that certain users remain in the data feed. Without these special users, the data feed
will not be installed.
• Validate that the data feed is for this site.
• Generate a URI database of which users have what rights on this system .
• Generate from the URI database , AT&T System V "cron.allow" - "eron.deny" type security
fil es, from any given URI on the system.
• Generate an additional/etc/group line based on any given URI.
• Generate mailing lists based on:
- Any right that any user on the system has, generates a mailing list.
- Any user that has a right outlined in a list , generates a mailing list.
23
Interface to the Multi-channel Memorandum Distribution Facility (MMDFII) [III84] mail
transport system mailing list configuration mechanism.
3.10.2
POP
The Post Office Protocol (POP) client came about because there was an interest within several
departments to provide mail to personal computers. The POP system, as distributed with the
RAND Corp. :vIH mailer, was chosen by some of them to fill this need. This system had to be
configured for users , just as the UN IX hosts did. As POP uses a password file that is ill many ways
similar to the UNIX password file, this client required several minor changes to one of the existing
'lients, allowing it to run with minimal system administration.
3.10.3
Card Key Lock System
Although not a system that anyone can log into, the Computer Science Department uses a n IdentaCard brand card key access system to log access to the department's various labs and facilities.
It is included here to show that seriously non-standard systems can be supported in a clean and
efficient manner.
3.10.4
Novell
The Novell s version 3.11 client came about because of one of the other department al UA MS administrators. Within the other department, a Novell network was used t o link together several persona l
computers within a student lab. However, all of these computers had to be configured for users,
with much the same information, just as the UNIX hosts that UAMS already served. As t.hi s is
just another type of host , using unique login names and passwords. Consequently, a new cl ient was
written to provide the information.
After researching the Novell manuals and considering the options, the Novell client was written
to generate a data file for the Novell user administration program "MAKEUSER." The UNIX shell
script "gen ..novell" [St096] would keep a list of the users currently authorized for a , ovell site,
compa re that with what UAMS was giving it , a nd generate add and delete commands as necessary.
8
Novell is a registered trademark of Novell Inc.
24
Dotting implies
separate
adm inistration
r------
Master Server
-
- 1
r - - - - - - - -
I
I
____ ____ J
Figure 3.2: Master/Slave and Server/Client Relationships
This preserved the feel of the UNIX client , without having to write a program for a personal
computer.
3.11
Master/Slave Server Model
In order to facilitate the sharing of data, a simple master/slave model was chosen (Figure 3.2).
This represents t he administrative association of the "glob al fi elds" of the UAMS databases among
one another. Hence there must be a mast er UAMS site. This is the site that receives the enrollment
data from the registrar. It is also the only UAMS site that can definitively assign UCls and
UIDs.
Whenever any slave UA MS site needs a ucr and NUrD for a user new to it, then it must defer to
the master UAMS site for t.he definitive information. The master UAMS site also maintains the
master copy of the enrollment data for all users of all slave UAMS sites. T his data is given to the
mast er site after the participating UAMS departments authorize the master UAMS site to have this
data.
The master/slave model allows the master UAMS site to selec t all of the records for a slave
UAMS easily. This typically is based on enrollment data held in the Auto and Major records (for
students). Additionally, to select all non-standard records (for such things as "root" , "uucp" , faculty,
etc.), a specialized GRANTED right , unique to that slave UAMS departmental administration, is
used.
--
25
To provide each participating department autonomy over their users , only the "global fields" are
shared among the different UAMS sites. This implies that any URI given to a user on th master
system as a GRANTED right is not propagated to any other UAMS slave site. This includes the
specialized GRANTED right , as the GRA TED field is not in the "global fields" list of data being
shared. This also allows each departmental UAMS to have overlapping (and possibly duplicated)
GRANTED right URIs. Further, it allows each departmental UAMS to use the COM MENT field
as they determine, without having to conform to some standardization scheme.
3.12
3.12.1
Master to Slave Messages
Batch Load
Once per day, the master site checks its database to determine whether it has been modified. If it
has been modified, then the master site prepares a data feed for all of its slave sites. This is on the
design assumption that a ll slave sites would be interested in any changes to the databas . The data
feed to the slave sites is timed to trigger a cascade of the data to t.he clients of that part.icular slave
server site. The processing of "new" data feed is performed before the slave sites processin g for dat.a
feeds from that slave site for its client sites (Figure 3.3).
The actual data feed is composed of the "global fields" of the database (Section 3.1.2). These
are encapsulated with data to aid in tb validation of the data in the data feed and elec tronically
mailed from the master to each slave server site. Which records are sent is based on the selection
criteria set out for the slave in the mas ter site's RAF (Section 3.3),
This data feed is augmented by a password and an encrypted password at the slave site. In
addition, t he last updated time is set for this record. Through the record's history on this slave site,
the last update field is updated every time the record is modified by either a "batch load" data feed
or by the slave site administration modifying the data.
-26
uCI=Joe
osu_id= 111223333
nuid=-l
fullname="Joey
Smith"
o
Master=A
~
START:CEA T_ASD:udbqry
CEAT_ASD:l 1 1223333:
Joey Smith:joey,js
END:
udbjoe
I granted=OFF_CEAT
-
mc
-E~
uci=joeys
osu_id=111223333
nuid=1234
fullname="Joe Y Smith"
o
uci=joeys
osu_id= 111223333
fullname="Joe Y Smith"
nuid=1234
Time
~
I granted=CEAT_ASD
Igranted=OFF_CEAT
cronjob
gen_asd CEAT_ ASD
~
cronjob
START:CEAT_ASD:maiijob
udbput
111223333:Joe Y Smith: 1234:joeys ...
gen_unix OFF_CEAT
END
START:OFF_CEAT:mkaccts
o
DBM record vi w
joeys: ... :Joe Y Smith: 1234:0FF_CEAT
.6.
END:
Email message between
hosts
Figure 3.3: User Query Event Sketch
o
27
if (osujd is 'OT in the master ite' DBM)
if (some requestedjd field is non-blank)
if (reque tedjd_l is NOT inuse)
assign requestedjd_l to osujd;
else if (requestedjd _2 is OT inuse)
assign requestedjd_2 to osujd;
else if (requestedjd_3 is OT inuse)
assign requestedjd_3 to os uJd;
fi
fi
if (uei field is still blank)
create uci for osujd using fullname;
fi
create nuid for OSlLid from unused list;
fi
tag record for return to client for three weeks
update lupdate to today's date
Figure 3.4: Master Side Processing of User Query
3.13
3.13.1
Slave to Master Messages
User Query
Th e user qu ery mes age is generated on a slave site when the administration of the slave site attempts
to create a user 's recoro for which there is no pre-existing data on that particlliar slave site. As
shown in Figure 3.3, t his message is generated, transmi tted, and processed in real time when the
slave site's administrator first reques ts the creation of new user da ta.
The record contains the OSU.lD, F ULL. A ME, and (optionally) the requested Ucrs for this
user. On the master site, the process outlined in Figure 3.4 is triggered by the receipt of the record
and is used to fulfill the request.
At the end of this procedure, the (possibly) new record is given expiring GRA TED right on
the master site that will select this record to go back to the requesting slave site via the rules in the
master site's RAF file. This GRANTED right is typically set to expire in t hree weeks. This allows
the slave site up to three weeks to receive notification of the creation of this new record. At the
end of this period , the GRA TED right that for cibly shipped this record to the slave site is expired
from the GRANTED field of the master site's record (see Section 3.2.3).
28
llci:osujd:nuid
Figure 3.5: Sample Slave to Master VOTE Data Feed
The mechanism whereby the slav · site keeps this record active on the master site is covered in
Section 3.13.3.
3.13.2
User Remove
When a slave site finall y needs to remove a user record from its site, it generates a "user remove"
record . This typically is due to the slave site running a program that determines that t he record in
question does not have any propagation to any of tha t slave's clients, and furth er, has not had any
activity for a period of one year (see the manual page for "udbpurge(l)" [St096]).
On the mas ter site, this record triggers a check of this user's record to make sure no GRANTED
right record on the master site continues to propagate this record to the slave site.
As in the case of the "user query" record, this record is generated, t ransmitted, and processed
in real time. This record's usefulness has been great ly augmented by the "vote" record, descr ihed
in Section 3.13.3.
3.13.3
Voting and Expiration of Records
Once a month, all slave sites "vote" for those VCI, OSU...ID,
UID tuples that they have in
use. On the master site, each "vote" is checked to determine whether the VCI, OS ...ID, NUID
tuple is correct. If there is any problem, th e record and its source are noted in a log fil e for hum an
intervention. Otherwise, the LUPDATE fi eld for the user record associated wi th the tuple is updated
to the current date. On the master site, a record continues to exist until the following conditions
are met:
1. There are neither any AUTO nor GRA TED rights associated with the user. This is typically
associated with the person no longer being enrolled at the university.
-
29
2. The record has not been touched in a period of one year. This is indicated b a on y ar old
LUPDATE field.
Special case users, like "root" and "uucp" are voted for by all slave sites every month , t heir
records never expire at the master site. However, if a user 's record meets the criteria above after
dropping out of school, the record on the master is eliminated. This a llows t he user's UCI and
NUlD to be reused for the first new person who enters the university and who has a fullnam e that
matches the generation criteria outlined in Section 3.5.
Each slave follows the same process. Each record is scanned to determine whether it meets the
criteria outlined above. If it does, that record is removed from this slave site. As soon as the record
is removed, this slave site no longer votes for that user . When all slave sites do not vote for this
user, the one year clock starts. At the end of the year, the user's record is removed from the master
site (as outlined above).
The listed procedure implies that. once a person leaves the university, their record actually sits
on the master site for a period of two years. The first year is spent awaiting the slav sites to expire
the record on their local da tabase, the second from t he master site. This gives a user a period of
two years in which to reenter the university and still have the same UCI and NUlD .
3.14
Summary
The merger of UDB and UAMS provides to the asu environment most of t he features necessary
for a CFNS. Among the most important is t he concept of one user id (UCI) and one numeric user
iel ( UID) per user (a.<; ba.<;ed on the aSUjD number).
Unfor t unately, one fact that prevents UAMS from filling the role of CFNS totally is that not
everybody in the institution has a record in UAMS. This is because UAMS only receives records
for those users whose clepartments have requested to be part of the UAMS project. Furthermore,
as only those departments t hat have asked to join in the services that UAMS provides participate
in the system, not all departments are served.
With th e creation of CF S services at the instit ution level, t he central goal of one UCI and one
-
30
NUID per OSU..lD can be achieved. The central administration of the in titution can imply assign
one
CI and one
UID per OSU..lD for all members of the instit ution. In addition , a centrally
maintained CFNS can provide CFNS services to a wide variety of platforms given a tandardiz d
protocol to many departments. This then is the goal of UAMS and this thesis.
-
.....
CHAPTER 4
CENTRALIZED FLAT NAMESPACE SYSTEM
4.1
A Centralized Flat
What is it?
amespace System is a mechani m whereby al l users of an enterprise's computer
systems has exactly one unique login name. In the case of most computer operating systems, thi
is extended to include one unique numeric id also. These two pieces of data are linked to some part
of the user's university data, such as employment records or enrollment data.
Over the life time of the user's association with t he university, the unique login name and Ilumeric
user id are stable, that is they do not change without good cause
1.
In all database views of the university database that include t he unique login name and numeric
user id, the same data is shown, to all users. Further, there exists at most one view of t he data
where either of these fields will be changeable associat ed with either becoming enrolled for the first
time or upon employment by the university.
As has been covered in t he previolls chapter, UAMS was designed to solve many of these problems
for the cooperating departments. However, viewed in the larger sense of a CFNS for t he entire
university, many of the problems that UAMS solves are duplicated with good reason.
4.2
Benefit s
The benefits of having a CFNS installed and operational within t he university varies depending
upon the point of view. The following sections describe the benefits to t he individual users, the
system administrators, and the university
4.2.1
3.'3
a whole.
Provided to the Individual Users
Listed below are some of the benefits users may see as a result of a CF S.
1
Some of the "good causes" include marriage, divorce, and legally having a name change.
31
32
Uniqueness
When a user first enters t he CF S system, they are given a unique login. In theory, they will have
this account name for their entire as ociation wit h the enterpri e. This allows such things as backups
and mail to be uniquely identified with a user across t he enterprise. Since this information is keyed
to user 's association with the university, even years hence, each user can be identified uniquely and
the user 's files retrieved with a good level of certainty that they are being retrieved for t he correct
''"<j
....I
'~ I
person.
~'
I
'~ I
'"
Adultness
Closely related to uniqueness (covered above), there is the benefit of adultness that is imp osed
Oil
users. \Vhen a user is given only one user id and is told that that id will be theirs for their entire
university st ay, any and all acts perpetrated by this user will be attached t o t his id also. Hence,
doing malicious acts from the given id might be viewed by the more t houghtful user as "poor."
Interdepartmental data sharing
In the past if a user wanted to have t he same data in two accounts, their only real opt ions were
along t he lines of mailing the data between the two acco unts. Wit h a CF S in place on all of
the hosts involved, it is possible to automount t he data across depar tmental boundaries wit.hin the
enterprise. This is a direct result of havin g the UCI and NUID tJw same for each user on any CFNS
administered host .
In fact, an enterprise wide file server might be employed to provide a cent ralized repository for
all user data. Individual depart ments can then concentrate their computing facilities on providing
computing platforms that are appropriate to t hat department's needs and leave t he file backup and
maintenance functions to a centralized service organization .
4.2.2
Provided to the System Administrator
In addition to the benefits that the user sees, a system administrator at a university also sees the
benefit s listed below as a result of using CFNS.
po
33
Start of semester crush
At the beginning of each semest er, there is a large enrollment influx of new user, mo tly students.
To create all of these accounts by hand would be impossible. With a CF S in talled campus wide,
adding an entire class of students to any machine across campus is as simple as adding a few lin s
to a configuration file , running a new enrollment data base through the system, and installing the
resulting password file . This entire process can take as little as 30 minut es .
Mail lists
In t he past, different instructors have tried to keep track of which students are in their class for
purposes of a class mail list. CFNS automates this procedure and makes sure th at the list is correct,
up to the last enrollment data feed .
4.2.3
Provided to the University
In tll(' larger pict ure, a CFNS provides the following for all UNIX clients administered from one site :
• One login name and nl1meric user id for a user for their entire association with the enterprise.
• One account per user per machine, even if m ore thaI! one class is taught on t hat machine.
Therefore, there is no a mbiguity in which class acco unt maps to which user (t here is only one
account).
• Abilit y to authenticate backups for many years to come. Ie. ownership of t he backups for t he
user "bob" can be identified as belonging to the person with OSU id number "111223333".
• No 'inactive users' on mailing lists as these are updated each t ime the password fil e is modified.
4.3
Costs
The development of UAMS, both on a site basis and later on t he wider university basis , addressed
many of the problems outlined in this thesis satisfactorily. However, these solutions did come at a
cost, and as with any CFNS implementa tion "after the fact," some of these costs a re quite large.
34
4.3.1
Preliminary Costs and Tasks
The establishment of a campus wide centralized flat name space system implie an incredible amount
of work t o arrange at this late date in the development of OS U's campus computing environment.
One major tasks is the associating of an OSU id number with each and every user 's account. Special
numbers must be assigned to the mechanical accounts, such as "root" and "uucp," so that t hey can
participate in much the same way as normal users.
Once all of the UCI 's on all systems have an OS U id number associated with them, each user's
account must be compared against all others across campus. This determines whether u er has any
·'11
."
ot.her accounts a cross campus (as determined by the uniqueness of the OSU id number), as well
as whether there is anyone else with the same UCI across campus (as determined by the required
uniqueness of the UCI's).
Those users who have the same UCI all across campus i>hould have
no change. Those users who have multiple login names that are not unique must be dealt with
individually.
Since some users must have their login names changed to meet the new criteria, there can be
some negative emotional response. Some users may even t ake offense at th is entire process . A few
sp eculative situations may arise as a result.
1. The user "bob" on one system whose name is changed to sometbing ete, say "bsmith ," must
unsubscribe to all mailing lists before the switch, then resubscrilw wit.h t.he new login name
to avoid loosing his mail. Analogously, if someone else bas a login changed to "hob," the ma il
may get misdirected.
2. Professor "smith" comes back from vacation and is now "j srnith " . After several failed attempts to login, the professor comes to the system administrator to ask what happened. After
hearing the explanation, the professor is displeased with the change. In fact, professor smith
has been putting email address on the net , in research papers, etc., as a source for some
data/program/etc. that [sJhe is providing t o the net community. Now the linkage between
35
"smith" and professor smith (as jsmith") must be reestablished. Also, the person who receiv s
"smith" as a user id is inundated with requests for which there is no reasonable r span e.
3. Some user, "tom," knows the change is about to happen. Wanting to be offensive to t h person
who will be inheriting the "tom" account , this user posts something extremely offensive/stupid
to USENET. After the change, the new person, possibly an upper level administrator , receive '
"tom" as a user id. Due to the propagation delays thru USENET. the new owner of "tom"
now receives the replies to t he postings made by the original "tom," for which t here is no
reasonable response.
It must be stressed that the better informed the user population is about both why these changes
are happening and how t hey can benefit , the less reluctant it will be. Hence, the defusing action to
be taken well before events get out of hand is to inform the user population of the benefi ts of t.his
change.
4.3.2
Continuing
One of t he continuing problems that UAMS must deal wi th on the OSU campus is t hat of OS JD
changing. A bit of background is in order:
In t he early 1980's , OS U started giving it's students photo iel's with a printed OSUJD number.
These numbers typically looked like 000123456, and were created with t he idea t ha t one day they
would be replaced by Social Security numbers. In fact , in 1986 or so, OSU made that switch and
all students had to pay the bill of approximately $10 for a new OS U photo id.
Unfortunatel),', this was mandated by t he finan cial aid department , which said, in so ma ny
words, "to get financial aid on this campus, you must have your OSU.lD match your Social Securi ty
Numb er." For most of the natively born Am ericans, t his was not a problem. However , for the
international student body, t his was a bit more involved.
The solut ion for OS U is to give an international student a photo id wit h one of the old style
000123456 OSUJD numbers, since the administration had to be able to track the student, when
th ey first arri ved on campus. Then later , after the student had applied for a Social Security number,
.t.
36
change the st udent 's OS .JD number to the Social Security number. Fr.·om that time forward, all
enrollment data contains the new number.
The affect this had on UAMS was suddenly, the user wit h OSUJD number 000123456 was no
longer enrolled in anything. Hence that user 's account , say "bob" , was closed. At the same time
a new user with OS UJD number 111223333 was enrolled in some new classes. As the user name
"bob" was already in use, a new one "bsmith" was created, along wit h a new
UID, password. etc.
The user would then come in and ask, "why doesn't my account work anymore?" . After a bit
of investigation, the two records for this person would have to be tracked down and merged, along
with the data in their, now , two separate directories. The user would be reinformed as to what the
"bob" account's password was, then the merge would be fin alized. Typically the next day, the user
"bsmith" would be removed from the system and the user "bob" would be reattached to the fil es
that used to belong to that user, completing the process.
Upon the installation of a CFNS, this "problem" should go away. With a centralized authority
in charge of keeping track of the UCI and NUID when a user's OS UJD changes, no UCI and
110
NU ID change should occur since no "new" record is being created.
However, until the legacy accounts are merged into the CFNS, t his merger process takes on a
larger scope.
ow, instead of one user 's account on one system in one department, t he capabili ty
exists for one user 's account merger to affect literally dozens of individual accounts spanning the
entire university.
4.4
Summary
This chapter has covered some of the costs and benefits associated with the change in paradigm to
a Centralized Flat Namespace System.
Although most of the costs can have wide ranging consequences , they are for the most part one
time costs. This fact makes these costs more bearable.
~l
..
CHAPTER 5
BLACK BOX DESCRIPTION OF A CFNS
This chapter defines what a Centralized Flat Name Space system that would interface with
UAMS would look like. Many of the terms used in t his chapter have the same meaning as in the
previously sections about U AMS.
5.1
Minimal Data Structures Needed
The CFNS needs a subset of the database field s that UAMS uses. Due t o the operation al usage of
the CFNS (as outlined below) , these structures are best split among several constituent databases .
These databases would be joined (on t he OSU J:D field) to form the appropriate fields for the given
request. These databases are described below.
5.1.1
People Database
This database would be comprised of fields, each operationally described in Table 3.3, and
presented in Table 5.1. The People Database would be joined to the others descried in this section
to form the overall view of t he da tabase. It would be maintained by that part of t.h e registra.rs
system that deals with name changes among students . These tend to occur as a result of marriages
and divorces , but other causes do a rise. This relation could also he used to maintain other data,
such as preferred email addresses .
5.1.2
Association Database
The layout of this database is presented in Table 5.2. The Asso ciation Database would be th e
primary location for selection criteria in the creati on of views of the CFNS database. The main
mechanism for this is the use of the subf ield code would indicate what kind of data subf i e ld
osujd
issue
fullname
Student /Faculty identification numb er (KEY)
Student/Faculty ID card issue number
Full name of the individual, as defined by the university
Table 5.1: People Database
37
38
osujd
subfield code
subfield data
St udent/Facul ty identification number (KEY)
A type for t he data field below
The content of type listed in the subfield code a bove
Table 5.2: Association Database
osujd
subfield code
sub field data
Student/Faculty identification number (K EY)
MA JOR
A numeric major code
Ta ble 5.3: Association Database, Example 1
data would contain. This allows a simple selection criteria to elimin ate larg numbers of the records
cont ained in this database.
In Tables 5.3, 5.4 show two examples of how records in t his database could look. In the fi rst
case, the record is identified as a major code record where the actual major code is cont ained ill
the subfield data would be, in this case , a four digit number. In t he second case, t he record is
identified as an enrollment. record where the actual class number (depar tment prefix, course number,
section, and type) would be contained in the subfield data.
This relat ion would be joined to the ot hers to form t.lte overall view of t he database. Th is
database would be linked into that pa rt of the registrars system that deals wit h enrollment an d
college affiliation, among others.
5.1.3
Cross Reference Database
The final CFNS database would be the cross reference database. T his would be used t o form j oins
across the databases of the CFNS. It would be described as stated below , each fi eld as described ill
Table 3.3.
This relation would be joined to the others to form the overa ll view of the database. This
osujd
subfield code
sub field data
St udent/Faculty identificat ion number (KEY )
ENROLLMENT , Spring of 1996
A class t hat the given user is enroJled in
Table 5.4: Association Dat abase, Example 2
"1
"
"1
~=
::>
"4
"l
1;1
.
""
39
osujd
uci
nuid
Student/Facul ty identification number (KEY)
Universal Computing Identifier (KEY)
Preferred Numeric User ID for NFS (KEY)
Table 5.5: Cross Reference Database
database would be linked into that part of the registrars system that deals with t he instances of a
student changing an OSU student/staff id number.
This relation is the key to the CFNS. It contains the crux of what the CFNS is designed to
maintain. The contents of each of the individual fi elds within it is unique. Th at is for anyone
4:
user recorded in this data field, their OS UJ:D, their UCI a nd their NUID would be uni que among
all other entries in this database. This relation, along with the others previously mentioned in t hi
section, duplicates the data content of the global record out of UAMS.
5.2
Supported Client/Server Functions
For the following discussion, a database remote procedure caUs (RPC ) wiII be th e model for the
interaction between the server and the clients in the CFNS system. This is in part driven by the
need to secure the data t.hat exists on t he server from those who would be accessing the da t.a. The
RP C procedures would have access to the data. The RPC user would have access to the RP C, bllt
not to the data. Hence the RPC user is insulated from the data by t he view of the data the following
RPC functions provide.
5.2.1
Make Return Set
This RrC will create an empty data set that will contain t he keys into the CFNS that are selected
by the Query By functions . This RPC has one argument, the Site Name that may be used by the
Vote For Set command and the Return Set cornrnallcL
5.2.2
Query By
This RPC will add CFNS keys to the return index data set created by Make Return Set. There
are five different instances of this RPC , each having as an argument the search key as given by t he
40
osujd
issue
fullname
major
uci
nuid
auto
Student/Faculty identification number
Student/Faculty ID card issue number
Full name of the individual, as defined by the university
Student department affiliation
Universal Computing Identifier
Preferred Numeric User ID for NFS
Automatic enrollment rights
Table 5.6: Return Data Set Fields
instance. Namely, these five return types would be OSUJD, NUID, UCI, class prefix, and MA JOR
.,
"
"
.1
"
~I
code.
5.2.3
Return Set
This RPC returns one record for each user who has a key specified in the return index data set ,
created by the Make Return Set RPC call and populated by the Query By RP C caU(s) . These
records will contain the data outlined in Table 5.6.
5.2.4
Vote For Set
This RP C will add a vote record for t he Sit e Name (that was specified in the Make Return Se t
RPC call) for each CFNS record that has a key specified in the return index data set created by the
Make Return Set call.
5.2.5
Merge Ids
This RPC is used to handle the cases where a user is ent ered into the CF S database wi t.h two
different OSU id numb ers. This RPC will have four arguments as show in Figure G.7.
The first argument would be referr ed to as the "old" OSU id number. This is typically the
original OS U id numb er that was assigned to the student prior to that student 's acquiring a Social
Security numb er.
The second argument would be referred to as the "new" OSU id number. This is typically t he
Social Security number sty le OS U id number. For the purposes of t he merger, this will be the
resulting OS U id number for this user after the merger.
41
old_osujd
new_osujd
ucUoJ<eep
nuid_toJ<:eep
Indicate the OS U student/staff id number of t he record
t hat is to be considered the older of the two to merge
Indicates the OS U student / staff id number of the record
t hat is to be considered the newer of the two to merge
This parameter indi cates whether the uci in the record
indicated by old_osu...id or t he uci in the record
indicated by new _osu jd should be kept in the new record
This parameter indicates whet her the nuid in t he record
indicated by old_osujd or the nuid in the record
indicated by new_osu...id should be kept in the new record
II
Table 5.7: Merge RP C P arameters
"
'I
'I
"~ I
The third argument would say that in t he resulting merger of the "old" and t he "new" OS U iel
number records, either tIl(> "old" record '8 UCI or the "new" record 's UCI would be retained.
The fourth argument would say that in the resulting merger of the "old" and the "new" OSU id
number records, either the "old" record's NUID or the "new" record 's NUID would be reta ined.
Experience with UAMS has shown that one of the most troubling aspects of keeping t he database
sYllchronized with the real world is maintaining the veracity of the OSUJD numbers. This is in
part due to the fact that due to certain restrictions placed upon the keeping of student records for
financial records, their OSUJD !l1Jmbers a re preferred to be their Social Securi ty Numbers . However,
due to the way the enrollment system works, when a user changes their OSUJD number, the only
indicat ion is t hat one user, with an old style id number, drops all enrollment and another with a
similar (but not necessarily the same) name enrolls in some (but not necessarily all) of the same
classes.
This RPe is a concession to the reality that t he CFNS database will most likely never be ill
complete synchronization. This RPC will allow the various site administrators to do some database
auditing.
5.2.6
Create A New User
This RP C allows sites other than the central enterprise administration to create new users, previously
unknown to the system. It takes as arguments an arbitrary OSU JD numb er l , a text string that will
1
Typically these users will have a "+" record as described in Section 3.5.3.
.:
42
be considered the FULLNAME field, a Suggested UCI, and a Suggested NU ID. It then would follow
the general UCI creation heuristic as outlined in Figure 3.4. Lastly, it would return the generated
data as outlined in Table 5.6.
5.3
How it aU Fits Togethe r
The key concepts presented in Figure 3.3 and Section 3.13 are what the previously out lined RPCs
would replace. These messages, passed between the CF S database server and the departmental
'I
"
"slave" UAMS servers, would provide t he individual departments t ha t currently participate in the
UAMS system the same basic services. The only real change t o Figurereffig:udb qry would be to
eliminate the time delays between events. This would allow faster transaction processing time2 .
Once the CFNS database and server were in place and operational, the slav U AMS database
servers could be migrated away from the current master UAMS server onto the CFNS database
server.
Further, as the individual departments would still have t he fun ctionality of their slave
UAMS servers, their day to day operations should not be impacted . Hence all of the services th at
these slave UAMS servers supply to their departments should not change.
In addit ion, as the constituent databases outlined in Sect ion 5.1 , once joined by the various RPCs
outlined in Section 5.2 , would eliminate the need for t he master UAMS server 's database. In fact,
t he ent ire reason for t he master UAMS server would be eliminated with the creation of a CFNS.
Thus t he master UAMS server could be halted.
5.4
Other Issues
There are several other issues tha t will no douht come to light in the process of t ry ing to implement
a CF S. Some of those foreseen are covered in the t he following sec tions.
5.4.1
Data Base Inconsistencies
As has been ment ioned, synchronization of the CFNS that UAMS has ma int ained with t he data
from th e regist rar has been difficult. Wit h the advent of a CFNS supp orted and maintained as part
2
Al though it would allow it , the CF S would not necessarily force it.
.,II
a
I;
43
of the central campus computer enrollment system , notification of changes in data can be provided
to the CF S automatically. Hence, the entire scenario given in S ction 4.3.2 can be avoided.
5.4.2
Purging the Data Base of Old Records
The database that UAMS currently maintains contains many cases of "duplicate ids" . This is a
result of the OS U id changing problem outlined above. In t he final version of the CFNS database,
these users would have their records merged under their current OSU_ID number to consolida te the
logins and to assure the "one user , one login" premise of the CFNS. This will be simplified once
the CFNS is in place as the central university administrative da.tabase has the mapping of which
old style OSUJD maps to which user as part of their historical database. This mapping, here to
unavailable to U AMS, will make the merger of these two records technically a fairly easy procedure.
In the practical implementation of this purging, some of the same problems addressed in Section 4.3.1 may occur. In addition, the merging of files from t hese t.wo distinct user accounts may
prove quite difficult.
5.5
Summary
In talking about a CFNS, this chapter has shown how a CFNS will face many
or t.he same problems
currently faced by U AMS. Further, a CFNS properly interfaced to t he central cam pus admini strative
databases would be able to c1eal with some of t hese problems in a far more automated way than
currently available to UAMS . These concepts suggest that a CF S would allow a performance
beyond what is currently available from U AMS while not sacrificing those services current.ly a vaila ble
to the individual participating department.s.
CHAPTER 6
PROPOSED FUTURE WORK AND CONCLUSIONS
6.1
Future Work
The ultimate form this code may take is hard to ga uge at this point. This section presents a few of
the directions the UAMS project could take. This is of course, not a complete list.
6.1.1
UAMS-lite
Given that empirical tests of speed prove satisfactory, one thing that conld be done with UAMS
would be to move the entire database onto a central host and use a commercial databa
and
a commercial access system to grant access to the data remotely. Then the only blocks of code
existing in the UAMS-lite would be those involved with processing these data streams into the
correct format for a given client.
This approach would allow all of the current "manual" maintenance of t.he relational database
that is UAMS to be offioaded onto the commercial database engine. Further, as the da tabase would
t hen truly be a relational database, the time currentl y spent maintaining the inverted indices into
the DBM based database would be eliminated.
This approach would violate several of t.he original design goals of t he original UDI3. It would
involve the use of a commercial database engine and
<1,
presumably, commercial access method , both
of which would be purchased. Further, t he use of these commercial products might limit which kinds
of platforms could t hen b e UAMS-lite servers.
6.1.2
Real Time Access to the Master UAMS Site
One of the original design goals of the original UDB was to avoid using such things as TGP lIP
networking. At the time, there were several systems within the Computer Science Department that
simply did not have TCP lIP networking interfaces. This caused UDB , and later UA MS, servers to
rely on electronic mail interfaces as the da.ta transport method between servers.
Currently- however. all of the UAMS server sites have TCP lIP. Hence, server to server commu-
41
~ I
45
nications could be moved from the currently slow email batch processing system to a mor direct
group of peers topography_
6.2
Conclusions
The current state of this project affords the system administrator an extremely useful set of tools
for managing the user accounts across a heterogeneous computer network. These tools will continue
to be used here at OS U for many years to come and should be easily modified to support any new
operating system that the Computer Science Department might choose to run.
I
i
)
I
II
1/
~ I
BIBLIOGRAPHY
[BGMR94] Andrew Bettison, Andrew Gollan, Chris Maltby, and
eil Russell. Share ii - a user
administration and resource control system for unix. In Usenix Conferen ce Proceedings,
Large Installation Syst ems Administration V [USE94], pages 51- 60 .
[CKCS90]
David A. Curry, Samuel D. Kimery, Kent C. De La Croix, and J effrey R. Schwab.
Acmaint: An account creation and maintenance system for distributed unix systems. In
Usenix Conference Proceedings, Large Inst allation Systems Administmtion IV [USE90j,
pages 1- 9.
[DLM90]
William A. Doster, Yew-Hong Leong, and Stephen J. Mat tson. Uniqname overview. In
I
I
Usenix Confe1'ence Proceedings, Large Installation Syst ems
Adm
i ni,~tmo
IV [USE90],
I't!
pages 27- 35.
[EVS88]
II
Mark E. Epstein, Curt Vandetta, and J ohn Sechrest.. Asrnodeus - a daemon servant for
th e system administrator. In USBNIX Conf erene Proceedings, S7J.mm er USENIX '88,
pages 377- 391. USENIX Organization, .June 20-24, 1988,
[Fin92]
Jon Finke. Automated userid management - simon management system . III Community
Workshop , pages Subjec t Area 3, Paper 5. Rensselaer Polytechnic Institute, 1992 .
[Har94]
M. Harlander.
Central system administration in a heterogeneou, unix environ ment:
Genuadmin. In Usenix Conference Proceedings, La1'ge Installation Sy.9t em8 Admini.s tratzon V [liSE94], pages }- 8.
[III84]
II
Douglas P. Kingston III. 'lrndfii: A t echnical review. In Usen ix Conference Proceedings,
Summer Conference, Salt Lake City, pages 32- 41. USENIX Organization, 1984 .
46
47
[Inf91]
Information Builders, Inc. EDA API/SQL and EDA /Structured Query Language Reference Manual, 1991.
[Sto93]
Roland J. Stolfa . Simplifying system administration t ask : The uams approach. In
Use nix Conference Proceedi.ngs, Large Installation Systems Administration VII, page
203- 208, Monterey, California, USA , November 1-5 1993. USENIX Organization.
[Sto96]
Roland J. Stolfa. Uams: The man pages. Techni cal Report OS U-CS-TR-96-2, Oklahom a
State University, Computer Science Department , 219 Math Sciences Building, Stillwater
OK 74078, May 1996.
[SV90a]
Stephen P. Schaefer and Satyanarayana R. Vernulakonda.
newu:
Multi-host user
setup. In Us enix Conference Proceedings, L arge Installation S ystems Administration
IV [USE90j, pages 23- 26.
[SV90b]
Roland J. Stolfa and Mark J. Vasoll. Udb - user data base system. In Us enix Conference
Pr·oceedings, Large Installation Sys tems AdministratIon IV [USE90J, pages 11 15 .
[Urb9U]
Michael
rban. Gaud: Rand's gronp and user database. In Usenix Co nfer·ence Proceed-
mgs, Large Installation Syst ems Administration IV [USE90], pages 17- 22.
[US E90]
USENIX Organization. Us enix Co nference Pmceedings, Large
In.
~ t(l
ation
S ystems A tl-
rninistmtion IV, Colorado Springs, Colorado, USA, October 17-19 1990.
[ SE94]
USENIX Organization. Usenix Conf erence Pr·oceedings, Large Installation Systems Admimstmtion V, San Diego, California, USA, 1994.
APPENDIX A
GLOSSARY
48
49
CFNS Centralized Flat Namespace System. Account management paradime where each phy ical
user is granted one and only one login name and one and only one numeric user id number.
Login Name A text string that is used as a nmemonic for the computer to distinguish one user from
another. Login Names are typically converted to a
UID by the operating system improve
performance. See also P UD and UCI.
NFS The Network File System. Used to allow heterogenious computer systems to share fil es across
a computer network.
NUID Numeric User IDentification. Used by operating systems to internally differentiate users.
Password An access control mechanism common among commercial operating syst ems to secure
the dat a belonging to any user.
POP Post Office Protocol. A method of storing and retrieving electronic mail from a centralized
spooling/ storage site.
PUD Personalized User iDentifier. A t erm used by the Computing and Information Services group
on campus to describe personally chosen login names. Synonomous to UCI.
RAF Rights Alias File. Central configuration mechanism on a server site t hat defines which URI's
affect the transfer of a user's data from the server to a given client. See Sectioll 3.3,
RPC Remote Proceedure Call. A set of rout ines the a llow application programs to execute proceedure calls across the network. Destination machines may be heterogeneous[Inf91].
VAMS The User Account Management System. Was t he successor to UDI3.
VCI Universal Computing Identifier. Synonomous to login name for most purposes. See Section 3.5.
50
UDB The User Data Base system . Existed as a distinct software package from 1987 through 1990 .
Predecessor to U AMS.
URI Universal Right Identifier is a text string given to an UDB jUAMS record that associated that
record with some group of other records . Examples include class enrollment right, major
codes, etc.
VITA
Roland Joseph Stolfa
Candidate for the Degree of
Master of Science
Thesis:
UAMS, A STUDY IN SYSTEM AD MI ISTRATIO N AU TO MATIO
Major Field:
Computer Science
Biographical Data
Personal Data: Born in Ardmore Oklahoma, on December 20, 1963, t he son of
of James and Pauline Stolfa.
Education: Graduated from Ardmore High School in 1982;
attended St. Gregory 's College 1982-1984; graduated from Oklahoma St at.e
University, Stillwater Oklahoma in 1986 with a Bachelors of Science in Computer
Science., Completed the requirements for the Master of Science degree wit. II
a major in Comput er Science at Oklahom a State University, May 1997.
Experi ence: Syste m Administrator , Depa rtment of Electrical and Computer Engineering,
Oklahoma State University, August , 1985 to May 1987. Data Communication
Specialist , University Computer Center, Oklahoma State Uni versity, January 1988
to July 1988 . System Ad ministrator, Computer Science Depa.rtment , Okla homa
State University, July 1988 t o present .