Solved: See bottom. tl;dr: enable network manager.
I'm trying to set up a CentOS6 system to login using NIS. I've set up the NISDOMAIN and for the files like passwd to be on the NIS server in nsswitch.conf, but it fails to bind to the NIS server (it can ping it and SSH into it, so not a visibility issue), when booting or restarting ypbind, it waits for ages on Binding NIS service: ..... , then returns [ OK ], but doesn't actually bind as far as I can tell.
When I try ypwhich, I get the following:
ypwhich: Can't communicate with ypbind
Looking around suggests that it might not be running when people have this problem, but it seems to be for me, at least as far as service and chkconfig show.
rpcinfo -u localhost ypbind
returns the following:
rpcinfo: RPC: Program not registered program 100007 is not available
Edit: typo and slight clarification.
Edit2: The NIS server is definitely specified, but it's acting as if it is not. When I do a
service ypbind restart
this is the output in /var/log/messages:
Mar 7 13:29:27 foobar dbus: avc: received policyload notice (seqno=6) Mar 7 13:29:27 foobar dbus: avc: received policyload notice (seqno=6) Mar 7 13:29:27 foobar dbus: avc: received policyload notice (seqno=6) Mar 7 13:29:27 foobar dbus: [system] Reloaded configuration Mar 7 13:29:37 foobar ypbind: NIS domain: FOO, NIS server:
The server is definitely specified in yp.conf:
domain FOO server 192.168.1.xxx
Yet messages doesn't show this address.
It turns out ypbind will only work with network manager controlling the interface on CentOS6. Kind of a kludge, but it works - just enable network manager on the interface. When that's done, just restart ypbind and it works.