Some NIS+ table administration tasks can be performed more easily with Solstice AdminSuitetools 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 -a column="value" \ column="value" \ column="value" \ ... tablename nistbladm -a indexedname |
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 13-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 may 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 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 13-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.)