uss コマンド組を使用すると、 AFS ユーザー・アカウントの作成と削除を迅速かつ容易に行うことができます。単一アカウントの作成は、uss add コマンドを使って、単一アカウントの削除は、 uss delete コマンドを使って、また、複数アカウントの作成と削除は、 uss bulk コマンドを使って実行できます。
単一の uss add コマンドまたは uss bulk コマンドが、完全な AFS ユーザー・アカウントを作成できます。その理由は、 uss コマンド・インタープリターは、ユーザーが多くのアカウント・コンポーネントの構成を事前定義するテンプレート・ファイルを参照するからです。uss delete コマンドは、ユーザー・アカウントの多くのアカウント・コンポーネントを削除しますが、テンプレート・ファイルを使用しません。
また、uss 組は、ユーザーのサイトに固有のアカウントの作成と削除の一部を実行するために、ユーザーが書き込むシェル・スクリプトまたはほかのプログラムを容易に取り込みます。uss コマンドの実行と同時にスクリプトまたはプログラムを自動的に起動するには、テンプレート・ファイルまたはバルク入力ファイルにある適切な命令を使用します。この章のさまざまな機能グループでは、スクリプトの可能な使用方法について説明します。
uss コマンドを使用すると必要なステップの多くが自動化され、正しい順序で行われるので、このメソッドを使用してアカウントを作成および削除することをお勧めします。あるいは、一連の別のコマンドをさまざまな AFS サーバーに対して発行することによって、ユーザー・アカウントを作成できますが、ただしこの場合は uss コマンドを使用する場合よりもレコード保持に注意が必要です。説明については、ユーザー・アカウントの管理を参照してください。
この章では、指示されたコマンドを使用して次のタスクを行う方法について説明します。
単一ユーザー・アカウントを削除する | uss add |
単一ユーザー・アカウントを削除する | uss delete |
複数アカウントの追加と削除を行う | uss bulk |
uss 組内のコマンドは、AFS ユーザー・アカウントの作成と削除を自動化するのに、以下のように役立ちます。
AFS ユーザー・アカウントは、多くのコンポーネントを持つことができます。必須のコンポーネントは 2 つだけであり、保護データベースおよび認証データベースの項目です。ほかのコンポーネントは、以下の機能性と使用可能度を追加します。次の情報は、対応のセクション ユーザー・アカウントの管理 にも掲載されていますが、読者の便宜のためにここでも説明します。
uss コマンドを正常に発行するには、標準の AFS 管理権がすべて必要です。すなわち、system:administrators グループ内のメンバーシップ、関係のあるすべてのサーバー・マシン上の /usr/afs/etc/UserList ファイルへの包含、および認証データベース項目上の ADMIN フラグです。管理権についての詳細は、 管理権限の管理を参照してください。
複雑なオペレーションの例に違わず、アカウントの作成と削除操作が完了前に停止するにはいくつかのあり得る原因があります。 uss コマンドを発行する前に以下の点を確認することにより、いくつかの一般的な原因を容易に回避することができます。
オペレーションが停止するエラーを回避する別の方法は、-dryrun フラグを、実際のコマンドで使用されるほかの引き数と組み合わせて、uss コマンドを事前表示することです。 uss コマンド・インタープリターは、実際にコマンドを実行せずにそのコマンドによって実行されるアクションを画面上でトレースします。
-dryrun フラグを使用すると、オペレーションを停止する可能性のある多くの基本的エラー、特にコマンド行、テンプレート・ファイル、またはバルク入力ファイルにおける構文の誤りによって起きるエラーが明らかになります。ただし、このフラグによって、すべての起こり得るエラーが捕そくできるわけではありません。コマンド・インタープリターは、追跡しているアクションを実際に実行しようとしているわけではないからです。たとえば、ボリューム・サーバーの障害は、 -dryrun フラグが組み込まれているときには、必ずしもボリューム作成ステップを停止する必要はありません。コマンド・インタープリターが実際にサーバーを接続していないからです。このような障害は、実際の作成オペレーションを停止するだけです。
uss コマンド・インタープリターが、オペレーションを停止させる原因とはならないエラー条件に遭遇すると、通常、文字列 uss: Warning: で始まるメッセージをプリントし、停止を避けるために取ろうとしているアクションを説明します。たとえば、ユーザーの保護データベース項目が既にある場合、以下のメッセージが標準出力ストリームに表示されます。
uss: Warning: User 'user' already in the protection database The uid for user 'user' is AFS UID
Warning は、もっと重大なエラー・メッセージには表示されません。その代わり、重大なエラー・メッセージは、なぜコマンド・インタープリターが、要求されたアクションを実行できないのかという理由を説明します。これらのエラーのすべてが uss オペレーションを停止させる原因となるわけではありませんが、やはり、訂正アクションを必要とします。たとえば、親ディレクトリーの ACL 上で、必要なアクセス権を欠如している場合、あるいは、 V 命令の mount_point フィールド内のマウント・ポイント・パス名の形式が間違っている場合、マウント・ポイントを作成する試みは失敗します。けれども、このエラーは、その後、テンプレート内の命令が、サブディレクトリーまたはファイルを、存在していないマウント・ポイントの下でインストールしようとするまでは、作成オペレーションを停止させる原因にはなりません。
コマンド・シェル・プロンプトが、エラー・メッセージの後、直接に戻る場合は、一般的に、そのエラーは重大で、オペレーションを停止します。アカウントの作成中、または削除中にエラーにより停止した場合、回復するための最良の方法は、原因を見つけて修正し、その後、同じ uss コマンドを再発行します。
以下のリストでは、ユーザー・アカウントのコンポーネントが存在している場合に、アカウント作成コマンド (uss add コマンド、または、バルク入力ファイルに add 命令が含まれている場合は uss bulk コマンド) を再発行するとどうなるかについて説明しています。
uss delete コマンドが、すでに削除されているアカウント・コンポーネントを参照するとどうなるかということを以下に説明します。
セルの AFS のファイル・スペースへの認証済みアクセスを入手するには、ユーザーは有効な AFS トークンを持っているだけではなく、AFS クライアント・マシンのローカル・パスワード・ファイル (/etc/passwd または同等のファイル) に項目を持っていなければなりません。この機能グループでは、ユーザーの AFS UID が、ローカル・パスワード・ファイルにリストされる UNIX UID と一致することが重要である理由、ファイルのパスワード・フィールドに指定する適切な値、および単一ソースのパスワード・ファイルを作成する方法の概要について説明します。
テンプレート・ファイルの E 命令を使用して、アカウント作成の一部としてローカル・パスワード・ファイルの項目を自動生成する方法については、共通送信元パスワード・ファイルの作成 を参照してください。
次の情報は、対応のセクション ユーザー・アカウントの管理 にも掲載されていますが、読者の便宜のためにここでも説明します。
AFS ユーザー ID 番号 (AFS UID) と UNIX UID が一致する場合、ユーザー・アカウントは管理と使用が最も容易です。AFS 文書内のすべての命令は、2つの UID が一致することを前提としています。
AFS と UNIX の UID を同じにする最も基本的な理由は、UNIX の ls -l および ls -ld コマンドによって報告される所有者名が AFS のファイルやディレクトリーでも意味をなすようになることです。 UNIX の標準の慣習に従って、ファイル・サーバーは、AFS のファイルやディレクトリーの所有者フィールドの番号ではなくユーザー名、つまり、所有者の AFS UID を記録します。ls l コマンドを発行すると、ファイル・サーバーは AFS 保護データベースではなくローカル・パスワード・ファイルのマッピングに従って UID をユーザー名に変換します。 AFS と UNIX の UID が一致しない場合、ls -lコマンドは予期せぬ (正しくない) 所有者を報告します。ローカル・パスワード・ファイルが同じ UNIX UID を異なる名前にマップする場合は、異なるクライアント・マシン上では、出力が異なることがあります。
以下のようなさまざまなタイプのユーザーのアカウントを作成しているときには、指示された機能グループでの勧めに従って、AFS および UNIX UID を一致させてください。
AFS 仕様に変更されたログイン・ユーティリティーのインストールと構成を行う場合は、 AFS による認証が最も簡単です。AFS は、ユーザーをローカル・ファイル・システムに記録することと、 AFS トークンを入手することを 1 つのステップで行います。この場合、ローカル・パスワード・ファイルは、もはや、ほとんどの状況下で、ユーザーのログインする能力を制御しません。なぜなら、 AFS 仕様に変更されたログイン・ユーティリティーは、ユーザーが正しい AFS パスワードを提示したかどうかについて、ローカル・パスワード・ファイルを調べないからです。しかし、それでも、パスワード・ファイル項目内のパスワード・フィールド (通常、 2 番目のフィールド) を以下の方法で使用して、ログインと認証を制御できます。
AFS 仕様に変更したログイン・ユーティリティーを使用しない場合、標準の UNIX パスワードを、ユーザーが使用するすべてのクライアント・マシンのローカル・パスワード・ファイルに入れなければなりません。ユーザーは、ローカル・ファイル・システムだけにログインし、次に、 klog コマンドを発行して AFS と認証しなければなりません。ローカル・パスワード・ファイルと認証・データベースのパスワードが同じであれば、最も単純ですが、これは必須ではありません。
この機能グループでは、uss コマンドを使用してユーザー・アカウントを作成しているときに、ローカル・パスワード・ファイルの共通ソース・バージョンを作成する方法について説明します。ステップの順序は、次のとおりです。
たとえば、ABC Corporation が使用するテンプレートでは、次の E 命令を組み込んで、passwd_username という名前のファイルを /afs/.abc.com/common/etc/newaccts ディレクトリーに作成します (テンプレート・ファイルの全内容と E コマンドの詳細な説明は、それぞれ、uss テンプレート例と E 命令による 1 行ファイルの作成 にあります)。
E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \ "$USER:X:$UID:11:$NAME:$MTPT:/bin/csh"
smith というユーザー名を持ったユーザー、Joe L. Smith に対して、この命令は、passwd_smith と呼ばれるファイルを作成します。このファイルは、以下の行を含みます。
smith:X:1205:11:Joe L. Smith:/afs/abc.com/usr/usr1/smith:/bin/csh
この方法で作成されたセットのファイルを、共通送信元パスワード・ファイルに組み込む方法としては、おそらく、シェル・スクリプトが最も容易な方法です。そこで、2 つのサンプル・シェル・スクリプトが登場します。プロセスをさらに自動化するには、ファイル・サーバー・マシンの /usr/afs/local/BosConfig に cronプロセスを作成して、シェル・スクリプトを毎日一定の時刻に実行するようにします。詳細は、新規プロセスを作成および開始する方法 を参照してください。
注: | 以下のスクリプト例は、示唆にすぎません。それらを使用するか、あるいは、類似のスクリプトを作成するためにそれらをモデルとする場合は、ユーザーが欲している結果をそのスクリプトがもたらすことを、できれば、テスト環境でテストしなければなりません。 |
C シェル・スクリプトの例
最初の例は、ABC Corporation のセルに適した単純な C シェルです。この例では、/afs/.abc.com/common/uss/newaccts ディレクトリーで検出された個々のファイルを、アルファベット順にソートして、 /afs/.abc.com/common/etc ディレクトリーで検出された新規バージョンのグローバル・パスワード・ファイルに組み込みます。現行バージョンを .old 拡張子を付けて保管し、その後、組み込みが終了すると、個々のファイルを除去します。
set dir = /afs/.abc.com/common cat $dir/uss/newaccts/passwd_* $dir/etc/passwd >! $dir/etc/passwd.new mv $dir/etc/passwd $dir/etc/passwd.old sort $dir/etc/passwd.new > $dir/etc/passwd rm $dir/etc/passwd.new $dir/uss/newaccts/passwd_*
Bourne シェル・スクリプトの例
2 番目の、さらに複雑な例は、Bourne シェル・スクリプトです。これは、最初、グローバル・パスワード・ファイルに組み込まれる新規 passwd_username ファイルが存在することを検査します。これは実行中に、各新規項目がまだ存在していないことを検査します。より短い C シェルの例と同様に、この例は、 /afs/.abc.com/common/uss/newaccts ディレクトリーで検出された個々のファイルを、 /afs/.abc.com/common/etc ディレクトリーで検出された新規バージョンのグローバル passwd ファイルに組み込みます。
#!/bin/sh DESTDIR=/afs/.abc.com/common/uss/newaccts cd $DESTDIR DEST=/afs/.abc.com/common/etc cp /afs/.abc.com/common/etc/passwd /afs/.abc.com/common/uss/newaccts/passwd echo "copied in passwd file." PASSWD=/afs/.abc.com/common/uss/newaccts/passwd ENTRIES=`ls passwd_*` case $ENTRIES in "") echo No new entry found to be added to passwd file ;; *) echo "Adding new users to passwd file." for i in $ENTRIES do cat $i | awk -F: '{print $1 > "foo"}' USER=`cat foo` case `egrep -e \^$USER\: $PASSWD` in "") echo adding $USER cat $i >> $PASSWD ;; *) echo $USER already in passwd file ;; esac mv $i ../old.passdir/done_${i} done cd /afs/.abc.com/common/uss/newaccts echo "sorting password file" sort ${PASSWD} > ${PASSWD}.sorted echo "installing files" install ${PASSWD}.sorted ${DEST}/passwd echo "Password file is built, sorted and installed." ;; esac
このセクションでは、既存の UNIX アカウントがあり、そのアカウントを AFS アカウントに変換する場合に検討しなければならない 3 つの主要な問題について説明します。
前述のように、AFS ユーザーは、自分が承認済みユーザーとして AFS ファイル・スペースにアクセスするすべてのクライアント・マシン上のローカル・パスワード・ファイル内に項目を持っていなければなりません。UNIX UID と AFS UID が一致する場合は、管理と使用が両方とも、より単純になります。既存の UNIX アカウントを変換するとき、以下の 2 つの代替があります。
ユーザーの UNIX UIDを保存しているので、ローカル・パスワード・ファイル項目内の UID を更新する必要がない。しかし、AFS 仕様に変更されたログイン・ユーティリティーを使用している場合は、項目のパスワード・フィールドの変更が必要なことがあります。パスワード・フィールドの値が、 AFS 仕様に変更されたログイン・ユーティリティーによるログインにどのように影響するかについての説明は、uss によるローカル・パスワード・ファイル項目の作成を参照してください。
現在または将来、既存の UNIX UID アカウントを持っていない新規ユーザーに対して AFS アカウントを作成する必要がある場合は、新規 AFS UID が既存の UNIX UID のどれとも競合しないことを確認する必要がある。最も簡単な方法は、保護データベースの max user id カウンターを、既存の最大 UNIX UID よりも高い値に設定することです。AFS UID および GID カウンターの表示および設定 を参照してください。
AFS アカウントを作成するとき、保護サーバーに AFS UID を自動的に割り振らせることができる。アカウント作成中のローカル・パスワード・ファイルの新規項目の作成についての説明は、 uss によるローカル・パスワード・ファイル項目の作成を参照してください。
UNIX UID を変更することには、1 つの欠点がある。つまり、 AFS ユーザーになる前にユーザーがローカル・ファイル・システム内で所有していたファイルとディレクトリーの所有者フィールドに、前の UID が含まれたままであるということです。 ls -l および ls -ld コマンドによって、正しい所有者を表示したい場合、ファイルをローカル・ファイル・システムに残すか AFS に移動するかにかかわらず、chown コマンドを使用して、値をユーザーの新規 UID に変更します。ローカル・ファイルを AFS に移動する を参照してください。
既存の UNIX アカウントは、すでに、パスワード・フィールド内の (スクランブル) パスワードと共に、項目をローカル・パスワード・ファイル内に持っています。ログイン・ユーティリティーのタイプによっては、以下のようにパスワード・フィールド内の値の変更が必要になる場合があります。
実際のパスワードをローカル・パスワード・ファイル項目に入れることを選択する場合は、 E 命令による 1 行ファイルの作成 で説明したように、テンプレート・ファイル・ファイル内の E 命令を使用して、ダミー・パスワードを定義することができます。ユーザーに UNIX passwd コマンドを発行させて、ダミーを実際のシークレット・パスワードと置き換えます。
既存の UNIX アカウントは、おそらく、マシンのローカル・ファイル・システムに保管されたファイルとディレクトリーを所有しており、これらは、新しいホーム・ボリュームに転送すると意味をなします。最も容易なメソッドは、それらを、AFS クライアント・マシンのローカル・ディスク上に移動することであり、その後、UNIX mv コマンドを使用して、それらをユーザーの新規 AFS ホーム・ディレクトリーに転送します。
ファイルとディレクトリーを AFS に移動する際、それらのモード・ビットの意味が変更することに留意してください。 AFS では、モード・ビットの 2 番目と 3 番目のセット (グループおよびその他) を無視し、最初のセット (所有者ビット) は直接使用しません。ただし、ACL 上の項目と一緒の場合にのみ使用します (詳細は、 AFS が UNIX モード・ビットを解釈する方法 を参照してください)。 ACL がファイルまたはディレクトリーを少なくともモード・ビットと同じくらい安全に保護することを確認してください。
ユーザーの UNIX UID を変更して、新規 AFS UID に一致させることを選択した場合は、 UNIX ファイルとディレクトリーの所有権も変更しなければなりません。AFS に常駐している system:administrators グループのメンバーだけが、 chown コマンドをファイルおよびディレクトリー上で発行することができます。
uss コマンドによるユーザー・アカウントの作成は、一般的に、個別のコマンドよりも便利です。アカウントの作成プロセスは、密着して制御することができますが、 uss テンプレート・ファイルにより、アカウント作成の多くの局面を事前に定義することができます。テンプレートを構成してから uss コマンドを発行するので、構成の詳細を注意深く検討し、構文エラーを訂正する時間があります。以下のリストは、テンプレートを使用するその他の利点について要約しています。
以下のリストは、テンプレート・ファイルに表示できる命令について説明し、詳細を説明している後の機能グループを特定します。ここでは、それらは、さまざまなタイプの命令間の依存関係を正しく処理するために、通常、最適な順序で表示されます。
uss add および uss bulk コマンドを使用して、機能性のレベルが異なる 3 つのタイプのアカウントを作成できます。タイプの詳細な説明については、 AFS ユーザー・アカウントの作成を参照してください。以下のリストでは、それぞれのタイプに対するテンプレートの構成方法を説明します。
uss テンプレート・ファイルの各命令はいくつかのフィールドを持ち、それらのフィールドによって作成する要素の特性が定義されます。たとえば、D 命令のフィールドは、ディレクトリーのパス名、所有者、モード・ビット、および ACL を定義します。
3 つのタイプの値をフィールドに入れることができます。つまり、変数、定数、またはその 2 つの組み合わせです。適切な値は、uss add コマンドにどの引き数を与えるかということ、またはバルク入力ファイル内のどのフィールドに add 命令を組み込むかによって異なります。
アカウント構成の局面がすべてのユーザーに対して同じ場合は、文字列を挿入することによって、定数値を該当フィールド内に定義する。たとえば、10,000 KB のスペース割り当て量をすべてのユーザー・ボリュームに割り当てるには、文字列 10000 を V 命令の quota フィールドに入れます。
一方、アカウント構成の局面がユーザーごとに異なる場合は、変数を該当フィールドに書き込みます。この場合、各アカウントを作成するときに、変数に対して値を与えなければなりません。これは、対応する引き数を uss add コマンドに与えるか、あるいは値を、バルク入力ファイルの add 命令の対応するフィールドに入れるかのいずれかで行います。
表 3 に要約するように、uss コマンドの組は、テンプレート変数のセットを定義します。テンプレート変数のセットのそれぞれが自己の値に対して、対応する送信元を持っています。用途についての説明は、各テンプレートの説明に関する、次の機能グループ (V 命令によるボリュームの作成
から X 命令によるコマンド実行まで) を参照してください。
変数 | 値の送信元 |
$AUTO | テンプレートの直前の G 命令 |
$MTPT | V 命令内の場合は、uss add コマンドへの -mount 引き数か、バルク入力ファイルの add 命令の mount_point フィールド。後続の命令内の場合は V 命令の mount_point フィールド |
$NAME | 与えられていれば、uss add コマンドへの -realname 引き数か、バルク入力ファイルの add 命令の mount_point フィールド。それ以外の場合は uss add コマンドへの -user 引き数か、バルク入力ファイルの add 命令の username フィールド |
$PART | uss add コマンドへの -partition 引き数か、バルク入力ファイルの add 命令の partition フィールド |
$PWEXPIRES | uss add コマンドへの -pwexpires 引き数か、バルク入力ファイルの add 命令の password_expires フィールド |
$SERVER | uss add コマンドへの -server 引き数か、バルク入力ファイルの add 命令の file_server フィールド |
$UID | 与えられていれば、uss add コマンドへの -uid 引き数か、バルク入力ファイルの add 命令の uid フィールド。それ例外の場合は保護サーバーによる自動割り当て |
$USER | uss add コマンドへの -user 引き数か、バルク入力ファイルの add 命令の username フィールド |
$1 から $9 | uss add コマンドへの -var 引き数か、バルク入力ファイルの add 命令の var1 から var9 までのフィールド |
変数の共通使用は、ユーザーのボリュームを収納しているファイル・サーバーとパーティションを定義することです。この定義作業は、しばしば、ユーザーごとに異なります。$SERVER 変数を V 命令の server フィールドに入れ、また、$PART 変数をその partition フィールドに入れます。uss add コマンドを使用する場合は、希望の値に -server および -partition 引き数を与えます。 uss bulk コマンドを使用する場合は、バルク入力ファイル内の各ユーザーの add 命令の file_server フィールドと partition フィールドに希望の値を指定します。
$1 から $9 までの変数により、アカウントの他の特徴をカスタマイズすることができます。これらの変数に値を与えるには、 uss add コマンドに対する -var 引き数を使うか、またはバルク入力ファイルの add 命令の該当フィールドに値を入れます。 -var 引き数は、それに対する各インスタンスが 2 つの部分、つまり、番号インデックスおよび値を、スペースで分離されて持っているという点で、ほかの引き数とは異なります。番号変数の使用例については、 V 命令によるボリュームの作成 の mount_point および quota フィールドの説明を参照してください。
アカウント構成のいくつかの局面が、一部、定数、一部、変数である場合は、変数と定数を命令フィールドで結合できます。たとえば、ABC Corporation が、ユーザー・ボリュームを /afs/abc.com/usr ディレクトリーにマウントするとしましょう。パス名のユーザー・ボリュームの部分は定数ですが、マウント・ポイントとホーム・ディレクトリーの名前はユーザーのユーザー名であり、このユーザー名が $USER 変数に対応していますアカウントをこの方法で構成するには、V 命令の mount point フィールド内の定数文字列と変数を以下のように結合します。
/afs/abc.com/usr/$USER
次に、uss add コマンドに -user 引き数を使用するか、バルク入力ファイル内の各ユーザーの add 命令の username フィールドを使用するかして、$USER 変数の値を設定します。
テンプレートは、uss コマンド・インタープリターに対して使用可能でなければなりません。なぜなら、テンプレートは、たとえ、それが認証専用アカウントの作成に適切なゼロ長ファイルであっても、 uss add または uss bulk コマンドを実行するからです。
uss add コマンドまたは uss bulk コマンドに -template 引き数を与えない場合、コマンド・インタープリターは次の各ディレクトリー順に uss.template という名前のファイルを検索します。
異なる名前を持ったテンプレート・ファイルを使用するか、あるいは、異なるディレクトリーに保管するされたテンプレート・ファイルを uss add または uss bulk コマンドに対する -template 引き数に組み込みます。ファイル名だけを与えると、コマンド・インタープリターは、ファイル名を、直前にリストされたディレクトリー内で探します。パス名とファイル名を与えると、コマンド・インタープリターは、指定されたディレクトリーだけを探し、部分的パス名を現行作業ディレクトリーに対する相対と解釈します。
この機能グループでは、テンプレート・ファイルを組み立てるときに従う、いくつかの一般的規則について要約します。各命令の構文の定義については、次のセクション (G 命令によるユーザー・ホーム・ディレクトリーの均等配布 から X 命令によるコマンド実行 まで) を参照してください。
G V D F E L S A X
D、E、および F 命令を使用して、ユーザーが uss コマンドを発行しているマシンのローカル・ファイル・システム内でディレクトリーまたはファイルを作成することは可能ですが、そのような使用法は、お勧めできません。その使用法は、以下の 2 つの複雑さを導く可能性があります。
代替案は、uss オペレーションが完了した後、ローカル・スーパーユーザー root となり、その後、必要な chown コマンドを発行することである。けれども、この代替案は、アカウント作成プロセスの自動化をそれだけ減じます。
マシンのローカル・ディスクを構成するためにお勧めするメソッドは、むしろ、 AFS package ユーティリティーを使用することです。 パッケージ・プログラムを使用したクライアント・マシンの構成 を参照してください。
この機能グループでは、基本およびフルアカウント・タイプのためのテンプレート (認証のみのアカウントのテンプレートは空です) の例について説明します。
最初の例では、基本アカウントを作成します。この例では、2 つの G 命令と 1 つの V 命令を含み、フィールドは、これらの命令の中で、ボリューム名、ファイル・サーバー・マシン、パーティション、 K バイト単位の割り当て量、マウント・ポイント、ホーム・ディレクトリー所有者、およびホーム・ディレクトリー・アクセス制御リストを定義します。ABC Corporation のセルでは、適切なテンプレートは以下のとおりです。
G /afs/.abc.com/usr1 G /afs/.abc.com/usr2 V user.$USER $SERVER.abc.com /vicep$PART 5000 $AUTO/$USER $UID \ $USER all staff rl
このタイプのテンプレートを使って uss add コマンドを発行するときは、以下の引き数を与えます。
保護サーバーは、自動的に、$UID 変数に対して AFS UID を割り当て、 G 命令は、$AUTO 変数に対して値を与えます。
以下のテンプレート・ファイル例では、ABC Corporation のセル内にフルアカウントを作成します。次のセクションでは命令のそれぞれのタイプを扱い、この例の効果について説明します。 V および E 命令がそれぞれ 2 行に表示されているのは、ただ、読みやすくするためであることに注意してください。
# # Specify the available grouping directories # G /afs/.abc.com/usr1 G /afs/.abc.com/usr2 # # Create the user's home volume # V user.$USER $SERVER.abc.com /vicep$PART 5000 /afs/.abc.com/$AUTO/$USER \ $UID $USER all abc:staff rl # # Create directories and files for mail # D $MTPT/.MESSAGES 0700 $UID $USER all abc:staff none D $MTPT/.Outgoing 0700 $UID $USER rlidwk postman rlidwk D $MTPT/Mailbox 0700 $UID $USER all abc:staff none system:anyuser lik # # Here are some useful scripts for login etc. # F $MTPT/.Xbiff 0755 $UID /afs/abc.com/admin/user/proto F $MTPT/.Xresources 0644 $UID /afs/abc.com/admin/user/proto F $MTPT/.Xsession 0755 $UID /afs/abc.com/admin/user/proto F $MTPT/.cshrc 0755 $UID /afs/abc.com/admin/user/proto F $MTPT/.login 0755 $UID /afs/abc.com/admin/user/proto F $MTPT/.logout 0755 $UID /afs/abc.com/admin/user/proto F $MTPT/.twmrc 0644 $UID /afs/abc.com/admin/user/proto F $MTPT/preferences 0644 $UID /afs/abc.com/admin/user/proto # # Make a passwd entry # E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \ "$USER:X:$UID:11:$NAME:$MTPT:/bin/csh" # # Put in the standard password/authentication checks # A $USER 250 noreuse 9 25 # # Create and mount a public volume for the user # X "create_public_vol $USER $1 $2" # # Here we set up the symbolic link to public directory # S /afs/abc.com/public/$USER $MTPT/public
数千のユーザー・アカウントを持ったセルでは、ユーザー・ボリュームに対するマウント・ポイントを複数の親ディレクトリーに配布することは、道理にかなっています。なぜなら、それらのマウント・ポイントをすべて 1 つのディレクトリーに入れると、ユーザー・ホーム・ディレクトリーがアクセスされたとき、ディレクトリー検索が顕著にスローダウンするからです。可能性のある解決策は、ユーザー・ホーム・ディレクトリーをアルファベット順にグループ化する親ディレクトリーか、または、大学や企業の部門など、反映する親ディレクトリーを作成することです。しかし、本当に大きなセルの場合、そのように分けられたグループであっても大きすぎて、ディレクトリーの検索が遅くなり、そのグループに属するユーザーはホーム・ディレクトリーにアクセスするたびに不当な不利益を被ることになります。ワークプレースの部門を反映するグループ化のもう 1 つの欠点は、ユーザーが部門との関係を変更すると、マウント・ポイントも移動しなければならないということです。
1 つの代替案は、ワークプレースの部門を表さない複数の親ディレクトリーに、ユーザー・ホーム・ディレクトリーを均等に配布することです。uss コマンドの組を使用すると、G 命令をそれぞれに対して、テンプレート・ファイルの先頭の位置で入れ、その後、 V 命令の mount_point フィールドで $AUTO 変数を使用することによって、ディレクトリーのリストを定義することができます。uss コマンド・インタープリターは、$AUTO 変数と出会うと、 G 命令によって名付けられ、かつ現在、最も少ない項目を持っているとディレクトリーと置換します。(実際、$AUTO 変数は、パス名を組み込んでいるどのフィールドにも、どのタイプの命令にも表示できます。あらゆる場合で、コマンド・インタープリターは、現在、最も少ない項目を持っているディレクトリーと置換します。)
G 命令の構文は以下のとおりです。
G directory
ここで、directory は、完全なディレクトリー・パス名か、または最終要素だけ (ディレクトリーそのもの) のいずれかを指定します。選択項目によって、 V 命令の mount_point フィールドに入れる適切な値を決定します。
読み取り専用のボリュームにマウント・ポイントを作成しようとしたことが原因の障害が起きないように、各ディレクトリーへの読み取り / 書き込みパスを指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、ボリュームの取り付け を参照してください。
たとえば、 uss テンプレート例 のフルアカウントに対する ABC Corporation のテンプレート例では、以下の 2 つのディレクトリーを定義します。
G /afs/.abc.com/usr1 G /afs/.abc.com/usr2
そして、値 $AUTO/$USER を、 V 命令の mount_point フィールドに書き込みます。同じ結果をもたらす 1 つの代替案は、ディレクトリーを以下のように定義することです。
G usr1 G usr2
そして、V 命令の mount_point フィールドに、さらに完全なパス名 /afs/.abc.com/$AUTO/$USER を指定します。
テンプレート・ファイルが空 (ゼロ長) でない限り、 1 つの (必ず 1 つだけの) V 命令がテンプレート・ファイル内に表示されねばなりません。 (uss アカウント作成オペレーションの一部としてユーザーに別のボリュームを作成するには、X 命令を使用して vos create コマンドを起動するか、このコマンドを fs mkmount コマンドなどの他のコマンドとともに起動するスクリプトを起動します。例については、X 命令によるコマンド実行 を参照してください。)
V 命令は、以下の AFS エンティティーを定義します。
V 命令内のフィールドについての以下の説明は、 uss テンプレート例 で述べたフルアカウント・テンプレート内の例を引用しています (ここで、命令が 2 行に表示されているのは、ただ、読みやすくするためです)。
V user.$USER $SERVER.abc.com /vicep$PART 5000 \ /afs/.abc.com/$AUTO/$USER $UID $USER all abc:staff rl
V 命令の構文は以下のとおりです。
V volume_name server partition quota mount_point owner ACL
ここで、
ユーザー名をボリューム名の一部として組み込む規則に従うには、$USER 変数をこのフィールドに組み込みます。この変数は、uss add コマンドへの -user 引き数か、バルク入力ファイルの add 命令の username フィールドから値を取得します。
ABC Corporation の例では、値 user.$USER を使用して、標準ボリューム名に user.username を割り当てます。たとえば、ユーザー smith に対してアカウントを作成する場合は、uss add コマンドへの引き数として -user smith を組み込むか、バルク入力ファイルの add 命令の username フィールドに値 smith を入れます。
異なるユーザーのボリュームを異なるファイル・サーバー・マシンに入れるには、$SERVER 変数をこのフィールド内で使用し、uss add コマンドに対する -server 引き数か、または、バルク入力ファイルの add 命令の server フィールドかのいずれかによって、値をこの変数に与えます。コマンド行にすべてをタイプすることなく、完全に修飾されたホスト名を指定する容易な方法の 1 つは、定数と $SERVER 変数を結合することです。具体的に言うと、定数が、すべてのファイル・サーバー・マシンに対して共通のドメイン名サフィックスを指定します。
ABC Corporation の例では、セル内のすべてのファイル・サーバー・マシンが abc.com ドメイン名サフィックスを共用しており、したがって、server フィールドが変数と定数を結合して、 $SERVER.abc.com を作成します。この新規ボリュームをマシン fs1.abc.com に入れるには、 -server fs1 を uss add コマンドに対する引き数として組み込むか、あるいは、値 fs1 をバルク入力ファイルの add 命令の server フィールドに入れます。
異なるユーザーのボリュームを異なるパーティションに入れるには、$PART 変数をこのフィールド内で使用し、 uss add コマンドに対する -partition 引き数か、または、バルク入力ファイルの add 命令の partition フィールドかのいずれによって、値をこの変数に与えます。すべての完全なパーティション名は、/vicep 文字列で始まるので、その文字列を定数として $PART 変数と結合させると便利です。
ABC Corporation のテンプレート例では、定数文字列 /vicep と $PART 変数をこのように結合し、 /vicep$PART としています。
読み取り専用のボリュームに新規のマウント・ポイントを作成しようとしたことが原因の障害が起きないように、マウント・ポイントへの読み取り /書き込みパスを指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。このフィールドに $AUTO 変数を使用する場合、それぞれの G 命令によって命名されるディレクトリーは、既に読み取り / 書き込みパスを示しているはずです。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、ボリュームの取り付け を参照してください。
また、マウント・ポイント名のほかの部分がユーザーごとに異なる場合は、$MTPT 変数をこのフィールド内で使用し、 uss add コマンドの -mount 引き数か、または、バルク入力ファイルの add 命令の mount_point フィールドかによって、値を与えることができます。けれども、$MTPT 変数が、テンプレート内で後に続く命令内 (通常、D、 E、または F 命令内) に表示される場合は、この変数が代わりにこのフィールドの全コンテンツをその値として取ることに注意してください。
ホーム・ディレクトリーを、 1 つまたは複数の親ディレクトリー内にどのようにグループ化するかというユーザーの決定に基づき、定数と変数を結合します。テンプレートを参照する uss add または uss bulk コマンドを実行する前に、親ディレクトリーがすでに存在していなければならないということに注意してください。ホーム・ディレクトリーをグループ化するための可能性としては、以下の事項があります。
$AUTO 変数は、ホーム・ディレクトリーをこの方法で均等に配布するために設計されています。G 命令によるユーザー・ホーム・ディレクトリーの均等配布 で説明したように、 uss コマンド・インタープリターは、先行の G テンプレート命令によって定義され、かつ現在、最も少ない項目を持っているディレクトリーと置換します。ABC Corporation のテンプレート例では、この選択を値 /afs/.abc.com/$AUTO/$USER を使用して説明しています。
おそらく、このスキーマをインプリメントする最も簡単な方法は、$MTPT 変数を使用して、/afs/.jkl.com/usr/$MTPT/$USER のように文字を表すことです。そして、uss add コマンドに -user smith および -mount s/m という引き数を与えて、マウント・ポイント /afs/.jkl.com/usr/s/m/smith を作成します。
このフィールドに、値 $USER all を組み込むことによって、少なくとも、すべてのアクセス権を新規ユーザーに許可します。ファイル・サーバーは、自動的にすべてのアクセス権を system:administrators グループにも許可します。アクセス権を ussコマンドの発行者に対して許可することはできません。なぜなら、アカウント作成の最後のステップとして、uss コマンド・インタープリターは、作成プロセス中に自動的にそのユーザーをすべての ACL セットから削除するからです。
ABC Corporation の例では、次の値を使用して、新規ユーザーにすべてのアクセス権を許可し、abc:staff グループのメンバーには r (読み取り) および l (ルックアップ) 権限を許可しています。
$USER all abc:staff rl
テンプレート・ファイル内の各 D 命令が 1 つのディレクトリーを作成します。テンプレート内でのそれらの数には、制限がありません。 D 命令がサブディレクトリーを新規ユーザーのホーム・ディレクトリー内に作成する場合 (その意図された用法)、 D 命令は、V 命令に後続しなければなりません。uss コマンドが実行しているマシンのローカル・ディスク上にディレクトリーを作成することは、お勧めできません。お勧めできない理由については、ローカル・ディスクのディレクトリーとファイルの作成について で概説しています。
D 命令内のフィールドについての以下の説明は、 uss テンプレート例 からのフルアカウント・テンプレート内の例の 1 つを引用しています。
D $MTPT/Mailbox 0700 $UID $USER all abc:staff none system:anyuser lik
D 命令の構文は以下のとおりです。
D pathname mode_bits owner ACL
ここで、
読み取り専用のボリュームに新規ディレクトリーを作成しようとしたことが原因の障害が起きないように、ディレクトリーへの読み取り / 書き込みパス名を指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。このフィールドに $MTPT 変数を使用する場合、V 命令の mount_point フィールドの値は既に読み取り / 書き込みパスを示しているはずです。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、 ボリュームの取り付け を参照してください。
ABC Corporation の例では、値 $MTPT/Mailbox を使用して、 Mailbox サブディレクトリーをユーザーのホーム・ディレクトリーに入れます。
ABC Corporation の例では、値 0700 を使用して、 Mailbox サブディレクトリー上のモード・ビットを rwxr----- に設定します。
ディレクトリーが AFS 内に常駐している場合は、 ABC Corporation のテンプレート例のように $UID 変数をこのフィールド内に入れます。この後、保護サーバーは、ユーザーが、 -uid 引き数を uss add コマンドに与えるか、または、バルク入力ファイルの add命令の uid フィールドを埋めるかのいずれかを行う場合を除き、自動的に AFS UID を割り当てます。(既存の UNIX アカウントを変換する場合は、考慮事項の説明をさらに読むために、uss による既存の UNIX アカウントの変換 を参照してください。)
ディレクトリーがローカル・ディスクにある場合、uss コマンドを発行しているユーザー名か UNIX UID を指定するのが最も簡単です。別のもう1人のユーザーを指定することから生じる複雑さについての詳細は、 ローカル・ディスクのディレクトリーとファイルの作成について を参照してください。
値 $USER all を組み込むことによって、少なくとも、すべてのアクセス権を新規ユーザーに許可します。アクセス権を uss コマンドの発行者に対して許可することはできません。なぜなら、アカウント作成の最後のステップとして、uss コマンド・インタープリターは、作成プロセス中に自動的にそのユーザーをすべての ACL セットから削除するからです。 ローカル・ディスクのディレクトリーとファイルの作成について で詳細に説明したように、ディレクトリーがローカル・ディスク上にある場合は、エラー・メッセージが常に表示されます。
ABC Corporation の例では、次の値を使用して、新規のユーザーにはすべてのアクセス権を許可し、 abc:staff グループのメンバーにはまったく許可を与えず、system:anyuser グループのメンバーには l (ルックアップ)、i (挿入)、および k (ロック) の権限を与えています。
$USER all abc:staff none system:anyuser lik
この値は、非常に広範なアクセス権を system:anyuser グループに許可し、すべてのシステム・ユーザーに (メール送信・デーモンを含め)、メールを Mailbox ディレクトリーに挿入することを可能にします。r (読み取り)アクセス権の不在は、 system:anyuser グループのメンバーによるメール・ファイルの読み取りを阻止します。
テンプレート・ファイル内の各 F 命令が既存のプロトタイプ・ファイルのコンテンツをコピーすることによって、ファイルを作成します。テンプレート内でのそれらの数には制限がなく、それぞれが、異なるプロトタイプを参照することができます。 F 命令がファイルを、新規ユーザーのホーム・ディレクトリーまたはそのサブディレクトリー内に作成する場合 (その意図された用法)、 F 命令は、親ディレクトリーを作成する V または D 命令に後続しなければなりません。uss コマンドを実行しているマシンのローカル・ディスク上にファイルを作成することは、 ローカル・ディスクのディレクトリーとファイルの作成について で詳細に説明されている理由から、お勧めできません。
E 命令もファイルを作成しますが、 2 つのタイプの命令は相補利点を持っています。E 命令で作成されたファイルは、各ユーザーに対してカスタマイズすることができます。なぜなら、ファイルのコンテンツを指定するフィールドに変数を表示できるからです。対照的に、F 命令を使用して作成されたファイルのコンテンツは、すべてのユーザーに対して同じです。E ファイルは、必ず単一行でなければなりませんが、 F ファイルはどのような長さでもかまいません。
F 命令内のフィールドについての以下の説明は、 uss テンプレート例 からのフルアカウント・テンプレート内の例の 1 つを引用しています。
F $MTPT/.login 0755 $UID /afs/abc.com/admin/user/proto
F 命令の構文は以下のとおりです。
F pathname mode_bits owner prototype_file
ここで、
読み取り専用のボリュームに新規ファイルを作成しようとしたことが原因の障害が起きないように、ファイルへの読み取り / 書き込みパス名を指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。このフィールドに $MTPT 変数を使用する場合、V 命令の mount_point フィールドの値は既に読み取り / 書き込みパスを示しているはずです。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、ボリュームの取り付け を参照してください。
ABC Corporation の例では、値 $MTPT/.login を使用して、.login というファイルをユーザーのホーム・ディレクトリーに入れます。
ABC Corporation の例では、値 0755 を使用して、 .login ファイル上のモード・ビットを rwxr-xr-x に設定します。
ファイルが AFS 内に常駐している場合は、 ABC Corporation のテンプレート例のように $UID 変数をこのフィールド内に入れます。この後、保護サーバーは、ユーザーが、 -uid 引き数を uss add コマンドに与えるか、または、バルク入力ファイルの add命令の uid フィールドを埋めるかのいずれかを行う場合を除き、自動的に AFS UID を割り当てます。(既存の UNIX アカウントを変換する場合は、考慮事項の説明をさらに読むために、uss による既存の UNIX アカウントの変換 を参照してください。)
ファイルがローカル・ディスクにある場合、uss コマンドを発行しているユーザー名か UNIX UID を指定するのが最も簡単です。別のもう1人のユーザーを指定することから生じる複雑さについての詳細は、 ローカル・ディスクのディレクトリーとファイルの作成について を参照してください。
ABC Corporation の例では、ディレクトリー /afs/abc.com/admin/user/proto 内の .login と呼ばれるプロトタイプ・ファイルを参照します。
テンプレート・ファイル内の各 E 命令は、指定された単一行をテンプレート・ファイルにエコーすることによってファイルを作成します。テンプレート内では、それらの数に制限がありません。 E 命令がファイルを、新規ユーザーのホーム・ディレクトリーまたはそのサブディレクトリー内に作成する場合 (その意図された用法)、 E 命令は、親ディレクトリーを作成する V または D 命令に後続しなければなりません。uss コマンドを実行しているマシンのローカル・ディスク上にファイルを作成することは、 ローカル・ディスクのディレクトリーとファイルの作成について で詳細に説明されている理由から、お勧めできません。
F 命令もファイルを作成しますが、 2 つのタイプの命令は相補利点を持っています。E 命令で作成されたファイルは、各ユーザーに対してカスタマイズすることができます。なぜなら、ファイルのコンテンツを指定するフィールドに変数を表示できるからです。コマンド・インタープリターは、ファイルを作成する前に、変数を適切な値に置き換えます。対照的に、F 命令を使用して作成されたファイルのコンテンツは、すべてのユーザーに対して同じです。 E ファイルは、必ず単一行でなければなりませんが、 F ファイルはどのような長さでもかまいません。
E 命令は、特に、新規ユーザーに対する項目をセルの共通送信元パスワード・ファイル内で作成するのに適しています。この後、この項目は、クライアント・マシンにコピーされ、ローカル・パスワード・ファイル (/etc/passwd または同等の) としてサーブします。次のフィールドについての説明は、uss テンプレート例 の ABC Corporation のフルアカウント・テンプレートにおけるこのタイプの使用例を参照しています。この方法で作成されたファイルを、どのように共通送信元パスワード・ファイルに組み込むかということについての詳細は、 共通送信元パスワード・ファイルの作成 を参照してください。
E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \ "$USER:X:$UID:11:$NAME:$MTPT:/bin/csh"
E 命令の構文は以下のとおりです。
E pathname mode_bits owner "contents"
ここで、
読み取り専用のボリュームに新規ファイルを作成しようとしたことが原因の障害が起きないように、ファイルへの読み取り / 書き込みパス名を指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。このフィールドに $MTPT 変数を使用する場合、V 命令の mount_point フィールドの値は既に読み取り / 書き込みパスを示しているはずです。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、ボリュームの取り付け を参照してください。
ABC Corporation の例では、E 命令によって作成されたファイルを、以下のように新規ユーザーの名前にちなむ名前で、 /afs/.abc.com/common/etc/newaccts ディレクトリーに書き込みます。
/afs/.abc.com/common/etc/newaccts/passwd_$USER
ABC Corporation の例では、値 0644 を使用して、 passwd_user ファイル上のモード・ビットを r-xr--r-- に設定します。
ファイルが AFS 内に常駐して、ユーザーに所有される場合は、$UID 変数をこのフィールドに入れます。この後、保護サーバーは、ユーザーが、 -uid 引き数を uss add コマンドに与えるか、または、バルク入力ファイルの add命令の uid フィールドを埋めるかのいずれかを行う場合を除き、自動的に AFS UID を割り当てます。(既存の UNIX アカウントを変換する場合は、考慮事項の説明をさらに読むために、uss による既存の UNIX アカウントの変換 を参照してください。)
ファイルがローカル・ディスク上に常駐している場合は、 uss コマンドを発行しているユーザー名または UNIX UID を指定します。別のもう1人のユーザーを指定することから生じる複雑さについての詳細は、 ローカル・ディスクのディレクトリーとファイルの作成について を参照してください。
ABC Corporation の例では、AFS ファイルを、新規ユーザーによる直接使用のためではなく、共通パスワード・ファイルに組み込むために作成しています。したがって、例では、ローカル・スーパーユーザー root を新規ファイルの所有者として指定します。 AFS ファイル上の代替所有者の指定は複雑なことではありません。AFS ファイル上で chown コマンドを発行するには system:administrators グループのメンバーであることが必要ですが、uss コマンドを発行するためには特権管理者として認証されていなければなりません。
ABC Corporation の例では、以下の値を contents フィールドに持って、パスワード・ファイル項目を作成します。
$USER:X:$UID:10:$NAME:$MTPT:/bin/csh
テンプレート・ファイル内の各 L 命令は、標準の UNIX ln コマンドによって実行されたように、ハード・リンクを 2 つのファイル間に作成します。S 命令は、標準の UNIX ln -s コマンドによって実行されたように、記号リンクを 2 つのファイル間に作成します。リンクについて説明することは、この本の目的ではありませんが、両方の事例における基本的な有効性は、 2 番目の名前を既存のファイルに対して作成し、その結果、既存のファイルがどちらかの名前でアクセス可能になるということです。リンクを作成しても、ファイルの 2 番目のコピーは作成されません。
テンプレート・ファイル内の L または S 命令の数には、制限がありません。新規ユーザーのホーム・ディレクトリーかサブディレクトリー (意図的な使用) にリンクがある場合、これらの命令は親ディレクトリーを作成する V または D 命令、およびリンクされるファイルを作成する F、E、または X 命令に後続する必要があります。uss コマンドが実行しているマシンのローカル・ディスク上にファイルを作成することは、お勧めできません。お勧めできない理由については、ローカル・ディスクのディレクトリーとファイルの作成について で詳細を説明しています。
AFS は、同じディレクトリーに常駐するファイル間だけにハード・リンクを許可するということに注意してください。この制限は、2 つの潜在的に異なる ACL (2 つのディレクトリーの ACL) に、同じファイルを関連付けることから生じる混乱を除去するために必要です。記号リンクは、異なるディレクトリーに常駐する 2 つのファイル間で正当です。また、それどころか、異なるボリュームに常駐するファイル間でも正当です。実際のファイル上の ACL も同様にリンクに適用されます。
ディレクトリーまたはファイルに対して行うのとは異なり、 L または S 命令で作成されたリンク上では、所有者またはモード・ビットを設定しません。 uss コマンド・インタープリターは、自動的に uss コマンドの発行者の UNIX UID を所有者としてレコードし、モード・ビットを lrwxrwxrwx (777) に設定します。
L または S 命令内のフィールドについての以下の説明は、 uss テンプレート例 からのフルアカウント・テンプレート内の 1 つの例を引用しています。
S /afs/abc.com/public/$USER $MTPT/public
L および S 命令の構文は、以下のとおりです。
L existing_file link S existing_file link
ここで、
名前が番号記号 (#) またはパーセント記号 (%) で始まるファイルに対して、記号リンクを作成してはいけません。中身が # または % で始まるシンボリック・リンクを読み取ると、キャッシュ・マネージャーはそれを、それぞれ正規のマウント・ポイントと読み取り / 書き込み可能なマウント・ポイントとして解釈します。
ABC Corporation の例では、先行の X 命令によって作成とマウントを行われた共用読み取り可能ボリュームに対するリンクを作成します。
/afs/abc.com/public/$USER
読み取り専用のボリュームに新規のリンクを作成しようとしたことが原因の障害が起きないように、リンクへの読み取り / 書き込みパス名を指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。このフィールドに $MTPT 変数を使用する場合、V 命令の mount_point フィールドの値は既に読み取り / 書き込みパスを示しているはずです。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、ボリュームの取り付け を参照してください。
ABC Corporation の例では、 public と呼ばれるリンクをユーザーのホーム・ディレクトリーに以下のように作成します。
$MTPT/public
テンプレート・ファイル内のA 命令は、以下の制限をユーザーのパスワード選択および認証試行に課すことによってセルのセキュリティーを強化します。
A 命令内のフィールドについての以下の説明では、 uss テンプレート例 からのフルアカウント・テンプレート内の例を引用しています。この例では、パスワード存続時間を 250 日に設定し、パスワードの再使用を禁止し、認証試行の失敗回数を 9 回に制限し、この認証試行の失敗が制限回数を超えた場合、ロックアウト時間を 25 分に設定します。
A $USER 250 noreuse 9 25
A 命令の構文は以下のとおりです。
A username password_lifetime password_reuse failures locktime
ここで、
1 から 254 の範囲から整数を指定して、有効期限切れまでの日数を指定し、値 0 を指定して、パスワードが決して有効期限切れにならないことを指示し、または、値 $PWEXPIRES を指定して、 uss add または uss bulk コマンドの -pwexpires 引き数から日数を読み取ります。A 命令がテンプレート・ファイル内に表示されない場合、デフォルトでは、ユーザーのパスワードは決して有効期限切れになりません。
ABC Corporation の例では、250 日のパスワード存続時間を設定します。
ABC Corporation の例では、パスワードの再使用を禁止します。
1 から 254 の範囲から整数を指定して、許可される失敗回数を指定するか、または、値 0 を指定して、失敗回数に制限がないということを指示します。 A 命令がテンプレート・ファイル内に表示されない場合、デフォルトは、無制限の失敗回数を許可します。
ABC Corporation の例では、失敗試行の制限回数を 9 回に設定します。
時間と分の数 (hh:mm) または分だけ (mm) を、 01 (1 分) から 36:00 (36 時間) の範囲から指定します。認証サーバーは、自動的に、36:00 よりも大きいすべての値を 36:00 に削減し、また、すべての非ゼロ値を 8.5 分の倍数で、次に高い最初の値に切り上げます。値 0 (ゼロ) により、ロックアウト時間は無限に設定されます。この場合、管理者は常に kas unlock コマンドを発行してアカウントのロックを解除しなければなりません。
ABC Corporation の例では、ロックアウト時間を 25 分に設定します。これは、25 分 30 秒 に切り上げられます (8.5 分の、次に高い倍数)。
テンプレート・ファイル内の X 命令は、標準の UNIX コマンド、シェル・スクリプトやプログラム、AFS コマンドなどのコマンドを実行します。コマンド文字列は、標準のテンプレート変数を組み込むことができ、 X 命令は、いくつでもテンプレート・ファイル内に表示できます。命令が、別の命令によって作成された要素を操作する場合、その要素は命令の後に表示されねばなりません。
X 命令内のフィールドについての以下の説明は、 uss テンプレート例 からのフルアカウント・テンプレート内の例を引用しています。
X "create_public_vol $USER $1 $2"
X 命令の構文は以下のとおりです。
X "command"
ここで、command は、実行するコマンドを指定しています。1 行文字列がスペースを含んでいる場合は、二重引用符で囲みます。コマンド文字列は、 uss コマンド・インタープリターがコマンドを適切なほかのコマンド・インタープリターに渡す前に解決するどの標準変数でも含むことができます。しかし、改行文字を含むことはできません。
ABC Corporation の例では、create_public_vol と呼ばれるスクリプトを起動します。このスクリプトは、新規ユーザーと関連した別のボリュームを作成し、それを ABC Corporation のファイル・スペースの共通読み取り可能部分にマウントします。
"create_public_vol $USER $1 $2"
これは、$USER 変数を使用してユーザー名を読み取り、それをボリューム名およびマウント・ポイント名の両方の一部にします。uss コマンドの発行者は、新規ボリューム対するサイトを指定するために、 $1 変数に対して、ファイル・サーバー・マシン名を、$2 変数に対して、パーティション名を与えます。
テンプレート・ファイルを作成した後、 uss add コマンドを発行することによって、個別のアカウントを作成できます (テンプレート作成命令については、uss テンプレート・ファイルの作成を参照してください)。コマンドを発行すると、uss コマンド・インタープリターは AFS サーバーと交信して、以下の事項を行います。
異なるファイル・システム・オブジェクトを作成するために、どのタイプの命令をテンプレート内に組み込むかということを確認するには、 uss テンプレート・ファイルの作成 を参照してください。テンプレートが空の場合に、uss add コマンドを実行すると、保護データベースと認証データベース項目だけが作成されます。
uss add コマンドを発行するとき、テンプレート・ファイル内の各変数に対して、対応する引き数をコマンド行に組み込むことによって、値を与えてください。変数に対して値を与えることに失敗すると、uss コマンド・インタープリターは、空文字列と置換します。通常、これが原因で、アカウントの作成が失敗します。対応する変数がテンプレート内に表示されないコマンド行引き数を組み込むと、それは無視されます。
変数と uss add コマンドに対する引き数の間のマッピングは、表 4 に要約されています。この要約は、表 3 から適合させましたが、値をコマンド行引き数から取る変数だけを含めました。
表 4. uss テンプレート変数のコマンド行引き数の送信元
変数 | コマンド行引き数 |
$MTPT | -mount (V 命令に使用される場合) |
$NAME | 与えられていれば -realname、それ以外の場合は -user |
$PART | -partition |
$PWEXPIRES | -pwexpires |
$SERVER | -server |
$UID | 与えられていれば -uid、それ以外の場合は保護サーバーによる自動割り当て |
$USER | -user |
$1 から $9 | -var |
% klog admin_user Password: admin_password
次のリストは、必要な特権とそれを持っているかどうかの確認方法を示しています。
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% cd template_directory
uss add オペレーションによって、認証データベース項目を作成します。認証サーバーは、既存の AFS トークンを受け入れるのではなく、独自の認証を実行します。デフォルトでは、認証サーバーは、管理者のローカル (UNIX) 識別を認証します。この識別は AFS 特権管理者に対応しません。 -admin 引き数を組み込み、認証データベース項目に ADMIN フラグを持つ識別を指定します。項目にフラグがあることを確認するには、ADMIN フラグがオンになっていることを確認するで説明するように、kas examine コマンドを発行します。
% uss add -user <login name> -admin <administrator to authenticate> \ [-realname <full name in quotes>] [-pass <initial passwd>] \ [-pwexpires <password expires in [0..254] days (0 => never)>] \ [-server <FileServer for home volume>] \ [-partition <FileServer's disk partition for home volume>] \ [-mount <home directory mount point>] \ [-uid <uid to assign the user>] \ [-template <pathname of template file>] \ [-var <auxiliary argument pairs (Numval)>+] [-dryrun] \ [-overwrite] Administrator's (admin_user) password: admin_password
ここで、
この引き数は、テンプレート・ファイル内の $USER 変数に値を与えます。ユーザー名の標準化に関する提案については、 ユーザー名の選択とほかのアカウント・コンポーネントの命名を参照してください。
この引き数は、テンプレート・ファイル内の $NAME 変数に値を与えます。 /etc/passwd などのローカル・パスワード・ファイル内に項目を作成するための自動プロセスの一部として、この引き数と変数をどのように使用するかについて詳しくは共通送信元パスワード・ファイルの作成を参照してください。
初期パスワードの選択で、考えられる候補には、ユーザー名、社会保障番号などからの数字の文字列、または changeme などの標準文字列が含まれます。changemeは、この引き数を与えなかった場合のデフォルトです。テンプレート・ファイル内に、対応する変数がありません。
ユーザーが初めて AFS で認証した後すぐに、パスワードを本当の秘密の文字列に変更することを、ユーザーに指示してください。AFS 使用者の手引き では、AFS パスワードを変更するための kpasswd コマンドの使用方法を説明しています。
この引き数は、テンプレート・ファイル内の $PWEXPIRES 変数に値を与えます。
この引き数は、テンプレート・ファイル内の $SERVER 変数に値を与えます。完全に修飾されたホスト名をコマンド行にタイプしなければならないことを避けるには、 $SERVER 変数と定数 (たとえば、セルのドメイン名) とを、テンプレート・ファイル内の V 命令の server フィールドで結合します。例については、V 命令によるボリュームの作成 を参照してください。
この引き数は、テンプレート・ファイル内の $PART 変数に値を与えます。
この引き数は、テンプレート・ファイル内の $MTPT 変数に値を与えますが、 V 命令の mount_point フィールドに表示される値だけしか与えません。$MTPT 変数が以降の命令のどれかに表示される場合、それは、値を、この引き数から直接に取るのではなく、 V 命令の mount_point フィールドから取ります。この引き数と $MTPT 変数の使用方法についての詳細は、V 命令によるボリュームの作成 を参照してください。
この引き数を使用しなければならない理由がある場合 (おそらく、ユーザーがすでに UNIX UIDを所有しているので)、最初に、pts examine コマンドを使用して、どの既存アカウントも、望ましい AFS UID をまだ所有していないということを検査します。もし、所有しているアカウントが 1 つでもあれば、アカウント作成のプロセスは、エラーで終了します。
この引き数は、テンプレート・ファイル内の $UID 変数に値を与えます。
uss.template 以外のファイル名を、パス名なしで指定すると、コマンド・インタープリターは、そのファイル名を求めて、指示されたディレクトリーを検索します。フルパス名または部分パス名を指定すると、コマンド・インタープリターは、指定されたファイルだけと交信します。コマンド・インタープリターでは、パス名の一部は現行作業ディレクトリーとの関連で解釈されます。
指定されたテンプレート・ファイルが空 (ゼロ長) の場合、このコマンドは、保護および認証データベース項目だけを作成します。
テンプレート・ファイルの構成の仕方を学ぶには、uss テンプレート・ファイルの作成 を参照してください。
この引き数の各インスタンスに対して、以下の 2 つの部分を、指示された順序で、スペースで分離して与えます。
番号変数の使い方を学ぶには、 V 命令によるボリュームの作成 の V 命令の quota フィールドについての説明を参照してください。
% vos release <volume name or ID>
注: | このステップは、ホーム・ディレクトリーの親ディレクトリー自身が複写されたボリュームのマウント・ポイントでない場合 (その方が管理しやすい) にも必要です。たとえば、ABC Corporation のテンプレートがユーザー・ボリュームのマウント・ポイントを /afs/abc.com/usr ディレクトリーにするとします。このディレクトリーはマウント・ポイントではなく、通常のディレクトリーであるため、/afs/abc.com ディレクトリーにマウントされた root.cell ボリュームに存在します。このボリュームは複写されているため、管理者は、新規のマウント・ポイントを作成して変更を行った後で vos release コマンドを発行しなければなりません。 |
自動化メソッドを使用しない場合でも、保護サーバーによって自動的に割り当てるか、または、-uid 引き数を使って割り当てて、ユーザーの UNIX UID を AFS UID に一致するように設定します。新規ユーザーの AFS UID は uss add 出力によって生成されるトレースに表示されますが、保護データベース項目を表示する で説明されているように pts examine コマンドを使用して表示することもできます。
uss delete コマンドは、コマンド行に与える引き数に従って AFS ユーザー・アカウントを削除します。このコマンドは、 uss add コマンドとは違って、テンプレート・ファイルを使用しません。コマンドを発行すると、ussコマンド・インタープリターは AFS サーバーと交信して、以下の事項を行います。
uss delete コマンドを発行する前に、以下のオプション・タスクを実行することもできます。
バルク入力ファイルに exec 命令を組み込み、 uss bulk コマンドを使用してアカウントを削除することにより、これらのタスクの一部を自動化することができます。uss bulk コマンドによる複数のアカウントの作成と削除 を参照してください。
% klog admin_user Password: admin_password
次のリストは、必要な特権とそれを持っているかどうかの確認方法を示しています。
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
削除オペレーションによって、常にユーザーの項目は認証データベースから削除されます。認証サーバーは、既存の AFS トークンを受け入れるのではなく、独自の認証を実行します。デフォルトでは、認証サーバーは、管理者のローカル (UNIX) 識別を認証します。この識別は AFS 特権管理者に対応しません。 -admin 引き数を組み込み、認証データベース項目に ADMIN フラグを持つ識別を指定します。項目にフラグがあることを確認するには、 ADMIN フラグがオンになっていることを確認するで説明するように、kas examine コマンドを発行します。
% uss delete -user <login name> \ -mountpoint <mountpoint for user's volume> \ [-savevolume] -admin <administrator to authenticate> \ [-dryrun] Administrator's (admin_user) password: admin_password
ここで、
読み取り専用のボリュームからマウント・ポイントを削除しようとしたことが原因の障害が起きないように、マウント・ポイントへの読み取り /書き込みパスを指定してください。規則では、パス名の第 2 レベルのセル名の前にピリオドを付けて読み取り / 書き込みパスを示します (/afs/.abc.com など)。ファイル・スペースの読み取り / 書き込みパスと読み取り専用パスの概念の詳細については、 ボリュームの取り付け を参照してください。
% vos release <volume name or ID>
注: | このステップは、ホーム・ディレクトリーの親ディレクトリー自身が複写されたボリュームのマウント・ポイントでない場合 (その方が管理しやすい) にも必要です。たとえば、ABC Corporation のテンプレートがユーザー・ボリュームのマウント・ポイントを /afs/abc.com/usr ディレクトリーにするとします。このディレクトリーはマウント・ポイントではなく、通常のディレクトリーであるため、/afs/abc.com ディレクトリーにマウントされた root.cell ボリュームに存在します。このボリュームは複写されているため、管理者は、マウント・ポイントを削除して変更を行った後で vos release コマンドを発行しなければなりません。 |
uss bulk コマンドを使用すると、多くのアカウントを同時に作成したり、削除したりできます。このコマンドを実行する前に、以下の事項を行わなければなりません。
5 つのタイプの命令をバルク入力ファイルに組み込むことができます。つまり、 add、delete、exec、 savevolume、および delvolume です。以下に、それらの用法を説明します。
add 命令によるユーザー・アカウントの作成
各 add 命令が単一のユーザー・アカウントを作成します。したがって、基本的には、 1 つの uss add コマンドを発行するのと同じです。バルク入力ファイル内の add 命令の数には、制限がありません。
以下の構文ステートメントによって示されるように、命令のフィールドの順序は、 uss add コマンドに対する引き数の順序に一致します (コマンドの引き数によっては、対応するフィールドを持っていませんが)。 uss add コマンドの引き数のように、多くのフィールドは、 uss テンプレート・ファイル内の変数に対して値を与えます。各命令は、ファイル内で単一行でなければなりません (改行文字は、末尾だけに置けます)。ここで、改行文字が複数行に表示されているのは、ただ、読みやすくするためです。
add username[:full_name][:initial_password][:password_expires] [:file_server][:partition][:mount_point][:uid] [:var1][:var2][:var3][:var4][:var5][:var6][:var7][:var8][:var9][:]
各フィールドにおける許容値については、AFS Administration Reference の uss バルク入力ファイルの参照ページか、uss add コマンドにより AFS アカウントを作成するにはの uss add コマンドの対応する引き数の説明を参照してください。いくつかの基本事項を以下に掲げます。
delete 命令によるユーザー・アカウントの削除
各 delete 命令が単一のユーザー・アカウントを削除します。したがって、基本的には、1 つの uss delete コマンドを発行するのと同じです。バルク入力ファイル内の delete 命令の数には、制限がありません。
表示画面上では、複数の行にわたることがありますが、バルク入力ファイル内のすべての命令と同様に、各 delete 命令は、ファイル内で単一行でなければなりません (改行文字は、末尾だけに置けます)。中括弧 ({ }) は、相互に排他的な 2 つの選択項目を示します。
delete username:mount_point_path[:{ savevolume | delvolume }][:]
各フィールドにおける許容値については、AFS Administration Reference の uss バルク入力ファイルの参照ページか、 AFS アカウントを削除するには の uss delete コマンドの対応する引き数の説明を参照してください。いくつかの基本事項を以下に掲げます。
exec 命令によるコマンドまたはスクリプトの実行
exec 命令は、指示された AFS コマンド、コンパイル・プログラム、または UNIX シェル・スクリプトかコマンドを実行します。コマンド・プロセッサーは、uss bulk コマンドの発行者について、 AFS およびローカルの識別を想定します。このコマンドの発行者は、そのコマンドを実行するのに必要な特権を持っているはずです。
この命令の構文は、以下のとおりです。
exec command
command 文字列を二重引用符 (" ") またはほかの区切り文字で囲む必要はありません。
delvolume および savevolume 命令によるボリュームのデフォルト処理の設定
savevolume および delvolume 命令は、バルク入力ファイル内で後続する delete 命令によって参照されたボリュームのデフォルト処理を設定します。それらの構文は、以下のとおりです。
savevolume delvolume
両方の命令は、オプションであり、引き数も取りません。バルク入力ファイル内にどちらも表示されない場合、デフォルトによって、 delete 命令によって参照されたすべてのボリュームと VLDB 項目が除去されます。ファイルに savevolume 命令がある場合、この命令はファイル内の以降のすべての delete 命令によって参照されたボリュームと VLDB 項目の除去を防止します。delvolume 命令は、以降の delete 命令に対して明示的にデフォルト (削除) を設定します。
どちらの命令の効力も、バルク入力ファイルが終了するまでか、またはその反対の命令が表示されるまで続きます。特定の delete 命令に対する支配的デフォルトを上書きするには、 savevolume または delvolume 文字列を命令の 3 番目のフィールドに書き込みます。 (また、savevolume と delvolume 命令の複数のインスタンスを使用して、デフォルトの削除とボリューム保存を交互に切り替えることができます。)
認証専用のアカウントを作成するには、次の例のように最初の (username) 引き数だけを組み込んで add 命令を使用します。ユーザーの実名は、ユーザー名 (anderson) に一致するように設定され、初期パスワードは、文字列 changeme に設定されます。
add anderson
また、以下の例も認証専用のアカウントを作成しますが、実名および初期パスワードに対して非デフォルト値を設定します。
add smith:John Smith:js_pswd
次の 2 つの add 命令の例では、ABC Corporation セル (abc.com) の管理者が次の V 命令を含む uss テンプレート・ファイルを作成していることが必要となります。
V user.$USER $SERVER.abc.com /vicep$PART 10000 /afs/.abc.com/usr/$3/$USER \ $UID $USER all
販売部の John Smith と、財務部の Pat Jones の 2 人のユーザーに対してアカウントを作成するには、バルク入力ファイル内の適切な add 命令は、以下のとおりです。
add smith:John Smith:::fs1:a:::::marketing add jones:Pat Jones:::fs3:c:::::finance
Smith に対する新規アカウントは、smith と呼ばれる、保護および認証データベース項目で構成されています。彼の初期パスワードは、デフォルトの文字列 changeme であり、保護サーバーが彼の AFS UID を生成します。彼のホーム・ボリュームは user.smith という名前で、10,000 KB の割り当て量を持ち、ファイル・サーバー・マシン fs1.abc.com のパーティション /vicepa 上に存在し、 /afs/.abc.com/usr/marketing/smith にマウントされています。V 命令の末尾の $UID $USER all の部分が、彼に自分のホーム・ディレクトリーの所有権およびその ACL 上のすべてのアクセス権を与えています。jones のアカウントも同様ですが、ファイル・サーバー・マシン fs3.abc.com のパーティション /vicepc に存在し、/afs/.abc.com/usr/finance/jones にマウントされている点だけが異なります。
mount_point、uid、var1、および var2 に対応するフィールドが空 (最初の例の値 a と marketing の間) になることに注意してください。これは、テンプレート・ファイルの V命令に対応する値が与えられていないからです。initial_passwd フィールドと password_expires フィールドも空になります。
お望みならば、add 命令内の 9 つすべての番号変数に対して、値または空のフィールドを指定できます。その場合、バルク入力ファイル命令は次のようになります。
add smith:John Smith:::fs1:a:::::marketing:::::: add jones:Pat Jones:::fs3:c:::::finance::::::
以下の例は、いくつかの delete 命令と savevolume 命令を持ったバルク入力ファイルの機能グループです。最初の 3 つの命令が savevolume 命令の前に表示され、それらの 3 番目のフィールドがブランクであるので、対応するボリュームと VLDB 項目が除去されます。terry に対する delete 命令が savevolume 命令に後続しています。したがって、彼女のボリュームは、除去されません。しかし、 johnson に対するボリュームは、除去されます。なぜなら、delete 命令の 3 番目のフィールド内の delvolume 文字列が現行のデフォルトを上書きするからです。
delete smith:/afs/abc.com/usr/smith delete pat:/afs/abc.com/usr/pat delete rogers:/afs/abc.com/usr/rogers savevolume delete terry:/afs/abc.com/usr/terry delete johnson:/afs/abc.com/usr/johnson:delvolume
以下の exec 命令の例は、セットの add 命令とセットの delete 命令の間の区切り記号として有用です。この命令は、uss bulk コマンドの進行について知らせてくれるメッセージを標準出力ストリーム上に生成します。
exec echo "Additions completed; beginning deletions..."
% klog admin_user Password: admin_password
次のリストは、必要な特権とそれを持っているかどうかの確認方法を示しています。
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% cd template_directory
バルク・オペレーションは、常に認証データベースのユーザー項目を操作します。認証サーバーは、既存の AFS トークンを受け入れるのではなく、独自の認証を実行します。デフォルトでは、認証サーバーは、管理者のローカル (UNIX) 識別を認証します。この識別は AFS 特権管理者に対応しません。 -admin 引き数を組み込み、認証データベース項目に ADMIN フラグを持つ識別を指定します。項目にフラグがあることを確認するには、ADMIN フラグがオンになっていることを確認するで説明するように、kas examine コマンドを発行します。
% uss bulk <bulk input file> \ [-template <pathname of template file>] \ -admin <administrator to authenticate> \ [-dryrun] [-overwrite] \ [-pwexpires <password expires in [0..254] days (0 => never)>] \ [-pipe] Administrator's (admin_user) password: admin_password
ここで、
パスワードが無効になる (有効期限切れになる) と、ユーザーは、認証できなくなりますが、その後 30 日間は、 kpasswd コマンドを発行してパスワードを変更できます (それ以降は、パスワードを変更できるのは、管理者だけです)。
% vos release <volume name or ID>
注: | このステップは、ホーム・ディレクトリーの親ディレクトリー自身が複写されたボリュームのマウント・ポイントでない場合 (その方が管理しやすい) にも必要です。たとえば、ABC Corporation のテンプレートがユーザー・ボリュームのマウント・ポイントを /afs/abc.com/usr ディレクトリーにするとします。このディレクトリーはマウント・ポイントではなく、通常のディレクトリーであるため、/afs/abc.com ディレクトリーにマウントされた root.cell ボリュームに存在します。このボリュームは複写されているため、管理者は、マウント・ポイントを作成または削除して変更を行った後で vos release コマンドを発行しなければなりません。 |
自動化メソッドを使用しない場合でも、保護サーバーによって自動的に割り当てるか、または、-uid 引き数を使って割り当てて、ユーザーの UNIX UID を AFS UID に一致するように設定します。新規ユーザーの AFS UID は uss add 出力によって生成されるトレースに表示されますが、保護データベース項目を表示する で説明されているように pts examine コマンドを使用して表示することもできます。