User accounts created on Red Hat Enterprise Linux (RHEL) servers are by default assigned 99,999 days until their password expires. The Center for Internet Security (CIS) provides some advice on controls for hardening systems, and one of these is setting password expirations to 365 days or less. The security team usually enforces this setting, but system administrators must ensure this is done.
Use the /etc/login.defs
file to set password aging policies. All new users inherit the definitions set in login.defs
. You'll use the chage
command to manage password-aging polices.
[ Free download: Advanced Linux commands cheat sheet. ]
In /etc/login.defs
, you can adjust the following parameters to reflect your security policy or control:
- PASS_MAX_DAYS: How many days the password is active before it expires.
- PASS_MIN_DAYS: How many days a password must be active before it can be changed by a user.
- PASS_WARN_AGE: The number of days a warning is issued to the user before an impending password expiry.
The following example modifies your policy such that a password expires after 90 days and cannot be changed until it's been active for seven days, and users are notified five days prior to password expiry:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 5
Changes made to /etc/login.defs
affect only new users created on the system. For existing users, you must use the chage
command.
You can set the same configuration for existing users with:
$ sudo chage --mindays 7 \
--maxdays 90 --warndays 5 user1
View password age
To view the password age for a user, use the --list
option (-l
for short) with the chage
command. For example, to view password information for user1:
$ sudo chage --list user1
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires: 5
Password expiry
Use the chage
command to set the expiry date for an account. This setting defines a given date, after which a user account is locked and inaccessible. You can do this with the --expiredate
(-E
for short) option.
For example, to cause the user1 account's password to expire after 90 days, count 90 days forward from the current date (July 15, 2022, in this example):
$ sudo chage -E 2022-07-15 user1
Alternately, use the date
command to do a calculation for you:
$ sudo chage --expiredate \
$(date -d +90days +%Y-%m-%d) user1
Password policies
A password policy is one important part of your organization's security posture. With the chage
command, you can make your systems manage password reminders and expiry dates reliably. Once the security team defines the appropriate settings, sysadmins can check that the settings are applied consistently.
[ Thinking about security? Check out this free guide to boosting hybrid cloud security and protecting your business. ]
About the author
I work as Unix/Linux Administrator with a passion for high availability systems and clusters. I am a student of performance and optimization of systems and DevOps. I have passion for anything IT related and most importantly automation, high availability, and security.
More like this
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit