asynchronously synchronise local NSS databases with remote directory services
Python Roff Shell
Clone or download
jaqx0r Merge pull request #82 from notmaxx/s3source
s3 bucket source support
Latest commit 6c89f30 Jun 12, 2018

nsscache - Asynchronously synchronise local NSS databases with remote directory services

Build Status

nsscache is a commandline tool and Python library that synchronises a local NSS cache from a remote directory service, such as LDAP.

As soon as you have more than one machine in your network, you want to share usernames between those systems. Linux administrators have been brought up on the convention of LDAP or NIS as a directory service, and /etc/nsswitch.conf,, and nscd to manage their nameservice lookups.

Even small networks will have experienced intermittent name lookup failures, such as a mail receiver sometimes returning "User not found" on a mailbox destination because of a slow socket over a congested network, or erratic cache behaviour by nscd. To combat this problem, we have separated the network from the NSS lookup codepath, by using an asynchronous cron job and a glorified script, to improve the speed and reliability of NSS lookups. We presented a talk at 2008 (PDF slides) on the problems in NSS and the requirements for a solution.

Here, we present to you this glorified script, which is just a little more extensible than

ldapsearch | awk > /etc/passwd

Read the Google Code blog announcement for nsscache, or more about the motivation behind this tool.

Here's a testimonial from Anchor Systems on their deployment of nsscache.

Pair nsscache with to integrate the local cache with your name service switch.

Mailing list:!forum/nsscache-discuss

Issue history is at