== Step 1: Stop ALL running Processes /sbin/service crond stop /sbin/service admserv stop /sbin/service httpd stop /sbin/service xinetd stop /sbin/service dovecot stop /sbin/service sendmail stop /usr/bin/killall -9 sendmail /sbin/service saslauthd stop /sbin/service cced.init stop /sbin/service dbrecover stop == Step 2: MAKE Backups!!!! /bin/mkdir -p /SYSTEM-BACKUP cd /var/db/ /bin/tar cfvpz /SYSTEM-BACKUP/var-db.tgz * /bin/cp /etc/passwd /SYSTEM-BACKUP/ /bin/cp /etc/shadow /SYSTEM-BACKUP/ /bin/cp /etc/group /SYSTEM-BACKUP/ /bin/cp /usr/sausalito/perl/Base/User.pm /SYSTEM-BACKUP/ /bin/cp /usr/sausalito/perl/Base/Group.pm /SYSTEM-BACKUP/ /bin/cp /etc/pam.d/system-auth /SYSTEM-BACKUP/ /bin/cp /etc/sysconfig/saslauthd /SYSTEM-BACKUP/saslauthd /bin/cp /etc/nsswitch.conf /SYSTEM-BACKUP/ ls -l /SYSTEM-BACKUP/ == Step 3: Lets "unconvert" the database back to flat files. cd /var/db /usr/bin/makedb -u passwd.db | /bin/grep -v "^=" | /usr/bin/perl -p -e "s/(^\..*?) //" >> /etc/passwd /usr/bin/makedb -u shadow.db | /usr/bin/perl -p -e "s/(^\..*?) //" >> /etc/shadow /usr/bin/makedb -u group.db | /bin/grep -v "^=" | /usr/bin/perl -p -e "s/(^\..*?) //" >> /etc/group == Step 4: Clean up the old password & shadow database now cd /var/db /bin/touch passwd shadow group /usr/bin/makedb -o passwd.db passwd /usr/bin/makedb -o shadow.db shadow /usr/bin/makedb -o group.db group /bin/rm -f passwd shadow group == Step 5: Verify they are indeed blank to avoid any issues cd /var/db /usr/bin/makedb -u passwd.db /usr/bin/makedb -u shadow.db /usr/bin/makedb -u group.db == Step 6: Make a change to the BlueQuartz backend so that it uses /etc/passwd & /etc/shadow instead ============= Note edit this file ============= cd /usr/sausalito/perl/Base/ vi User.pm # serach for sub useradd _return # replace - return _internal_useradd([PWDB_UNIXDB, PWDB_SHADOWDB], @_); # with - return _internal_useradd([PWDB_UNIX, PWDB_SHADOW], @_); == Step 7: Make a change to the BlueQuartz backend so that it uses /etc/group instead! ============= Note edit this file ============= cd /usr/sausalito/perl/Base/ vi Group.pm # serach for sub groupadd _return # replace - return _internal_groupadd([PWDB_UNIXDB, PWDB_SHADOWDB], @_); # with - return _internal_groupadd([PWDB_UNIX, PWDB_SHADOW], @_); == Step 8: Change nsswitch.conf so it won't look at the old database /usr/bin/perl -pi -e "s#db files#files#" /etc/nsswitch.conf == Step 9: Change saslauthd so it won't look at the old database /usr/bin/perl -pi -e "s#^MECH=pam#MECH=shadow#" /etc/sysconfig/saslauthd == Step 10: Rebuild PAM's system-auth configuration cd /etc/pam.d/ /bin/mv system-auth system-auth.backup /usr/bin/wget http://www.nuonce.net/bq/system-auth.txt /bin/mv system-auth.txt system-auth == Step 11: Start the processes back up. /sbin/service dbrecover start /sbin/service xinetd start /sbin/service dovecot start /sbin/service saslauthd start /sbin/service sendmail start /sbin/service cced.init start /sbin/service admserv start /sbin/service httpd start /sbin/service crond start == Step 12: Now that all services should be running again, go ahead and test functionality. # test, create a user, and then login the admin GUI as that user. ======================================================================== IF YOU RUN INTO ISSUES!!!! Stop all Services, Do Step #1 Restore the backup cd /var/db /bin/tar xfvpz /SYSTEM-BACKUP/var-db.tgz /bin/cp /SYSTEM-BACKUP/passwd /etc/passwd /bin/cp /SYSTEM-BACKUP/shadow /etc/shadow /bin/cp /SYSTEM-BACKUP/group /etc/group /bin/cp /SYSTEM-BACKUP/User.pm /usr/sausalito/perl/Base/User.pm /bin/cp /SYSTEM-BACKUP/Group.pm /usr/sausalito/perl/Base/Group.pm /bin/cp /SYSTEM-BACKUP/system-auth /etc/pam.d/system-auth /bin/cp /SYSTEM-BACKUP/saslauthd /etc/sysconfig/saslauthd /bin/cp /SYSTEM-BACUP/nsswitch.conf /etc/nsswitch.conf Start all Services, Do Step #11