--------------------------------------------------------------------------
CREATING A NEW ACCOUNT -- CYGNUS EMPLOYEE
--------------------------------------------------------------------------

If someone has an account on the cygnus.com systems, copy their
/etc/passwd entry from a cygnus.com system.  Create a directory for
them, chown it to them.  Add their login name to the appropriate group
in /etc/group that they're supposed to have write access to.

Their groupid in /etc/passwd should be the normal Cygnus one ("cygnus",
1002).

Note that all of the Cygnus passwd entries are grouped in one section
of the sourceware+egcs /etc/passwd file.

The user will only have write access to a project's repository when they
are added to the that group's list in /etc/group.

--------------------------------------------------------------------------
CREATING A NEW ACCOUNT -- SOMEONE OUTSIDE CYGNUS
--------------------------------------------------------------------------

You'll need the following:

 A.  First and last name
 B.  Preferred login name
 C.  A forwarding e-mail address (where mail should go if it is sent to
     @sourceware.cygnus.com)
 D.  An SSH public key
 E.  What CVS repository this is for ("binutils", "automake", "gnats", etc.)

An example form to send to people is
/egcs/carton/sourceware-home/NEWDEVELOPER-REQUIRED.  They fill this out
and send it back to you and you'll be able to create the account.

Steps to create the account:

1.  Edit /etc/passwd with a command like "vipw /etc/passwd".  The user IDs
    for contributor accounts on sourceware+egcs start at 9000 and
    ascend from there.  Their group ID is the one from /etc/group for
    the project they're contributing to.

    Note that all the non-Cygnus people are grouped into a single part
    of the /etc/passwd file.  Keep them all grouped there.

2.  Avoid obvious username conflicts between users at Cygnus and accounts
    on sourceware+egcs.  If there's ever a conflict, the sourceware+egcs
    contributor loses.

3.  Create their home directory /home/UNAME, create a file
    /home/UNAME/.qmail with the contents of their forwarding e-mail
    address, create the directory /home/UNAME/.ssh and create the
    file /home/UNAME/.ssh/authorized_keys with the contents of their
    public key.

    The provided public key must all be on one line.  There should be
    three or four fields separated by spaces.  Before the key, add
    the following:

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/local/bin/cvs server"

    which will restrict the account so that only cvs operations are allowed.
    A correct authorized_keys file should look like this:

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/local/bin/cvs server" 1024 33 53283507643985936761554809479187485398585011152515899523631326806358608200300921456672721302147644975561664735400117517553152443882856010901094933738362115083424363078015341173720755954932456842251894234297977370826615706546459551430813763536531093463997975480303240461354199061809039296546804843194353255891 root@ghouston

4.  Fix the file permsisions/ownership.  Incorrect permissions or ownership
    is the most common problem for new accounts:

  % chown -R UNAME.GROUP /home/UNAME
  % chmod 2755 /home/UNAME /home/UNAME/.ssh
  % chmod 644 /home/UNAME/.qmail /home/UNAME/.ssh/authorized_keys

5.  Send the user information about their new account.  One template
    of general information about the site is
    /egcs/carton/sourceware-home/NEWDEVELOPER-WELCOME