Re: User account [Summary]

From: Paul Gill (paul@concour.cs.concordia.ca)
Date: Thu Dec 06 1990 - 22:07:12 CST


The original question was:

How do you handle user accounts (>500), in an heterogeneous
environment with more than one system administrator?
        - Home directory structure. [/home/{ugrad,grad,faculty,staff}/username]
        - UNIX uid assignation. [staff is between 1000 and 1100]
        - Distribution of passwd entries.
        - Replacement for NIS. [was yellow page]
        - Public domain software that you use.

First a few remarks. The Public domain software item intended for the
handling of user account so I will not mention other software. The
question is a difficult one and answering it is a time consuming task,
I which to thank all of you who took the time to answer. You are:

Stacey L C Clark <stacey@ecn.purdue.edu>
Mike Bauer <bauer@cns.ucalgary.ca>
Jacques Beigbeder <beig@frulm63.bitnet>
Michael Helm <mike@inti.lbl.gov>
Jeff Nieusma <nieusma@eclipse.colorado.edu>
Sumant Hattikudur <hattikud@buster.cps.msu.edu>
Tony Dale <tony@cosc.canterbury.ac.nz>
Richard Elling <elling@eng.auburn.edu>
Upkar Singh Kohli <upkar@wsu-eng.eng.wayne.edu>
Ron Vasey <vasey@mcc.com>
G. Roderick Singleton <gerry@jtsv16.jts.com>
Steve Simmons <scs@lokkur.uucp>
Ron Madurski <ron@drd.com>
Mike Raffety <oconnor!porsche!miker@oddjob.uchicago.edu>
Timothy G. Smith <timsmith@sun.com>
Craig Everhart <Craig_Everhart@transarc.com>

Here is a short summary of the most significant answers. I hope none
of the poster will find my editing outrageous, I did my best. I will
be happy to mail the unabridged version to anybody who request it.
The long version is 50K and only mailer trace and repetition of the
original question have been removed.

Purdue U. uses ACmaint, a locally developed package. Others use
SUN's NIS and Automount which does not address the mutltivendor
problem. Some uid assignment policies are presented. The Usenix LISA
IV conference proceedings has 5 papers on the subject, I was there and
I read them, I wanted to know what YOU are doing.

Here goes... "[ ]" shows edition.

From: Stacey L C Clark <stacey@ecn.purdue.edu>
[USE ACmaint]
1.) On the suns home directories reflect the machine (server)
     names... ie, goldengate=> pwd
                /home/goldengate/stacey
     We use automount and NFS to access home directories, so this
     provides good information.

2.) uid 's - nothing special is done. We use part of the paswd file
     with these descriptors:
        Department Code ID
        Aerospace Engineering aae a
        Agricultural Engineering agen A
        Civil Engineering ce C

                 Classification Codes
        Code Definition Code Definition
        c Taking classes S ECN System Account
        C Course Account t Clerical Staff
        f Faculty u Undergraduate Student
        g Graduate Student U Unclassified
        l Lab Account v Visiting Scholar
        N New, unassigned x Special Permission
        s Staff

[Example of Passwd entry and finger output removed]

3.) [Distribution] We use an in-house program called "ACmaint"[...]

5.) [SOFTWARE] I believe that the "old" version of ACmaint is going to
be public domain, but the newest version, they are going to copywrite.
it is truly wonderful, because I can change ALL of the person's
accounts with one command. We just use the "honor" system to not tred
on each other's machines. For example, there was some problem in the
beginning with people doing global deletes, but we set up guidelines
and don't do things on each other's machines unless it is a)an
emergency or b)innocuous.
ex. a) possible security problem, need to disable all of a person's
       accounts.
    b) 2 administrators deal with the same people, finding out
       information like phone number changes, make a global change for
       the person. (Or if their name is spelled incorrectly, etc.)

[...] The sofware support person in charge of ACmaint is Sam Kimery
(kimery@ecn.purdue.edu)

[More info requested on ACmaint]

