File:  [LON-CAPA] / doc / Attic / how_to_domain_coordinator.txt
Revision 1.11: download - view: text, annotated - select for diffs
Thu Feb 21 16:01:12 2002 UTC (22 years, 1 month ago) by harris41
Branches: MAIN
CVS tags: version_0_4, stable_2002_july, stable_2002_april, STABLE, HEAD
need to instruct on using the funky usermod -G command

How to make a domain coordinator on
a newly installed LON-CAPA system

Scott Harrison
April 17, 2001
05/28/2001

There are 17 steps to this procedure.  (Eventually
this procedure will be replaced with interfaces.
Till then, enjoy the UNIX command line.)

You need to decide on three pieces of information
to create a domain coordinator.

* USERNAME (kermit, albert, joe, etc)
* DOMAIN (should be the same as lonDefDomain in /etc/httpd/conf/access.conf)
* PASSWORD (don't tell me)

The examples in these instructions will be based
on three example pieces of information:
* USERNAME=dc103
* DOMAIN=103
* PASSWORD=sesame

You will also need to know your "root" password
and your "www" password.

1. login as root on your Linux system
   [prompt %] su

2 (as root). add the user
   Command: [prompt %] /usr/sbin/adduser USERNAME
   Example: [prompt %] /usr/sbin/adduser dc103

3 (as root). enter in a password
   Command: [prompt %] passwd USERNAME
            New UNIX password: PASSWORD
            Retype new UNIX passwd: PASSWORD
   Example: [prompt %] passwd dc103
            New UNIX password: sesame
            Retype new UNIX passwd: sesame

4 (as root). Make www a member of the new user group.
  [This should be updated with the usermod command... the
   instructions for step #4 (this step) are only good
   for non-shadow passwd systems.]

   You will need to change 1 line in /etc/group
   Assuming USERNAME=dc103
   (your values are different)
   Change this line in /etc/group
   dc103:x:NUMBER:   
   to be
   dc103:x:NUMBER:www

5. Login as the new user
   Command: [prompt %] su USERNAME
   Example: [prompt %] su dc103

6 (as USERNAME).  Create a public_html directory for the new user.
   (This step does not need to be done.  Only if new user will
    also be an "author" on the system.)
   Command: [prompt %] install -d /home/USERNAME/public_html
   Example: [prompt %] install -d /home/dc103/public_html

7. (as USERNAME). Set permissions for /home/dc103 and /home/dc103/public_html
#    to be readable and writeable by www.
# See immediately below for newer instructions:
#   Command: [prompt %] chmod g+rwx /home/USERNAME
#            [prompt %] chmod g+rwx /home/USERNAME/public_html
#   Example: [prompt %] chmod g+rwx /home/dc103
#            [prompt %] chmod g+rwx /home/dc103/public_html
    New instructions:
    (This step does not need to be done. Only if the new user will
    also be an author on the system.)
    As root, make /home world executable (chmod a+x /home)
    As dc103 (or whatever the domain coordinator name is,
    chmod g+x /home/dc103
    chmod g+srw /home/dc103/public_html

8. login as user=www
   Command: [prompt %] su www
            Password: WWWPASSWORD

9. (as www). cd /home/httpd/lonUsers

10. (as www) Create user directory for your new user.
   Let U equal first letter of USERNAME
   Let S equal second letter of USERNAME
   Let E equal third letter of USERNAME
   Command: [prompt %] install -d DOMAIN/U/S/E/USERNAME
   Example: [prompt %] install -d 103/d/c/1/dc103

11. (as www) Enter the newly created user directory.
   Command: [prompt %] cd DOMAIN/U/S/E/USERNAME
   Example: [prompt %] cd 103/d/c/1/dc103

12. (as www). Set your password mechanism to 'unix' 
   Command: [prompt %] echo "unix:" > passwd

13. (as www). Create and run the following script with the arguments
  Create the file described below "script.pl" or whatever name you want
  (it is in CVS:loncapa/doc/rolesmanip.pl).

  Command: [prompt %] perl script.pl DOMAIN USERNAME
  Example: [prompt %] perl script.pl 103 dc103

#!/usr/bin/perl

# quick temporary script
# brought up-to-date by Scott Harrison, 03/01/2001


print "Usage: rolesmanip.pl DOMAIN USERNAME\n" unless @ARGV;

my $domain=shift @ARGV;
my $name=shift @ARGV;

my ($l1,$l2,$l3)=split(//,substr($name,0,3));

use GDBM_File;
my %hash;
        tie(%hash,'GDBM_File',
"/home/httpd/lonUsers/$domain/$l1/$l2/$l3/$name/roles.db",
	    &GDBM_WRCREAT,0640);

$hash{'/'.$domain.'/_dc'}='dc';
open OUT, ">/home/httpd/lonUsers/$domain/$l1/$l2/$l3/$name/roles.hist";
map {
    print OUT $_.' : '.$hash{$_}."\n";
} keys %hash;
close OUT;

untie %hash;

14. login as root
    Command: [prompt %] su

15. Restart the lon processes (/etc/rc.d/init.d/loncontrol restart)
16. Restart the httpd processes (/etc/rc.d/init.d/httpd restart)
17. You may further define the domain coordinator user (i.e. dc103)
    by going to http://MACHINENAME/adm/createuser.


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>