chgpasswd - Linux
Overview
chgpasswd is a command-line utility designed to facilitate the password changes for multiple user accounts in a single operation. It’s commonly employed by system administrators to efficiently manage user passwords in bulk.
Syntax
chgpasswd [options] [username1 username2 ...]
Options/Flags
-e: Expire passwords for specified users upon their next login.-m: Min expires – set the minimum number of days before the password can be changed again.-M: Max expires – set the maximum number of days after which the password must be changed.-d: Delete the passwords for the specified users, making their accounts unusable until a new password is set.
Examples
Simple usage:
chgpasswd user1 user2
This command will prompt the user to enter new passwords for both user1 and user2.
Excluding specific users:
chgpasswd --exclude user1 user2 user3
This command will expire the passwords of user2 and user3 but leave user1‘s password unchanged.
Common Issues
User doesn’t receive password change prompt:
- Ensure that the user’s shell is configured to read the
/etc/shadowfile (e.g.,/bin/bash). - Verify that the system’s PAM configuration is set up correctly.
Command fails with "permission denied":
- Check if the user running
chgpasswdhas sufficient privileges (typically root).
Integration
chgpasswd can be integrated with other commands for automating password management tasks. For example:
find /home -type d | cut -d'/' -f3 | xargs chgpasswd
This command will change the passwords of all user accounts whose home directories exist in the /home directory.
Related Commands
passwd: Change the password of a single user.chage: Manage password aging and expiration policies.pwgen: Generate strong, random passwords.