Skip to content

fix(shadow-utils): configure CIS account aging defaults - #18652

Open
Lynsey Rydberg (corvus-callidus) wants to merge 1 commit into
4.0from
lyrydber/cis-account-defaults
Open

fix(shadow-utils): configure CIS account aging defaults#18652
Lynsey Rydberg (corvus-callidus) wants to merge 1 commit into
4.0from
lyrydber/cis-account-defaults

Conversation

@corvus-callidus

@corvus-callidus Lynsey Rydberg (corvus-callidus) commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Configure account-aging defaults for newly created local accounts:

  • Set maximum password age to 365 days.
  • Lock accounts 30 days after password expiration.

Existing accounts are unchanged.

Resolves:

  • AB#22929 — Ensure password expiration is configured
  • AB#22930 — Ensure inactive password lock is configured

Testing

Built and installed shadow-utils-4.18.0-7.azl4 on an AZL4 VM. CIS-CAT Level 1 Server passes both controls.

Copilot AI balanced review requested due to automatic review settings August 28, 2026 19:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Configures CIS-compliant account-aging defaults for newly created local accounts.

Changes:

  • Sets password lifetime to 365 days and inactivity lockout to 30 days.
  • Adds the corresponding shadow-utils overlay and refreshed generated state.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
base/comps/components.toml Wires in the shadow-utils overlay.
base/comps/shadow-utils/overlays/0001-configure-cis-account-aging.toml Defines account-aging configuration overlays.
locks/shadow-utils.lock Refreshes the component fingerprint.
specs/s/shadow-utils/shadow-utils.login.defs Sets maximum password age.
specs/s/shadow-utils/shadow-utils.spec Bumps the rendered package release.
specs/s/shadow-utils/shadow-utils.useradd Sets the inactivity grace period.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread base/comps/components.toml Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.

Set 365-day password expiration and a 30-day inactive-account lock for newly created accounts.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 7 changed files in this pull request and generated no new comments.

@corvus-callidus
Lynsey Rydberg (corvus-callidus) marked this pull request as ready for review August 28, 2026 20:47
@corvus-callidus

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

type = "file-search-replace"
file = "shadow-utils.login.defs"
regex = '(?m)^PASS_MAX_DAYS\s+\d+$'
replacement = "PASS_MAX_DAYS\t365"

@christopherco Christopher Co (christopherco) Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (blocking): What happens for key-only SSH users?

Copilot seems to flag that for key-only users (password-auth disabled), after 365 days, OpenSSH will change into the password update mode. And since the key-only user has no current password, they wouldn't be able to change the password, and after 30 more days, they'd get locked out fully. This key-only user creation is also our default setup in Azure VMs with cloud-init user provisioning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants