Linux User does not exist - weird problem and solution
Recently I received a support request as follows:
After adding a user using useradd command:
useradd -s /bin/false -d foo
passwd foo
Following error reported
user foo does not exist
However, after sometime user foo allowed to login. What is going on? Is my system hacked?
First I went through system password database located at /etc/passwd, /etc/shadow, /etc/group - there exists an entry for foo user.
After close investigation I found name service cache daemon (nscd). It is a daemon that provides a cache for the most common name service requests including caching of /etc/passwd file (thanks for top and lsof command for hint).
So the solution is to stop the nscd service add user and start nscd again. This time it worked.
# /etc/init.d/nscd stop
# useradd -s /bin/false -d bar
# passwd bar
# /etc/init.d/nscd start
Now bar is allowed to login immediately :).
Refer to nscd man page for detailed information (hint setup correct TTL to get rid of this problem and upgrade to latest version):
man nscd
man nscd.conf
Want to stay up to date with the latest Linux tips, news and announcements? Subscribe to our free e-mail newsletter or RSS feed to get all updates.
You can Email this page to a friend.
You may also be interested in other helpful articles:
- Lighttpd secure digest authentication (mod_auth)
- Linux Shell script to add a user with a password to the system
- FreeBSD: Password expiry / aging policy
- Block outgoing network access for a single user from my server using iptables
- Allow normal user to dialout Internet
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!



Recent Comments
Yesterday ~ 3 Comments
Yesterday ~ 1 Comment
Yesterday ~ 9 Comments
Yesterday ~ 13 Comments
Yesterday ~ 3 Comments