Release 0.9.0 of nss-pam-ldapd
2013-04-05
This is the first release of the new 0.9 development branch of
nss-pam-ldapd. This includes a number of new features and will see some
more development.
Amongst the most prominent new features are support for nested groups,
utilities for updating user information and handling of
password policy controls.
As such, this isn't the most stable version and should be used with
caution. The 0.7 and 0.8 branches will remain to be supported
with bug and security fixes for some time.
This version introduces a backwards incompatible protocol change which
means it is no longer possible to use the NSS or PAM module from a
previous release and nslcd from a newer release (or vice
versa). Since these modules are generally loaded once per process, old
versions of these modules could be present in longer running processes
when upgrading.
A summary of the changes since 0.8.13:
- backwards incompatible change to the communications protocol between nslcd
and NSS and PAM modules to use network byte order to be able to work on
mixed endian multiarch systems and do some restructuring
- netgroup lookups now makes a distinction between empty netgroups and
non-existing netgroups
- the PAM protocol is now more consistent (cleaner support for password
modification by root, have all request parameters in the same order and
limit the information returned from the call)
- request and handle password policy controls on LDAP authentication
- implement support for nested groups which can be enabled with the
nss_nested_groups
option (thanks Steve Hill)
- add a log option to
configure log level and logging to plain files
- add an nscd_invalidate
option to invalidate the nscd cache after recovering from LDAP
connection problems (to clear any negative cache entries)
(this option was renamed to
reconnect_invalidate
in version 0.9.1)
- allow trimming expressions with ${foo#bar} syntax in
attribute mapping expressions
(thanks Thorsten Glaser)
- pynslcd supports trimming expressions with full shell glob matching
- support password modification in pynslcd
- support children search scope for systems that have it
- add a getent.ldap utility
to perform nslcd queries bypassing the libc NSS stack
- implement functionality for changing user information and provide a
chsh.ldap utility to allow
users to change their login shell
- remove deprecated use_sasl, reconnect_tries,
reconnect_maxsleeptime and tls_checkpeer options which
have been replaced long ago
- allow names with one character in default
validnames
option and allow parentheses (taken from Fedora packages)
- fall back to updating the lastChange attribute with the normal
LDAP connection
- dump full nslcd configuration at debug level on start-up
- export an _nss_ldap_version symbol in the NSS module to make
finding version mismatches easier (the NSS module version is logged
from nslcd)
- documentation improvements
- update the coding style for the C source code to follow a more
modern and commonly used coding convention
- some parts of the code were refactored or rewritten to take into
account the changes within the software (e.g. configuration file
handling, reduction in the number of system calls for normal
communication)
- numerous smaller fixes
- portability and robustness improvements to the tests
- implement lookup_netgroup and lookup_shadow test
commands for systems that cannot use getent to query these
- guess the value for --with-pam-seclib-dir configure option if
it is not specified
- temporary disable the caching functionality of pynslcd
- usability improvements in the pynslcd implementation
- various fixes for Solaris
Get this release from the downloads section.
Some more ideas and features that may be implemented in the 0.9 series are:
- see if we can find a proper solution for systems that organise users
differently (e.g. FreeBSD doesn't have shadow information but has a
login class)
- rework the pynslcd caching functionality and get
pynslcd production-ready
- add more utilities for managing users, groups and other objects in
LDAP (the rootpwmoddn
option will probably be renamed to rootmoddn)
- support SO_PASSCRED based authentication for clients doing
nslcd requests (especially useful for the utility functions)
Ideas, comments and patches for functionality are more than welcome.
Please drop a note on the
nss-pam-ldapd-users mailing list
with any ideas or patches you may have.