File:  [LON-CAPA] / doc / Attic / how_to_domain_coordinator.txt
Revision 1.8: download - view: text, annotated - select for diffs
Wed Jul 18 17:06:56 2001 UTC (22 years, 8 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
renumbering steps and making sure to have directories with group
execute permissions

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.
   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.
   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.
   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

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.

  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>