Configuring the Directory Server to Enable Account Management
In order for pam_ldap to work properly, the password and account lockout policy
must be properly configured on the server. You can use the Directory Server
Console or ldapmodify to configure the account management policy for the LDAP directory.
For procedures and more information, see the “User Account Management” chapter in the
Administration Guide for the version of Sun Java System Directory Server that you
are using.
Note - Previously, if you enabled pam_ldap account management, all users needed to provide a
login password for authentication any time they logged in to the system. Therefore,
nonpassword-based logins using tools such as rsh, rlogin, or ssh would fail.
Now, however, pam_ldap(5), when used with Sun Java System Directory Servers DS5.2p4 and
newer releases, enables users to log in with rsh, rlogin, rcp and
ssh without giving a password.
pam_ldap(5) is now modified to do account management and retrieve the account status
of users without authenticating to Directory Server as the user logging in. The
new control to this on Directory Server is 1.3.6.1.4.1.42.2.27.9.5.8, which is enabled by
default.
To modify this control for other than default, add Access Control Instructions (ACI) on
Directory Server:
dn: oid=1.3.6.1.4.1.42.2.27.9.5.8,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid:1.3.6.1.4.1.42.2.27.9.5.8
cn:Password Policy Account Usable Request Control
aci: (targetattr != "aci")(version 3.0; acl "Account Usable";
allow (read, search, compare, proxy)
(groupdn = "ldap:///cn=Administrators,cn=config");)
creatorsName: cn=server,cn=plugins,cn=config
modifiersName: cn=server,cn=plugins,cn=config
Passwords for proxy users should never be allowed to expire. If proxy
passwords expire, clients using the proxy credential level cannot retrieve naming service
information from the server. To ensure that proxy users have passwords that do
not expire, modify the proxy accounts with the following script.
# ldapmodify -h ldapserver -D administrator DN \
-w administrator password <<EOF
dn: proxy user DN
DNchangetype: modify
replace: passwordexpirationtime
passwordexpirationtime: 20380119031407Z
EOF
Note - pam_ldap account management relies on Sun Java System Directory Server to maintain and
provide password aging and account expiration information for users. The directory server does
not interpret the corresponding data from shadow entries to validate user accounts. pam_unix,
however, examines the shadow data to determine if accounts are locked or if
passwords are aged. Since the shadow data is not kept up to date
by the LDAP naming services or the directory server, pam_unix should not grant access
based on the shadow data. The shadow data is retrieved using the
proxy identity. Therefore, do not allow proxy users to have read access
to the userPassword attribute. Denying proxy users read access to userPassword prevents
pam_unix from making an invalid account validation.