---
name: "pam_sm_acct_mgmt"
section: "3"
platform: "linux"
package: "pam"
version: "1.7.3-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/pam_sm_acct_mgmt"
---

# pam\_sm\_acct\_mgmt(3)

PAM service function for account management

## NAME

pam\_sm\_acct\_mgmt - PAM service function for account management

## SYNOPSIS

```
#include <security/pam_modules.h>
```

**int pam\_sm\_acct\_mgmt(pam\_handle\_t \****pamh***, int** *flags***, int** *argc***, const char \*\****argv***);**

## DESCRIPTION

The **pam\_sm\_acct\_mgmt** function is the service module's implementation of the [**pam\_acct\_mgmt**(3)](/pam_acct_mgmt/3.md) interface.

This function performs the task of establishing whether the user is permitted to gain access at this time. It should be understood that the user has previously been validated by an authentication module. This function checks for other things. Such things might be: the time of day or the date, the terminal line, remote hostname, etc. This function may also determine things like the expiration on passwords, and respond that the user change it before continuing.

Valid flags, which may be logically OR'd with *PAM\_SILENT*, are:

PAM\_SILENT

Do not emit any messages.

PAM\_DISALLOW\_NULL\_AUTHTOK

Return **PAM\_AUTH\_ERR** if the database of authentication tokens for this authentication mechanism has a *NULL* entry for the user.

## RETURN VALUES

PAM\_ACCT\_EXPIRED

User account has expired.

PAM\_AUTH\_ERR

Authentication failure.

PAM\_NEW\_AUTHTOK\_REQD

The user's authentication token has expired. Before calling this function again the application will arrange for a new one to be given. This will likely result in a call to **pam\_sm\_chauthtok()**.

PAM\_PERM\_DENIED

Permission denied.

PAM\_SUCCESS

The authentication token was successfully updated.

PAM\_USER\_UNKNOWN

User unknown to password service.

## SEE ALSO

[**pam**(3)](/pam/3.md), [**pam\_acct\_mgmt**(3)](/pam_acct_mgmt/3.md), [**pam\_sm\_chauthtok**(3)](/pam_sm_chauthtok/3.md), [**pam\_strerror**(3)](/pam_strerror/3.md), [**PAM**(8)](/PAM/8.md)
