---
name: "pam_winbind"
section: "8"
platform: "linux"
package: "samba"
version: "2:4.25.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pam_winbind"
---

# pam\_winbind(8)

PAM module for Winbind

## NAME

pam\_winbind - PAM module for Winbind

## DESCRIPTION

This tool is part of the [**samba**(7)](/samba/7.md) suite.

pam\_winbind is a PAM module that can authenticate users against the local domain by talking to the Winbind daemon.

## SYNOPSIS

Edit the PAM system config /etc/pam.d/service and modify it as the following example shows:

```
			    ...
			    auth      required        pam_env.so
			    auth      sufficient      pam_unix2.so
			+++ auth      required        pam_winbind.so  use_first_pass
			    account   requisite       pam_unix2.so
			+++ account   required        pam_winbind.so  use_first_pass
			+++ password  sufficient      pam_winbind.so
			    password  requisite       pam_pwcheck.so  cracklib
			    password  required        pam_unix2.so    use_authtok
			    session   required        pam_unix2.so
			+++ session   required        pam_winbind.so
			    ...
```

Make sure that pam\_winbind is one of the first modules in the session part. It may retrieve kerberos tickets which are needed by other modules.

## OPTIONS

pam\_winbind supports several options which can either be set in the PAM configuration files or in the pam\_winbind configuration file situated at /etc/security/pam\_winbind.conf. Options from the PAM configuration file take precedence to those from the configuration file. See [**pam\_winbind.conf**(5)](/pam_winbind.conf/5.md) for further details.

debug

Gives debugging output to syslog.

debug\_state

Gives detailed PAM state debugging output to syslog.

require\_membership\_of=\[SID or NAME\]

If this option is set, pam\_winbind will only succeed if the user is a member of the given SID or NAME. A SID can be either a group-SID, an alias-SID or even an user-SID. It is also possible to give a NAME instead of the SID. That name must have the form: *MYDOMAIN\\mygroup* or *MYDOMAIN\\myuser* (where '\\' character corresponds to the value of *winbind separator* parameter). It is also possible to use a UPN in the form *user@REALM* or *group@REALM*. pam\_winbind will, in that case, lookup the SID internally. Note that NAME may not contain any spaces. It is thus recommended to only use SIDs. You can verify the list of SIDs a user is a member of with wbinfo --user-sids=SID.

This option must only be specified on a auth module declaration, as it only operates in conjunction with password authentication.

use\_first\_pass

By default, pam\_winbind tries to get the authentication token from a previous module. If no token is available it asks the user for the old password. With this option, pam\_winbind aborts with an error if no authentication token from a previous module is available.

try\_first\_pass

Same as the use\_first\_pass option (previous item), except that if the primary password is not valid, PAM will prompt for a password.

use\_authtok

Set the new password to the one provided by the previously stacked password module. If this option is not set pam\_winbind will ask the user for the new password.

try\_authtok

Same as the use\_authtok option (previous item), except that if the new password is not valid, PAM will prompt for a password.

krb5\_auth

pam\_winbind can authenticate using Kerberos when winbindd is talking to an Active Directory domain controller. Kerberos authentication must be enabled with this parameter. When Kerberos authentication can not succeed (e.g. due to clock skew), winbindd will fallback to samlogon authentication over MSRPC. When this parameter is used in conjunction with *winbind refresh tickets*, winbind will keep your Ticket Granting Ticket (TGT) up-to-date by refreshing it whenever necessary.

krb5\_ccache\_type=\[type\]

When pam\_winbind is configured to try kerberos authentication by enabling the *krb5\_auth* option, it can store the retrieved Ticket Granting Ticket (TGT) in a credential cache. The type of credential cache can be controlled with this option.

The following simple type names are supported (these will generate default paths with the user's UID):

DEFAULT

Uses the default credential cache location as specified in the system's krb5.conf configuration file (“default\_ccache\_name”). This option allows the Kerberos configuration to centrally control the credential cache location. The “%{uid}” pattern in krb5.conf will be substituted with the user's UID.

KCM

Uses Kerberos Credential Manager (generates “KCM:\<UID\>”). This is the recommended choice on latest Linux distributions offering a Kerberos Credential Manager.

KEYRING

Uses Linux kernel keyring (generates “KEYRING:persistent:\<UID\>”). The KEYRING has its limitations. As it is secure kernel memory, for example bulk storage of credentials is not possible. This is a good fallback if KCM is not available.

FILE

Uses file-based credential cache (generates “FILE:/tmp/krb5cc\_\<UID\>”).

WRFILE

Uses file-based credential cache with write-only mode (generates “WRFILE:/tmp/krb5cc\_\<UID\>”).

It is also possible to specify custom paths with explicit prefixes. The following prefixes are recognized: *KEYRING:type*, *DIR:/path*, *FILE:/path*, and *WRFILE:/path*. You can use the “%u” or “%{uid}” pattern to substitute the numeric user ID. Examples:

krb5\_ccache\_type = KEYRING:session:%u

This will use a session keyring for the credential cache.

krb5\_ccache\_type = DIR:/run/user/%u/krb5cc

This will create a credential cache file in the specified directory.

krb5\_ccache\_type = FILE:/tmp/krb5cc\_%u

This will create a credential cache file.

krb5\_ccache\_type = WRFILE:/var/lib/sss/ccache/ccache\_%u

This will create a write-only credential cache file.

Leave empty to just do kerberos authentication without having a ticket cache after the logon has succeeded. This setting is empty by default.

cached\_login

Winbind allows one to logon using cached credentials when *winbind offline logon* is enabled. To use this feature from the PAM module this option must be set.

silent

Do not emit any messages.

mkhomedir

Create homedirectory for a user on-the-fly, option is valid in PAM session block.

warn\_pwd\_expire

Defines number of days before pam\_winbind starts to warn about passwords that are going to expire. Defaults to 14 days.

## PAM DATA EXPORTS

This section describes the data exported in the PAM stack which could be used in other PAM modules.

PAM\_WINBIND\_HOMEDIR

This is the Windows Home Directory set in the profile tab in the user settings on the Active Directory Server. This could be a local path or a directory on a share mapped to a drive.

PAM\_WINBIND\_LOGONSCRIPT

The path to the logon script which should be executed if a user logs in. This is normally a relative path to the script stored on the server.

PAM\_WINBIND\_LOGONSERVER

This exports the Active Directory server we are authenticating against. This can be used as a variable later.

PAM\_WINBIND\_PROFILEPATH

This is the profile path set in the profile tab in the user settings. Normally the home directory is synced with this directory on a share.

## SEE ALSO

[**pam\_winbind.conf**(5)](/pam_winbind.conf/5.md), [**wbinfo**(1)](/wbinfo/1.md), [**winbindd**(8)](/winbindd/8.md), [**smb.conf**(5)](/smb.conf/5.md)

## VERSION

This man page is part of version 4.25.1 of Samba.

## AUTHOR

The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed.

This manpage was written by Jelmer Vernooij and Guenther Deschner.
