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.