nispopulate Command

Purpose

Populates the NIS+ tables in a NIS+ domain.

Syntax

nispopulate -Y [ -x ] [ -f ] [ -n ] [ -u ] [ -v ] [ -S 0 | 2 ] [ -l network_passwd ] [ -d NIS+_domain ] -h NIS_server_host [ -a NIS_server_addr ] -y NIS_domain [ table ] ...

nispopulate -F [ -x ] [ -f ] [ -u ] [ -v ] [ -S 0 | 2 ] [ -d NIS+_domain ] [ -l network_passwd ] [ -p directory_path ] [ table ] ...

nispopulate -C [ -x ] [ -f ] [ -v ] [ -d NIS+_domain ] [ -l network_passwd ] [ hosts | passwd ]

Description

The nispopulate command can be used to populate NIS+ tables in a specified domain from their corresponding files or NIS maps. The nispopulate command assumes that the tables have been created either through the nisserver command or the nissetup command.

The table argument accepts standard names and non-standard key-value type tables. See nisaddent for more information on key-value type tables. If the table argument is not specified, nispopulate will automatically populate each of the standard tables. These standard (default) tables are: auto_master, auto_home, ethers, group, hosts, networks, passwd, protocols, services, rpc, netmasks, bootparams, netgroup, aliases, and shadow.

Note: The shadow table is only used when populating from files. The non-standard tables that nispopulate accepts are those of key-value type. These tables must first be created manually with the nistbladm command.

Use the first syntax ( -Y) to populate NIS+ tables from NIS maps. The nispopulate command uses the ypxfr command to transfer the NIS maps from the NIS servers to the /var/yp/NIS_domain directory on the local machine. Then, it uses these files as the input source.

Note: NIS_domain is case sensitive. Make sure there is enough disk space for that directory.

Use the second syntax ( -F) to populate NIS+ tables from local files. The nispopulate command will use those files that match the table name as input sources in the current working directory or in the specified directory.

When populating the hosts and passwd tables, the nispopulate command will automatically create the NIS+ credentials for all users and hosts that are defined in the hosts and passwd tables, respectively. A network password is required to create these credentials. This network password is used to encrypt the secret key for the new users and hosts. This password can be specified using the -l flag or it will use the default password, nisplus. This nispopulate will not overwrite any existing credential entries in the credential table. Use nisclient to overwrite the entries in the credential table. It creates both LOCAL and DES credentials for users and only DES credentials for hosts. To disable automatic credential creation, specify the -S 0 flag.

The third syntax ( -C) is used to populate NIS+ credential table with level 2 authentication (DES) from the passwd and hosts tables of the specified domain. The valid table arguments for this operation are passwd and hosts. If this argument is not specified, then it will use both passwd and hosts as the input source.

If nispopulate was earlier used with the -S 0 flag, then no credentials were added for the hosts or the users. If later the site decides to add credentials for all users and hosts, then this ( -C) flag can be used to add credentials.

The nispopulate command normally creates temporary files in the directory /tmp. You may specify another directory by setting the environment variable TMPDIR to your chosen directory. If TMPDIR is not a valid directory, then nispopulate will use /tmp.

Flags

Item Description
-a NIS_server_addr Specifies the IP address for the NIS server. This flag is only used with the -Y flag.
-C Populates the NIS+ credential table from passwd and hosts tables using DES authentication (security level 2).
-d NIS+_domain. Specifies the NIS+ domain. The default is the local domain.
-F Populates NIS+ tables from files.
-f Forces the script to populate the NIS+ tables without prompting for confirmation.
-h NIS_server_host Specifies the NIS server hostname from where the NIS maps are copied from. This is only used with the -Y flag. This host must already exist in either the NIS+ hosts table or /etc/hosts file. If the hostname is not defined, the script will prompt you for its IP address, or you can use the -a flag to specify the address manually.
-l network_passwd Specifies the network password for populating the NIS+ credential table. This is only used when you are populating the hosts and passwd tables. The default passwd is nisplus.
-n Does not overwrite local NIS maps in var/yp/NISdomain directory if they already exist. The default is to overwrite the existing NIS maps in the local /var/yp/NISdomain directory. This is only used with the -Y flag.
-p directory_path Specifies the directory where the files are stored. This is only used with the -F flag. The default is the current working directory.
-S 0 | 2 Specifies the authentication level for the NIS+ clients. Level 0 is for unauthenticated clients, and no credentials will be created for users and hosts in the specified domain. Level 2 is for authenticated (DES) clients, and DES credentials will be created for users and hosts in the specified domain. The default is to set up with level 2 authentication (DES). There is no need to run the nispopulate command with the -C flag for level 0 authentication.
-u Updates the NIS+ tables (that is, adds, deletes, modifies) from either files or NIS maps. This flag should be used to bring an NIS+ table up to date when there are only a small number of changes. The default is to add to the NIS+ tables without deleting any existing entries. Also, see the -n flag for updating NIS+ tables from existing maps in the /var/yp directory.
-v Runs the script in verbose mode.
-x Turns the "echo" mode on. The script just prints the commands that it would have executed. The commands are not actually executed. The default is off.
-Y Populates the NIS+ tables from NIS maps.
-y NIS_domain Specifies the NIS domain to copy the NIS maps from. This is only used with the -Y flag. The default domainname is the same as the local domainname.

Examples

  1. To populate all the NIS+ standard tables in the domain xyz.ibm.com. from NIS maps of the yp.ibm.com domain as input source where host yp_host is a YP server of yp.ibm.com, enter:
    /usr/lib/nis/nispopulate -Y -y yp.ibm.COM -h yp_host -d xyz.ibm.com.
  2. To update all of the NIS+ standard tables from the same NIS domain and hosts shown above, enter:
    /usr/lib/nis/nispopulate -Y -u -y yp.ibm.COM -h yp_host -d xyz.ibm.com.
  3. To populate the hosts table in domain xyz.ibm.com. from the hosts file in the /var/nis/files directory and using somepasswd as the network password for key encryption, enter:
    /usr/lib/nis/nispopulate -F -p /var/nis/files -l somepasswd hosts
  4. To populate the passwd table in domain xyz.ibm.com. from the passwd file in the /var/nis/files directory without automatically creating the NIS+ credentials, enter:
    /usr/lib/nis/nispopulate -F -p /var/nis/files -d xys.ibm.com. -S 0 passwd
  5. To populate the credential table in domain xyz.ibm.com. for all users defined in the passwd table, enter:
    /usr/lib/nis/nispopulate -C -d xys.ibm.com. passwd
  6. To create and populate a non-standard key-value type NIS+ table, private, from the file /var/nis/files/private: (nispopulate assumes that the private.org_dirkey-value type table has already been created), enter:
    /usr/bin/nistbladm -D access=og=rmcd,nw=r \
         -c private key=S,nogw= value=,nogw= private.org.dir
    /usr/lib/nis/nispopulate -F -p /var/nis/files private

Files

Item Description
/etc/hosts Local host name database
/var/yp NIS (YP) domain directory
/var/nis NIS+ domain directory