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