YPXFR(8)

NAME
ypxfr - transfer NIS database from remote server to local host

SYNOPSIS
ypxfr [-f] [-c] [-d target domain] [-h source host] [-s source domain] [-C taskid program-number ipaddr port] mapname

DESCRIPTION
ypxfr copies an NIS database (or map) from one NIS server to another using NIS services. In FreeBSD, ypxfr is generally invoked by ypserv(8) when it receives a map transfer request from yppush(8). ypxfr is used primarily in environments where several NIS servers are in use in a single domain. One server, the NIS master, maintains the canonical copies of all NIS maps, and all the other servers, the NIS slaves, copy new versions of the maps from the master whenever any updates are made (i.e. when a user updates their password via yppasswd(1) ).

When run, ypxfr creates a temporary database file in /var/yp/[domainmame], and fills it with the contents of mapname as supplied by the specified source host. When the entire map has been transfered, ypxfr deletes the original copy of mapname and moves the temporary copy into its place. When the transfer is complete, ypxfr will attempt to send a 'clear current map' request to the local ypserv(8) process to clear any possible references it may still have to the stale map.

Note that all files created by ypxfr are owner readable and writable only for security reasons. Since the NIS maps and the directory in which they reside are normally owned by root, this prevents non-privleged users from making unauthorized modifications.

In order to maintain consistency across all NIS servers, ypxfr can be run periodically in a cron(8) job. Maps which change infrequently need only be updated once a day (preferably late at night when system usage is lowest), whereas those that are subject to frequent changes (such a passwd.byname and passwd.byuid) should be updated perhaps once every hour. Using cron(8) to automatically update the NIS maps is not strictly mandatory since all updates should be propagated by yppush(8) when /var/yp/Makefile is run on the NIS master server, however it is good practice on large networks where possible outages could cause NIS servers to fall out of sync with each other.

When ypxfr is invoked without a controlling terminal, e.g. from inside ypserv(8), it logs all its output using the syslog(3) facility.

OPTIONS
The following options and flags are supported by ypxfr:

-f  Force a map transfer. Normally, ypxfr will not transfer a map if it determines that the NIS master's copy is not newer than the existing copy already on the local host: the -f flag forces a transfer regardless of which server's version is more recent.

-c  Do not send a 'clear current map' request to the ypserv(8) process running on the local host. This flag is normally used when invoking ypxfr manually on a machine that is not yet running ypserv(8). Without this flag, failure to contact the local NIS server will cause ypxfr to abort the transfer.

-d target domain
    Specify a target domain other than the current NIS domain.

-h source host
    Specify the name of the host from which to copy the NIS maps. This option is used to insure that ypxfr only copies maps from the NIS master server.

-s source domain
    Specify the domain from which to transfer a map, in the event that the transfer is being done across two different NIS domains.

-C taskid program-number ipaddr port
    These options are used only when ypxfr is invoked by ypserv(8) in response to a map transfer request initiated by yppush(8). In this instance, ypxfr needs to 'callback' to the yppush(8) process and interact with it, so yppush(8) passes to it an IP address ipaddr, port number port, registered program number program-number and a transaction ID taskid that it can use to contact the waiting yppush(8) process on the master server.

mapname
    The name of the map to transfer.

FILES
/var/yp/[domainname]/[maps]
    The NIS maps for a particular NIS domain.

SEE ALSO
ypserv(8), ypxfr(8), yp(8)

LICENSE
This program is covered by the GNU Public License version 2.

AUTHOR
Tobias Reber (original Linux version)
Bill Paul <wpaul@ctr.columbia.edu> (port to FreeBSD and various changes)