Some NIS+ table administration tasks can be performed more easily with Solstice AdminSuiteTM tools if you have them available.
The nistbladm command is the primary NIS+ table administration command. The nistbladm command is for use on NIS+ tables stored in an NIS+ directory object. With it, you can create, modify, and delete NIS+ tables and entries. To create a table, its directory must already exist. To add entries to the table, the table and columns must already be defined.
To create a table, you must have create rights to the directory under which you will create it. To delete a table, you must have destroy rights to the directory. To modify the contents of a table, whether to add, change, or delete entries, you must have modify rights to the table or the entries.
The general syntax of the nistbladm command is:
nistbladm options \ [columspec | columnvalue] \ [tablename | indexedname] |
Where:
columnspec is a specification defining a column to be created in a table as described in Specifying Table Columns.
columnvalue identifies a particular cell value in the table identified by tablename as described in nistbladm and Column Values.
tablename is the name of the table. For example, hosts.org_dir.doc.com.
indexedname identifies a particular cell value in a certain table as described in nistbladm and Column Values. In essence indexedname is the equivalent of columnvalue plus tablename.
Option |
Description |
---|---|
-a | -A |
Add an entry to an existing NIS+ table. The -a option returns an error if execution of the command would result in overwritting any existing entry. The -A option forces execution of the command even if it results in overwriting an existing entry. (See Adding Entries to a Table.) |
-D defaults |
Specify a different set of default properties when creating an object. (See the nistbladm man page for details.) |
-d |
Destroy a table. (See Deleting a Table.) |
-c |
Create a table. (See Creating a New Table.) |
-r | -R |
Remove one or more entries from an existing NIS+ table. The -r option returns an error if execution of the command would result in removal of more than one entry. The -R option forces execution of the command even if it results in removing multiple entries. (See Removing Table Entries.) |
-m |
An obsoleted option for modifying table entries that is still supported for backwards compatibility. The -e and -E options are the preferred method for editing entries. |
-e | -E |
Edit an entry in an existing NIS+ table. The -e option returns an error if execution of the command would affect more than one entry. The -A option forces execution of the command even if it results in changing an existing entry in such a way as to overwrite a different entry. (See Modifying Table Entries.) |
Column values are used to identify individual entries in tables using the format:
columname="value", \ columnname="value", ... |
Where:
columname is the name of a table column.
value is the contents of a particular cell within a column. That value is what identifies a table row. (When using column=value to create or modify table data, always enclose the value element in quotes.)
For example, suppose you had a hosts table that listed machine names and IP addresses:
Table 19–2 Example Hosts Table
IP address |
name |
aliases |
---|---|---|
129.146.168.4 |
altair | |
129.146.168.119 |
deneb |
|
129.146.168.120 |
regulus |
dnsmaster |
129.146.168.121 |
regulus |
dnsmaster |
129.146.168.11 |
sirius |
In this example, your could identify the altair entry (row) in three different ways using the column=value of:
name=altair
address=129.146.168.4
name=altair,address=129.146.168.4.
But notice in the table above that the machine regulus is multi-homed and has two IP addresses. In that case, the column=value of host=regulus identifies two rows. To identify just the first regulus row, you would enter either:
address=129.146.168.120 or
address=129.146.168.120.,name=regulus,dnsmaster
Some nistbladm operations require that you enter a column=value pair for every column in the table.
When an NIS+ table is created, one or more columns are designated searchable with either the S or the I flags as described in Specifying Table Columns. You can use the niscat -o tablename command to display a list of a table's columns and their characteristics.
A table is keyed on its searchable columns. This means that each row in the table must have a unique combination of values in the searchable columns. For example, if a table has one searchable column, each table row must have a unique value in that column, no two rows can contain the same value.
For example, suppose you had a table containing one searchable column named city and a non-searchable column named country. The following rows would all be permitted:
City |
Country |
---|---|
San Francisco |
United States |
Santa Fe |
United States |
Santiago |
Chile |
But you could not have two rows like:
City |
Country |
---|---|
London |
Canada |
London |
England |
If a table has multiple searchable columns, it is the combination of values that must be unique. For example, suppose you had a table containing two searchable columns, Lastname, Firstname and a non-searchable column named city. The following rows would all be permitted:
Lastname |
Firstname |
City |
---|---|---|
Kuznetsov |
Sergei |
Odessa |
Kuznetsov |
Rima |
Odessa |
Sergei |
Alex |
Odessa |
But you could not have two rows like this:
Lastname |
Firstname |
City |
---|---|---|
Kuznetsov |
Rima |
Odessa |
Kuznetsov |
Rima |
Chelm |
NIS+ commands use the values in the searchable columns to identify specific table rows.
In the context of table administration, an NIS+ indexed name is a name that combines a table name with column value search criteria to identify and select particular entries in a table. Indexed names use the format:
[search_criteria],tablename.directory |
Note that search_criteria must be enclosed in square brackets [ ]. The search_criteria use the format:
columname=value, \ columname=value,... |
Where columname=value pairs are column values from the table's searchable columns as described in nistbladm and Column Values.
For example, to identify the altair entry in Table 19–2 you could use the indexed name:
[addr=129.146.168.4,cname=altair],hosts.org_dir.doc.com. |
The nistbladm -R command allows you to remove all the entries in a table by using the two square brackets with nothing between them [ ] as a wildcard specifying all table rows.
In a Solaris-NIS+ environment, there are three types of groups:
UNIX groups. Information about UNIX groups is stored in the groups.org_dir table. Use nistbladm to administer UNIX group information.
Netgroups. Information about net groups is stored in the netgroups.org_dir table. Use nistbladm to administer net group information.
NIS+ groups. Information about NIS+ groups is stored in one or more tables in the groups_dir directory object. Use nisgrpadm to administer NIS+ group information.
Do not use nistbladm to administer NIS+ groups.
(See Solaris Groups for more information on the different types of groups and how to work with them.)