Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)

-e オプションを指定してエントリを編集する

-e オプションを指定した場合、1 つのエントリを編集します。複数エントリの検索可能列値を変更することになる場合は、編集は実行されず、エラーが返されます。このとき、検索不可列の値は考慮されません。


nistbladm column="value" \
 column="value" \
 ... indexedname

-e オプションを指定した場合、変更する列の値を指定するだけです。

ここで次のテーブルについて考えます。

Dept 

Site 

Name 

Sales 

SanFran 

Tsosulu 

Name 列の値を Chandar に変更するには、次のように入力します。


master% nistbladm -e Name="Chandar" [Dept='Sales',Site='SanFran'],\
 depts.doc.com.

修正後のテーブルは次のようになります。

Dept 

Site 

Name 

Sales 

SanFran 

Chandar 

(上記の例では、インデックス名に Name 列が含まれていません。これは、Name 列が検索可能ではないためです)。

C シェルを使っている場合は、角カッコを含む数式を引用符でオフセットすることもできます。

-e オプションを指定して検索可能列の値を編集するには、新たに指定した値が (インデックス名によって識別される) 1 行にだけ適用されることが条件になります。したがって、Dept 列の値を Manf に変更するには、次のように入力します。


master% nistbladm -e Dept="Manf" [Dept='Sales',Site='SanFran'],\
 depts.doc.com.

Dept (検索可能) 

Site (検索可能) 

Name 

Manf 

SanFran 

Chandar 

しかし、検索可能列に ManfSanFran という値を持つエントリがすでに存在する場合は、nistbladm -e はエラーを返します。

同一のエントリが対象である場合は、複数の列の変更を指定できます。たとえば、Dept 列と Name 列の値を変更するには、次のように入力します。


master% nistbladm -e Dept="Manf" Name=”Thi” \
 [Dept='Sales',Site='SanFran'],depts.doc.com.

Dept (検索可能) 

Site (検索可能) 

Name 

Manf 

SanFran 

Thi