ACmaint is only used by root, and it controls all the passwd files.
Some of the commands it uses are:
ah> help
! - execute shell command
# - a comment, the entire line is ignored
= - set a default value or assign a value to a
variable
? - see help
add - add a user to new host(s)
add_group - add user(s) to a group
admin - enter database administration mode
change - change user information by field
change_group - change group information by field
copy - copy a user from one host to other host(s)
create - create a new user
create_group - create a new group
disable - disable an account
edit - edit last command and re-execute
enable - enable a disabled account
help - print help
log - manipulate log files
message - set a message on an account
quit - quit, exit ah
read - execute commands from a file
remove - remove a user from host(s)
remove_group - remove user(s) from a group
show - show user information
show_group - show group information
show_host - show host information
show_hostnum - show host number information
show_sid - show sid information
terminate - remove a user from all hosts
terminate_group - eliminate a group
unmessage - remove a message from an account

[...] "ah" is the front end of ACmaint, and it is very friendly,
prompting you for information if you don't give data for every field
needed...
[Example deleted]

From: Mike Bauer <bauer@cns.ucalgary.ca>

For what it's worth, this is how I have set things up at my site (we
have a heterogenous, all Sun network that is administered by several
people in different labs. Each lab has it's own fileserver and several
dataless clients, but we require that any person should be able to sit
down at any workstation and get an environment identical to any other
workstation):

I use "/home/username" autmounted from the server via a map "auto.home"
this is really nice because every user has to have a unique username
anyways, and this way you don't have to remeber which machine they are
one, which group they are in, etc.

I use NIS, with several backup master servers and the ypxferd high-speed
transfer daemon. It requires that any time a user is added/deleted,
the "administrator" for that particular person must log on to the NIS
master and update the database. Basically, each fileserver in each lab
acts as a slave NIS master, since all users from that lab have their
home directories on the lab's fileserver. In this way, each lab is
independant of others, in the event that a fileserver in another lab
goes down.

[ local software distribution through automount. Deleted ]

Using the automounted /vol and /home directories is a really big plus
in my experience. If a disk is getting too full, I just copy stuff to
another disk, rearrange the auto.vol map entries, and viola! a home
directory or a volume is moved to another fileserver, but the path name
remains exactly the same.

[ Mike send me his map files, they are included in the full report ]

From: beig@frulm63.bitnet

[...me too... multivendor]

For historic reasons, home dir. are /users/groupe_name/user_name. I
put no restrictions on login for all the hosts. So everyone everywhere
can log, thanks to automount. Of course, the directory for the
standard user of each host is hard-mounted.
 
[Description of local mail aliasing deleted]
 
To avoid duplication in uid/gid, we assign sets of uid/gid to each
part of the site. For instance, mathematics have uid 100 to 1999,
biology have 2000-3999, etc.
 
[ local software, distribution of files and of scripts deleted ]

From: Michael Helm <mike@inti.lbl.gov>

