From ArchWiki
Revision as of 21:39, 13 October 2011 by Zfjagann (talk | contribs)
Jump to: navigation, search


NIS is a protocol developed by Sun to allow one to defer user authentication to a server. The server software is in the ypserv package, and the client software is in the yp-tools package. ypbind-mt is also available, which is a multi threaded version of the client daemon.

Note: obviously this article is far from finished. hopefully in the future that will change, but in the meantime check the More resources section.

How to set up a NIS client

The first step is to install the tools that you need. This provides the configuration files and general tools needed to use NIS.

# pacman -S yp-tools ypbind-mt

Next put your NIS domain name into the file /etc/conf.d/nisdomainname.

Now edit the /etc/yp.conf file and add your ypserver or nis server.

ypserver your.nis.server

Start the rpcbind and ypbind daemons (add them to your rc.conf file if you want it to start automatically).

# /etc/rc.d/rpcbind start
# /etc/rc.d/ypbind start

To test the setup so far you can run the command yptest:

# yptest

If it works you will, among other things, see the contents of the NIS user database (which is printed in the same format as /etc/passwd).

To actually use NIS to log in you have to edit /etc/nsswitch.conf. Modify the lines for passwd, group and shadow to read:

passwd: files nis
group: files nis
shadow: files nis

And then do not forget

# /etc/rc.d/ypbind restart

See section 7 of The Linux NIS HOWTO for further information on configuring NIS clients.

How to set up a NIS server

Install Packages

Make sure packages ypbind-mt, ypserv, and yp-tools are installed:

# sudo pacman -S ypbind-mt yp-tools ypserv

Editing Configuration Files


Add the domain name to /etc/conf.d/nisdomainname:

# NISDOMAINNAME="nis-domain-name"


Add rules to /etc/ypserv.conf for your your nis clients of this form:

# ip-address-of-client : nis-domain-name : rule : security

For example:

# 192.168. : home-domain : * : port

For more information see `man ypserv.conf`.


Add or remove files you would like NIS to use to /var/yp/Makefile under the "all" rule.


# all:  passwd group hosts rpc services netid protocols netgrp \
#         shadow # publickey networks ethers bootparams printcap mail \
#         # amd.home auto.master auto.home auto.local passwd.adjunct \
#         # timezone locale netmasks


Add rules to /var/yp/securenets to restrict access:

# # Gives access to anyone in

Be sure to comment out this line, as it gives access to anyone.



Add the domain name of your server to /var/yp/ypservers:

# your.nis.server

Start NIS Daemons

The daemons MUST be started in this order.

Start rpcbind (if it isn't already started)

# sudo rc.d start rpcbind

Start ypbind:

# sudo rc.d start ypbind

Start ypserv:

# sudo rc.d start ypserv

If you want these to start automatically on startup, add them to your DAEMONS array in rc.conf:

# DAEMONS=( ... rpcbind ypbind ypserv ... )

Make sure they go after network in the array.

More resources