nistbladm(1) User Commands nistbladm(1)NAMEnistbladm - NIS+ table administration command
SYNOPSISnistbladm-a | -A [-D defaults] colname = value... tablename
nistbladm-a | -A [-D defaults] indexedname
nistbladm-c [-D defaults] [-p path] [-s sep] type colname =
[flags] [, access]... tablename
nistbladm-d tablename
nistbladm-e | -E colname = value... indexedname
nistbladm-m colname = value... indexedname
nistbladm-r | -R [colname = value...] tablename
nistbladm-r | -R indexedname
nistbladm-u [-p path] [-s sep] [-t type]
[colname = access...] tablename
DESCRIPTION
The nistbladm command is used to administer NIS+ tables. There are
five primary operations that it performs: creating and deleting tables,
adding entries to, modifying entries within, and removing entries from
tables.
Though NIS+ does not place restrictions on the size of tables or
entries, the size of data has an impact on the performance and the disk
space requirements of the NIS+ server. NIS+ is not designed to store
huge pieces of data, such as files; instead, pointers to files should
be stored in NIS+.
NIS+ design is optimized to support 10,000 objects with a total size of
10M bytes. If the requirements exceed the above, it is suggested that
the domain hierarchy be created, or the data stored in the tables be
pointers to the actual data, instead of the data itself.
When creating tables, a table type, type, and a list of column defini‐
tions must be provided.
type is a string that is stored in the table and later used by the ser‐
vice to verify that entries being added to it are of the correct type.
Syntax for column definitions is:
colname=[flags][,access]
flags is a combination of:
S Searchable. Specifies that searches can be done on the column's
values (see nismatch(1)).
I Case-insensitive (only makes sense in combination with S). Speci‐
fies that searches should ignore case.
C Crypt. Specifies that the column's values should be encrypted.
B Binary data (does not make sense in combination with S). If not
set, the column's values are expected to be null terminated ASCII
strings.
X XDR encoded data (only makes sense in combination with B).
access is specified in the format as defined by the nischmod(1) com‐
mand.
When manipulating entries, this command takes two forms of entry name.
The first uses a series of space separated colname=value pairs that
specify column values in the entry. The second is a NIS+ indexed name,
indexedname, of the form:
[ colname=value, ... ],tablename
OPTIONS
The following options are supported:
-a | A Adds entries to a NIS+ table. The difference between
the lowercase `a' and the uppercase `A' is in the
treatment of preexisting entries. The entry's contents
are specified by the column=value pairs on the command
line. Values for all columns must be specified when
adding entries to a table.
Normally, NIS+ reports an error if an attempt is made
to add an entry to a table that would overwrite an
entry that already exists. This prevents multiple par‐
ties from adding duplicate entries and having one of
them get overwritten. If you wish to force the add, the
uppercase `A' specifies that the entry is to be added,
even if it already exists. This is analogous to a mod‐
ify operation on the entry.
-c Creates a table named tablename in the namespace. The
table that is created must have at least one column and
at least one column must be searchable.
-d tablename Destroys the table named tablename. The table that is
being destroyed must be empty. The table's contents can
be deleted with the -R option below.
-e|E Edits the entry in the table that is specified by
indexdname. indexdname must uniquely identify a single
entry. It is possible to edit the value in a column
that would change the indexed name of an entry.
The change (colname=value) may affect other entries in
the table if the change results in an entry whose
indexed name is different from indexedname and which
matches that of another existing entry. In this case,
the -e option will fail and an error will be reported.
The -E option will force the replacement of the exist‐
ing entry by the new entry (effectively removing two
old entries and adding a new one).
-m A synonym for -E. This option has been superseded by
the -E option.
-r|R Removes entries from a table. The xentry is specified
by either a series of column=value pairs on the com‐
mand line, or an indexed name that is specified as
entryname. The difference between the interpretation of
the lowercase `r' versus the uppercase `R' is in the
treatment of non-unique entry specifications. Normally
the NIS+ server will disallow an attempt to remove an
entry when the search criterion specified for that
entry resolves to more than one entry in the table.
However, it is sometimes desirable to remove more than
one entry, as when you are attempting to remove all of
the entries from a table. In this case, using the
uppercase `R' will force the NIS+ server to remove all
entries matching the passed search criterion. If that
criterion is null and no column values specified, then
all entries in the table will be removed.
-u Updates attributes of a table. This allows the concate‐
nation path (-p), separation character (specified with
the (-s)), column access rights, and table type string
(-t) of a table to be changed. Neither the number of
columns, nor the columns that are searchable may be
changed.
-D defaults When creating objects, this option specifies a differ‐
ent set of defaults to be used during this operation.
The defaults string is a series of tokens separated by
colons. These tokens represent the default values to be
used for the generic object properties. All of the
legal tokens are described below.
ttl=time This token sets the default time to
live for objects that are created by
this command. The value time is
specified in the format as defined
by the nischttl(1) command. The
default value is 12 hours.
owner=ownername This token specifies that the NIS+
principal ownername should own the
created object. Normally this value
is the same as the principal who is
executing the command.
group=groupname This token specifies that the group
groupname should be the group owner
for the object that is created. The
default value is NULL.
access=rights This token specifies the set of
access rights that are to be granted
for the given object. The value
rights is specified in the format as
defined by the nischmod(1) command.
The default value is
−−−−rmcdr−−−r−−−.
-p path When creating or updating a table, this option speci‐
fies the table's search path. When a nis_list() func‐
tion is invoked, the user can specify the flag FOL‐
LOW_PATH to tell the client library to continue search‐
ing tables in the table's path if the search criteria
used does not yield any entries. The path consists of
an ordered list of table names, separated by colons.
The names in the path must be fully qualified.
-s sep When creating or updating a table, this option speci‐
fies the table's separator character. The separator
character is used by niscat(1) when displaying tables
on the standard output. Its purpose is to separate col‐
umn data when the table is in ASCII form. The default
value is a space.
-t type When updating a table, this option specifies the ta‐
ble's type string.
EXAMPLES
Example 1 Creating an Unmodifiable Table
This example creates a table named hobbies in the directory foo.com.
of the type hobby_tbl with two searchable columns, name and hobby.
example% nistbladm-c hobby_tbl name=S,\
a+r,o+m hobby=S,a+r hobbies.foo.com.
The column name has read access for all (that is, owner, group, and
world) and modify access for only the owner. The column hobby is read‐
able by all, but not modifiable by anyone.
In this example, if the access rights had not been specified, the ta‐
ble's access rights would have come from either the standard defaults
or the NIS_DEFAULTS variable (see below).
Example 2 Adding Entries to the Table
To add entries to this table:
example% nistbladm-a name=bob hobby=skiing hobbies.foo.com.
example% nistbladm-a name=sue hobby=skiing hobbies.foo.com.
example% nistbladm-a name=ted hobby=swimming hobbies.foo.com.
Example 3 Adding the Concatenation Path
In the following example, the common root domain is foo.com (NIS+
requires at least two components to define the root domain) and the
concatenation path for the subdomains bar and baz are added:
example% nistbladm-u -p hobbies.bar.foo.com.:hobbies.baz.foo.com. \
hobbies
Example 4 Deleting Skiers from the List
To delete the skiers from our list:
example% nistbladm-R hobby=skiing hobbies.foo.com.
Note: The use of the -r option would fail because there are two
entries with the value of skiing.
Example 5 Naming a Column with no Flags Set
To create a table with a column that is named with no flags set, you
supply only the name and the equals (=) sign as follows:
example% nistbladm-c notes_tbl name=S,a+r,o+m note= notes.foo.com.
This example created a table, named notes.foo.com., of type notes_tbl
with two columns name and note. The note column is not searchable.
Example 6 Protecting Terminal Characters
When entering data for columns in the form of a value string, it is
essential that terminal characters be protected by single or double
quotes. These are the characters equals (=), comma (,), left bracket
([), right bracket (]), and space ( ). These characters are parsed by
NIS+ within an indexed name. These characters are protected by enclos‐
ing the entire value in double quote (") characters as follows:
example% nistbladm-a fullname="Joe User" nickname=Joe nicknames
If there is any doubt about how the string will be parsed, it is better
to enclose it in quotes.
ENVIRONMENT VARIABLES
NIS_DEFAULTS This variable contains a defaults string that will be
override the NIS+ standard defaults. If the -D switch
is used those values will then override both the
NIS_DEFAULTS variable and the standard defaults.
NIS_PATH If this variable is set, and the NIS+ table name is not
fully qualified, each directory specified will be
searched until the table is found. See nisdefaults(1).
EXIT STATUS
The following exit values are returned:
0 Successful operation.
1 Operation failed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWnisu │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOnis+(1), niscat(1), nischmod(1), nischown(1), nischttl(1), nisde‐
faults(1), nismatch(1), nissetup(1M), attributes(5)NOTES
NIS+ might not be supported in future releases of the Solaris operating
system. Tools to aid the migration from NIS+ to LDAP are available in
the current Solaris release. For more information, visit
http://www.sun.com/directory/nisplus/transition.html.
WARNINGS
To modify one of the entries, say, for example, from "bob" to "robert":
example% nistbladm-m name=robert [name=bob],hobbies
Notice that "[name=bob],hobbies" is an indexed name, and that the char‐
acters `[' (open bracket) and `]' (close bracket) are interpreted by
the shell. When typing entry names in the form of NIS+ indexed names,
the name must be protected by using single quotes.
It is possible to specify a set of defaults such that you cannot read
or modify the table object later.
SunOS 5.10 2 Dec 2005 nistbladm(1)