I'm not speaking for LBL, just for me, & in part these are observations
of what I see here at LBL.
[home]
I personally use the structure /home/machine/group/username in reality
practice this is now /export/home/machine/unit/group/username but it
looks more or less like the 1st via automounter & symlinks
[uid]
LBL has a uid server based somewhat on the netlib server. Basically,
we seem to be trying to keep login names, id's, group names, id's
constant over the whole lab. This mostly works (people forget to use
it, but it's a good ad hoc solution).
[distribution... NIS]

From: Jeff Nieusma <nieusma@eclipse.colorado.edu>

- we use the automounter and /machine/users/homedir
- we have a unique UID daemon that keeps track of all uids and
  usernames so none are duplicated. You must contact "uniqid" to add a
  user to a machine to make sure the name/uid is available...
[See also "Uniqname" in LISA IV... uniqname_request@ifs.umich.edu]
- Right now we use rdist to distribute system files.
  we have the same passwd file on all machine because of our naming
  conventions and use of the automounter
- don't use NIS... You may want to look into using my new libc.so
  ( let me know if you didn't get the message yesterday. )
- sudo, adduser, addhost, bind, sendmail5.64

If you'd like a better description of any of these, let me know.
[ Sorry for the signature, I will be in touch soon.]

From: Sumant Hattikudur {manager} <hattikud@buster.cps.msu.edu>

[home] /home/machine-name/users = home directories of all users
[uid]
Userids assigned by a central authority. Individual departments have
slots for uids (say 10000- 19999). All system administrators first
check to see whether a user has a password entry in the Central
database. (passwd file of central authority). If this exists, just
grep the entry and insert into local passwd file and make changes to
home-directory, shell etc. If entry does not exist, then use one uid
from locally assigned block of uids, and create a unique username
(again making sure that the central passwd file does not contain such
a username). Once the passwd entry has been created, mail it to the
central authority for inclusion in the central database. This has
just worked fine for us.

From: tony@cosc.canterbury.ac.nz
[me too deleted]
[home]
This is based on a /users/<department_name> structure. Thus, the Computer
Science Dept is under /users/cosc, maths under /users/maths, etc... Under
/users/cosc is /users/cosc/undergrad, /users/cosc/postgrad and
/users/cosc/staff - all separate 500 Mbyte filesystems.

[uid range by dept.]
[distribution achieved through NIS + merging of passwd file]

From: Richard Elling <elling@eng.auburn.edu>

[ 130 Sparc and 150 PC shares NIS, Vax VMS special, 1450+ users]

[/home/{ugrad,grad,faculty,staff}/username]
This is a pretty good setup. It is good to separate undergrads from others
since they tend to do silly things which fill up disks fast. Also, we "clean"
undergraduate accounts between quarters to get rid of the megabytes worth of
duplicate games, GIF files, audio files, etc. We make an additional division
based on department for faculty and grad students: CSE, EE, etc. So our actual
implementation looks something like: /home/u1 (undergrads), /home/cse_h1, etc.
We do not differentiate between faculty/staff/grads for disk allocation. Also,
you will definitely want to use logical names for home directories, not machine
names.

[Use of automounter to share subdir for class. deleted]

[uid]
Each user here has an account which is to be used for instructional purposes.
As a result, there is one master passwd database. We use NIS for this so that
users can change their own passwords easily. To cut down on network traffic
due to NIS updates, we have each NIS server do a ypxfr once per hour to grab
the latest passwd and group databases. The only complaint from the users here
is that it takes up to 1 hour for any password changes to be propagated through
the network. Another affect of this implementation is that all accounts must
be created on the master server so that the databases are kept intact. We have
created shell scripts for adding users which will do everything necessary. As
a result, it takes about 1 minute to type in the user data, generate a new user
id, create the necessary passwd/group/alias entries, and create the home directory.

I initially had each department start at a different base user id. So CSE's
started user id's at 8000 for instance. Upon reflection, this doesn't matter
much. It is more important to get a reasonable group database going. So we
have groups setup for each department, as well as special purpose groups. Also
remember that students tend to change majors and classification (some actually
go on to grad school :-) often, so you don't want to have to change a userid,
when a change of group id can handle it.
[Right on, this is what we call the graduation problem :-)]

[Use of NIS... and love it, and centralization of mail deleted]

Hope this helps... we probably need a usenet group for large
installation system administration...
[I agree]

From: Upkar Singh Kohli <upkar@wsu-eng.eng.wayne.edu>

[intro deleted]
User Accounts:
        PATH=/mnt/uranus/files/TYPE/NAME/USER_NAME
        All on uranus (580 MB) [ General hard quota: 5 MB; ~116 users ]
        Type Dept. Name GID UID (range)
        ---- ----- ---- --- -----------
        Staff - staff 10 11 - 100
        Others - other 20 201 - 300

                        ECE ecef 110 1101 - 1200
                        MECH mecf 120 1201 - 1300
                        CIVIL civf 130 1301 - 1400
        Faculty CHEM chef 140 1401 - 1500
                        INDUS indf 150 1501 - 1600
                        BIO biof 160 1601 - 1700
                        E-TEC entf 170 1701 - 1800

                        ECE eces 1100 11001 - 12000
                        MECH mecs 1200 12001 - 13000
                        CIVIL civs 1300 13001 - 14000
        Students CHEM ches 1400 14001 - 15000
                        INDUS inds 1500 15001 - 16000
                        BIO bios 1600 16001 - 17000
                        E-TEC ents 1700 17001 - 18000

[Distribution of passwd file with ftp and rsh deleted]

From: Ron Vasey <vasey@mcc.com>

Here's a draft of a "policy" our corporate sysadmin committee developed
to provide all users transparent access to "their" files regardless of
where they were located (projects, hosts, fileservers, domains, etc.).
We're completely decentralized, so it's all by voluntary cooperation.
So far it's worked out pretty well.

Most probably not completely applicable in your situation, but it might
provide food for thought. We are heavily into Suns and NFS cross-mounts.

[ Policy by Jim Knutson knutson@mcc.com ]
This is the proposal for a unified UID strategy within MCC.

I There will be an initial allocation of UIDs to each program.
        [I still think 1000 per program is enough... JK ]

II Allocations will start at 5000. UIDs between 0 and 4999 will not
        be allocated on the assumption that they are already in use.

III UIDs between 0 and 1000 are to be site/program specific...for
        system software related UIDs NOT associated with employee logins.

IV All new accounts will be created under the program's allocation
        of UIDs for which the person is working (i.e. has the head count).

V Old accounts will be converted to the new UID scheme by...June 1990.

VI ...Employees which work for more than one program are allocated by:
                1. mutual agreement between the programs
                2. an allocated uid block for temporaries.
                [ What about shareholder accounts? JK ]

VII Persons with accounts on more than one machine will use the UID
        of the program they work for on all machines.

VIII The first UID of each range will be given a name signifying the
        ownership of the range, lest we forget who has what.

IX The highest UID to be allocated will be 32767. Any UID greater
        than this or less than 0 is assumed to be system related.

X The following programs will be allocated an initial range of UIDs:

        Program 1K Scheme 2K Scheme
         ACT 5000-5999 5000-6999
         CAD 6000-6999 7000-8999
         CP 7000-7999 9000-10999
         ES-KIT 8000-8999 11000-12999
         PKG 9000-9999 13000-14999
         STP 10000-10999 15000-16999

From: "G. Roderick Singleton" <gerry@jtsv16.jts.com>

When I was at Sun, I, as system manager, allocated blocks of 1000 numbers
to each of the admins for using as uids. As far as I know, they're still
using things this way. Let me give you an example; the uids 1-999 are
assigned to admin, 1000-1999 to sales and 2000-2999 to service. If you
can get everyone to agree, this might be a solution. I have to admit, I
used the MCP admin package to manage things but it can e handled manually.
I should also point out that the telcos assinge telephone numbers in this
manner as well so there is a precedent.

Let me know if I can be of more help,

From: Steve Simmons <scs@lokkur.uucp>
From: Ron Madurski <ron@drd.com>
[ Look at the USENIX LISA IV proceedings ]

ACMaint ACinfo-request@ecn.purdue.edu
                jrs@ecn.purdue.edu (one of the authors)

UDB - a users database system vasoll@a.cs.okstate.edu

newu: Multihost user setup sps@mcnc.org

[ GAUD: RAND's Group and User Database urban@rand.ORG ]

From: Mike Raffety <oconnor!porsche!miker@oddjob.uchicago.edu>
Use NIS. Too many people knock it who haven't even looked at it. It
really does work quite well.

From: "Timothy G. Smith Technical Consultant Sun Baltimore" <timsmith@sun.com>
[ Get all departments to agree on a site policy... I would love to. ]

From: Craig_Everhart@transarc.com
I'd consider AFS, myself, but I am biased. The installation at
Carnegie Mellon supports about 10,000 users, and of course there are
several administrators.

[The End]

I will try to get the ACmaint package and to come up with a good
policy for my department. The ideal would be a Concordia wide setup
but that may be out of reach. Again thank you all.
Paul



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:06:00 CDT