When dealing with password management on Debian systems, you might encounter the frustrating error:
passwd: User not known to the underlying authentication module
passwd: password unchanged
This occurs in several scenarios:
- When non-root users try to change their own password
- When root attempts to change another user's password
- When Kerberos authentication is involved but misconfigured
Debian uses PAM (Pluggable Authentication Modules) for authentication. The error suggests a mismatch between:
/etc/passwd
/etc/shadow
/etc/pam.d/common-password
First verify the user exists in shadow:
sudo grep claudiu /etc/shadow
Check PAM configuration:
cat /etc/pam.d/common-password
Solution 1: Rebuild Authentication Databases
For systems without pwconv/pwunconv:
sudo apt-get install libpam-runtime
sudo pam-auth-update --force
Solution 2: Manual Shadow Entry Creation
If the user lacks a shadow entry:
sudo cp /etc/shadow /etc/shadow.backup
sudo usermod -a -G shadow claudiu
sudo chmod g+r /etc/shadow
sudo vipw -s
Solution 3: Kerberos Configuration
For systems using Kerberos:
sudo apt-get install libpam-krb5
sudo dpkg-reconfigure krb5-config
If issues persist, examine auth logs:
sudo tail -f /var/log/auth.log
Test PAM stack directly:
sudo pamtest passwd claudiu
Remember to restore original permissions after fixing:
sudo chmod g-r /etc/shadow
sudo gpasswd -d claudiu shadow
When working with Debian systems, you might encounter a puzzling situation where password changes fail with the error:
passwd: User not known to the underlying authentication module
passwd: password unchanged
This typically happens when the system is configured to use PAM (Pluggable Authentication Modules) and there's a mismatch between the user accounts in /etc/passwd
and the authentication service being used.
First, let's check the authentication configuration. Run:
cat /etc/nsswitch.conf | grep passwd
If you see output like passwd: files ldap
or passwd: compat
, it indicates your system is using multiple authentication sources.
Here are the most frequent cases and how to resolve them:
Case 1: Missing Shadow Password Suite
The pwconv
and pwunconv
utilities are part of the shadow package. Install it with:
sudo apt-get install shadow
After installation, you can synchronize password databases:
sudo pwconv
sudo grpconv
Case 2: Kerberos Authentication Misconfiguration
If your system uses Kerberos but the user isn't properly registered, you'll need to:
sudo kadmin.local -q "addprinc username"
Or modify the PAM configuration in /etc/pam.d/common-password
to include both local and Kerberos authentication.
Case 3: PAM Module Issues
Check your PAM configuration for the passwd service:
cat /etc/pam.d/passwd
Ensure it includes lines like:
password requisite pam_unix.so obscure sha512
password [success=1 default=ignore] pam_ldap.so use_authtok try_first_pass
If the above methods don't work, try these:
# Force password change using chpasswd
echo "username:newpassword" | sudo chpasswd
# Or edit directly (not recommended for production)
sudo vipw
To avoid similar problems:
- Keep your authentication methods consistent across all services
- Regularly check
/etc/nsswitch.conf
and PAM configurations - When adding users, ensure they exist in all required authentication systems