LON-CAPA Password authentication

Scott Harrison

Last updated: 09/30/2001

This file describes issues associated with authenticating passwords on a LON-CAPA system.

I am just now adding information on how to configure a LON-CAPA system to work with shadow passwords.

Latest HOWTO

The following section of perl code illustrates the different ways passwords can be evaluated.

                          my ($howpwd,$contentpwd)=split(/:/,$realpasswd);
                          my $pwdcorrect=0;
                          if ($howpwd eq 'internal') {
			      $pwdcorrect=
				  (crypt($upass,$contentpwd) eq $contentpwd);
                          } elsif ($howpwd eq 'unix') {
                              $contentpwd=(getpwnam($uname))[1];
                              $pwdcorrect=
                                  (crypt($upass,$contentpwd) eq $contentpwd);
                          } elsif ($howpwd eq 'krb4') {
                              $pwdcorrect=(
                                 Authen::Krb4::get_pw_in_tkt($uname,"",
                                        $contentpwd,'krbtgt',$contentpwd,1,
							     $upass) == 0);
                          }
                          if ($pwdcorrect) {
                             print $client "authorized\n";
                          } else {
                             print $client "non_authorized\n";
                          }  


Making a LON-CAPA system work with shadow passwords (in five steps; assuming that the linux system is configured for shadow passwords)
1. Get http://www.wwnet.net/~janc/software/mod_auth_external-2.1.13.tar.gz

2. cd mod_auth_external/pwauth

3. alter the config.h file line to match the UID of www
#define SERVER_UIDS 500         /* user "www" */

4.
      If you have a /etc/pam.d directory, you need to create a file named
      "pwauth" inside it.  To authenticate out of the Unix Shadow file
      under Redhat 6.x, the /etc/pam.d/pwauth file should look something like
      this:

        auth       required     /lib/security/pam_pwdb.so shadow nullok
        auth       required     /lib/security/pam_nologin.so
        account    required     /lib/security/pam_pwdb.so


5.  place pwauth in /usr/local/sbin/.  (chmod 6755 /usr/local/sbin/pwauth)