Err or on attempted password change (rt3.4)

As a new RT admin, I am following
http://wiki.bestpractical.com/index.cgi?ManualInstallation
which includes:
“4) Change the password. Root’s password for the web interface is
password. Not changing this is a security risk.”

Sounds like good advice to me so I went into the web UI, logged in as
root successfully and attempted to change the password. I entered new
values in the ‘New Password’ & ‘Retype Password’ fields and clicked
‘Save Preferences’.
RT returned:

System error
error: The crypt() function is unimplemented due to excessive
paranoia. at /usr/local/rt3/lib/RT/User_Overlay.pm line 1119.
context:

1115: return(1);
1116: }
1117:
1118: # if it’s a historical password we say ok.
1119: if ($self->__Value(‘Password’) eq crypt($value,
$self->__Value(‘Password’))
1120: or $self->_GeneratePasswordBase64($value) eq
$self->__Value(‘Password’))
1121: {
1122: # …but upgrade the legacy password inplace.
1123: $self->SUPER::SetPassword( $self->_GeneratePassword($value) );

code stack: /usr/local/rt3/lib/RT/User_Overlay.pm:1119
/usr/local/rt3/share/html/User/Prefs.html:229
/usr/local/rt3/share/html/autohandler:215

I searched around in the archives a while, and found most posts
concerning password were permissions issues, so no luck.

Here is my environment:

rt-3.4.0
apache-1.3.33
mod_perl-1.29
mysql-4.1.7
perl-5.8.3

Duncan Hutty
System Administrator
Department of Electrical and Computer Engineering
Carnegie Mellon University

[snip]
System error
error: The crypt() function is unimplemented due to excessive
paranoia. at /usr/local/rt3/lib/RT/User_Overlay.pm line 1119.
This is an error generated by perl, not by RT – it is documented in
perldiag, which says:

   The crypt() function is unimplemented due to excessive paranoia
       (F) Configure couldn't find the crypt() function on your machine,
       probably because your vendor didn't supply it, probably because
       they think the U.S. Government thinks it's a secret, or at least
       that they will continue to pretend that it is.  And if you quote me
       on that, I will deny it.

This is rather rare on most modern operating systems and perls. The
solution is to run using a perl which supports the crypt() function.

  • Alex