uss add コマンドの命令を記述します。
構文
uss テンプレート・ファイルには、 uss add コマンド (または uss バルク入力ファイルの add 命令) で作成した AFS ユーザー・アカウントのコンポーネントを定義します。テンプレート・ファイルを指定する場合には、 -template 引き数を uss add または uss bulk コマンドに使用してください。
テンプレート・ファイルの命令の要約
テンプレート・ファイルには、次の命令を記述することができます。1 つの行に 1 つの命令を記述します。このリストの後で、各命令の構文について詳しく説明します。
テンプレート・ファイルが空 (ゼロ長) の場合、 uss add コマンドまたはバルク入力ファイルの add 命令は、保護および認証データベースに項目を作成し、uss add コマンドの -user 引き数、あるいはバルク入力ファイルの add 命令の username フィールドに指定された名前に従って、名前を定義するだけです。
uss テンプレート・ファイルの A 命令は、ユーザーのパスワード選択や認証の試行回数に対して次の制限を設定し、セルのセキュリティーを向上させます。この制限の詳細については、AFS 管理の手引き および kas setfields の解説ページを参照してください。
この命令の構文は、次のとおりです。
A username password_lifetime password_reuse failures locktime
ここで、
有効期限までの日数を指定する場合には、1 から 254 までの整数を指定してください。パスワードに有効期限を設定しない場合には、0 を指定してください。日数を uss add または uss bulk コマンドの -pwexpires 引き数から読み取る場合には、 $PWEXPIRES を指定してください。テンプレート・ファイルに A 命令がない場合には、デフォルトで、ユーザーのパスワードに有効期限は設定されません。
失敗回数を指定する場合には、1 から 254 までの整数を指定してください。失敗回数に制限を設定しない場合には、0 を指定してください。テンプレート・ファイルに A 命令がない場合には、デフォルトで、失敗回数に制限は設定されません。
時間と分 (hh:mm)、または分 (mm) だけを、01 (1 分) から 36:00 (36 時間) の範囲から指定します。36:00 より大きい値を指定すると、認証サーバーは自動的に値を最大値に変更します。また、ゼロ以外の値を指定すると、次の 8.5 分の倍数まで繰り上げます。0 (ゼロ) を設定すると、ロックアウト時間は無限になります。この場合、管理者が kas unlock コマンドを発行して、アカウントのロックを解除しなければなりません。
uss テンプレート・ファイルの D 命令はディレクトリーを作成します。これは、テンプレート・ファイルの V 命令で作成されたユーザーのホーム・ディレクトリーにサブディレクトリーを作成します。
テンプレート・ファイルには、複数の D 命令を記述することができます。この命令の変数の値が V 命令 ($MTPT 変数) から取得される場合には、この命令を V 命令の後に記述する必要があります。
D 命令を使用して、 uss コマンドを発行したマシンのローカル・ディスクにディレクトリーを作成することもできますが、これはお勧めしません。ローカル・ディスクに自動的にディレクトリーを作成する場合には、 package プログラムを使用してください。 pathname フィールドにローカル・ディスクのディレクトリーを指定すると、次の 2 つの複雑な問題が生じます。
この命令の構文は、次のとおりです。
D pathname mode_bits owner ACL
ここで、
ディレクトリーへの読み取り / 書き込みパスを指定して、新規のディレクトリーを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、 /afs/.abc.com)。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
AFS ディレクトリーの場合、少なくともディレクトリーの所有者にはすべてのアクセス権を許可してください。通常、これは新規ユーザーになるので、$USER all を使用してください。
uss コマンドの発行側にはアクセス権を設定することができません。アカウント作成の最後のステップで、uss コマンド・インタープリターは、作成プロセスで設定した ACL からこのユーザーを自動的に削除します。
uss テンプレート・ファイルの E 命令は、指定された文字列をエコーして、ファイルを作成します。これは、テンプレート・ファイルの V 命令で作成されたユーザーのホーム・ディレクトリーまたは D 命令で作成されたサブディレクトリーにファイルを作成します。
テンプレート・ファイルには、複数の E 命令を記述することができます。ファイルが D 命令で作成されたディレクトリーにある場合、E 命令は D 命令の後になければなりません。
E 命令と F 命令は、相補的な利点があります。 E 命令でファイルにエコーされた文字列には、 uss コマンド・インタープリターが、 uss add コマンドの引き数またはバルク入力ファイルの add 命令に指定された値に置換する標準的な変数が含まれているので、この文字列はユーザーごとにカスタマイズすることができます。逆に、 F 命令で作成されたファイルには変数を入れることができないため、その内容はすべてのユーザーに共通したものになります。ただし、文字列に改行を入れることができないため、 E 命令で作成されたファイルは、1 行のみのファイルになります。
E 命令を使用して、 uss コマンドを発行したマシンのローカル・ディスクにファイルを作成することもできますが、これはお勧めしません。ローカル・ディスクに自動的にファイルを作成する場合には、 package プログラムを使用してください。コマンドの発行側以外のユーザーを新しいファイルの所有者に指定する場合には、ローカル・スーパーユーザー root として、マシンにログオンしていなければなりません。デフォルトの所有者を変更するために、uss コマンド・インタープリターは、UNIX の chown コマンドを呼び出します。(ファイルの作成者が所有者になります。この場合には、uss コマンドの発行元になります。) ローカル・ディスクのファイルの場合、このコマンドが発行できるのは root ユーザーだけです。また、コマンドの発行側は、uss add または uss bulk コマンドで -admin を使用し、特権 AFS 管理者として認証される必要があります。この特権がないと、 uss コマンド・インタープリターで作成されたアカウントの項目を認証データベースおよび保護データベースに作成することができません。
この命令の構文は、次のとおりです。
E pathname mode_bits owner "contents"
ここで、
ファイルへの読み取り / 書き込みパスを指定して、新規のファイルを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、 /afs/.abc.com)。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
uss テンプレート・ファイルの F 命令は、既存のファイルの内容 (プロトタイプ) をコピーして、ファイルを作成します。これは、テンプレート・ファイルの V 命令で作成されたユーザーのホーム・ディレクトリーまたは D 命令で作成されたサブディレクトリーにファイルを作成します。
テンプレート・ファイルには、複数の F 命令を記述することができます。ファイルが D 命令で作成されたディレクトリーにある場合、F 命令は D 命令の後になければなりません。
E 命令と F 命令は、相補的な利点があります。 E 命令で作成されたファイルに変数がある場合には、ユーザーごとにカスタマイズすることができますが、F 命令で作成されたファイルの内容はすべてのユーザーに共通したものになります。ただし、E 命令で作成されたファイルは、1 行のみのファイルになりますが、F 命令でコピーされたプロトタイプ・ファイルは任意の長さにすることができます。
F 命令を使用して、 uss コマンドを発行したマシンのローカル・ディスクにファイルを作成することもできますが、これはお勧めしません。ローカル・ディスクに自動的にファイルを作成する場合には、 package プログラムを使用してください。コマンドの発行側以外のユーザーを新しいファイルの所有者に指定する場合には、ローカル・スーパーユーザー root として、マシンにログオンしていなければなりません。デフォルトの所有者を変更するために、uss コマンド・インタープリターは、UNIX の chown コマンドを呼び出します。(ファイルの作成者が所有者になります。この場合には、uss コマンドの発行元になります。) ローカル・ディスクのファイルの場合、このコマンドが発行できるのは root ユーザーだけです。また、コマンドの発行側は、uss add または uss bulk コマンドで -admin を使用し、特権 AFS 管理者として認証される必要があります。この特権がないと、 uss コマンド・インタープリターで作成されたアカウントの項目を認証データベースおよび保護データベースに作成することができません。
この命令の構文は、次のとおりです。
F pathname mode_bits owner prototype_file
ここで、
ファイルへの読み取り / 書き込みパスを指定して、新規のファイルを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、 /afs/.abc.com)。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
uss テンプレート・ファイルの G 命令は、uss コマンド・インタープリターが新規ユーザーのホーム・ディレクトリーの親ディレクトリーを選択するときに候補となるディレクトリーとして、ディレクトリーを作成します。具体的にいえば、V 命令の mount_point フィールドに $AUTO 変数がある場合、コマンド・インタープリターはその変数を、G 命令で定義され、現在最も項目の少ないディレクトリーで置き換えます。
この命令は、分類 (部門分割など) を反映したディレクトリーを使用せずに、ユーザー・アカウントをいくつかのディレクトリーに均等に配布することを目的としています。このようにホーム・ディレクトリーを配布する方法は、特に大規模なセルに有効です。すべてのユーザー・ホーム・ディレクトリーを 1 つの親ディレクトリーの下に格納すると、ディレクトリー検索が遅くなったり、ワークスペースに合わせて分割をすると、ディレクトリー・サイズに不均衡が生じ、ユーザーによっては、ディレクトリーを検索したときに速度が遅くなる場合があります。詳細については、AFS 管理の手引き で uss に関する章を参照してください。
テンプレート・ファイルには、複数の G 命令を記述することができます。 V 命令に $AUTO 変数がある場合、この命令は、ファイルの中ですべての G 命令の後になければなりません。
この命令の構文は、次のとおりです。
G directory
ここで、
ディレクトリーへの読み取り / 書き込みパスを指定して、 $AUTO 変数が V 命令の mount_point フィールドで使用されている場合に、新規のマウント・ポイントを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、/afs/.abc.com)。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
uss テンプレート・ファイルの L 命令は、2 つのファイル間のハード・リンクを作成します。これは、UNIX の 標準の ln コマンドと同じです。 S 命令は、2 つのファイル間のシンボリック・リンクを作成します。これは、UNIX の標準の ln -s コマンドと同じです。このドキュメントではリンクについて詳しく説明しませんが、リンクの基本的な機能は、既存のファイルに別の名前を作成し、いずれの名前でアクセスできるようにすることです。リンクを作成することと、ファイルのコピーを作成することは違います。
AFS は、リンクされたファイルが同一ディレクトリー内に常駐している場合にのみハード・リンクを許可します。これは、2 つのコピーが異なる ACL を持つ複数のディレクトリーに常駐している場合、どのアクセス制御リスト (ACL) がファイルに適用されているかの判別が困難になるためです。 AFS では、異なるディレクトリーまたは異なるボリュームにあるファイルにシンボリック・リンクを作成することはできます。ファイル・サーバーは、リンクではなく、実際のファイルに関連付けられている ACL を使用します。
テンプレート・ファイルには、複数の L および S 命令を記述することができます。既存のファイルまたはリンクが D 命令で作成されたディレクトリーにある場合、あるいは既存のファイルが E または F 命令で作成されている場合には、L または S 命令は、D、 E、または F 命令の後になければなりません。
これら命令の構文は次のとおりです。
L existing_file link S existing_file link
ここで、
リンクへの読み取り / 書き込みパスを指定して、新規のリンクを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、/afs/.abc.com)。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
uss テンプレート・ファイルの V 命令は、指定されたファイル・サーバー・マシンおよび区画にボリュームを作成し、その項目をボリューム・ロケーション・データベース (VLDB) に作成します。さらに、そのボリュームをユーザーのホーム・ディレクトリーになる AFS ファイル・スペースにマウントし、ディレクトリーの所有者を指定して、そのアクセス制御リスト (ACL) を設定します。
テンプレート・ファイルの中では、V 命令は 1つしか使用できません。また、テンプレート・ファイルに命令がある場合 (空ではない) には、この命令は必須です。他の命令はすべてオプションです。ただし、$AUTO 変数がテンプレートにある場合には、G 命令は必須です。 (V 命令は、必ずしもテンプレートの最初の行にある必要はありません。テンプレートに $AUTO 変数がある場合には、その変数に値を割り当てる G 命令が、ファイル内のその変数の前になければなりません。)
この命令の構文は、次のとおりです。
V volume_name server partition quota mount_point owner ACL
ここで、
/vicepa = vicepa = a = 0 /vicepb = vicepb = b = 1
/vicepz (これのインデックスは 25 です) の後には、以下が続きます。
/vicepaa = vicepaa = aa = 26 /vicepab = vicepab = ab = 27
次の値まで、以下同様となります。
/vicepiv = vicepiv = iv = 255
uss add コマンドの -partition 引き数から値を読み取る場合には、 $PART を指定してください。
マウント・ポイントへの読み取り / 書き込みパスを指定して、新規のマウント・ポイントを読み取り専用ボリュームに作成しようとして生ずる障害を回避してください。読み取り / 書き込みパスは、パス名の第 2 レベルでセル名の前にピリオドを付けて表すきまりになっています (たとえば、/afs/.abc.com)。 $AUTO 変数がこのフィールドに存在する場合には、 G 命令で指定したディレクトリーにすでに読み取り / 書き込みパスが指定されている場合があります。ファイル・スペースを介しての読み取り / 書き込みおよび読み取り専用パスの概念についての詳細は、 fs mkmount コマンドの解説ページを参照してください。
注: | このフィールドに $MTPT 変数があると、その値は uss add コマンドの -mount 引き数か、バルク入力ファイルの add 命令 の mount_point フィールドから取得されます。ただし、後続の命令に $MTPT 変数を使用すると (通常、D、 E、または F 命令に続いて)、このフィールドの完全な内容がその変数の値になります。 |
少なくとも新規のユーザーには、すべてのアクセス権を許可してください。適切な値は $USER all です。
AFS は、system:administrators グループにすべてのアクセス権を自動的に許可します。uss コマンドの発行側にはアクセス権を設定することができません。アカウント作成の最後のステップで、uss コマンド・インタープリターは、作成プロセスで設定した ACL からこのユーザーを自動的に削除します。
uss テンプレート・ファイルの X 命令は、指示されたコマンドを実行します。このコマンドは、標準 UNIX または AFS コマンドを含みます。このコマンドは、テンプレート・ファイルからすべての変数を含むことができます。この変数は、他の適切なコマンド・インタープリターにそのコマンドを渡す前に、 uss コマンド・インタープリターが解決します。ただし、このコマンドは単一行に限ります (改行または改行文字を含むことはできません)。
テンプレート・ファイルには、複数の X 命令を記述することができます。命令が、他の命令が作成した要素を操作する場合には、その命令は、そのファイルのその要素を作成した命令に従う必要があります。
この命令の構文は、次のとおりです。
X "command"
ここで、
例
次の A 命令の例は、254 日のパスワード存続時間を設定し、パスワードの再利用を禁止し、連続認証失敗回数を 9 回に制限し、対応するロック時間を 25:30 分 (8.5 分の倍数) に設定します。ユーザー名は、uss add コマンドの -user 引き数から、またはバルク入力ファイルの各 add 命令の username フィールドから、読み取られます。
A $USER 254 noreuse 9 25:30
次の D 命令の例は、新規ユーザーのホーム・ディレクトリーに public というディレクトリーを作成し、そのユーザーをディレクトリーの所有者として指定して、そのユーザーにすべての ACL アクセス権を許可します。
D $MTPT/public 0755 $UID $USER all
次の E 命令の例は、 username.etcp という現行作業ディレクトリーにファイルを作成します。その内容は、セルのグローバル /etc/password ファイルに取り込み可能な項目です。
E $USER.etcp 0644 root "$USER:X:$UID:10:$NAME:$MTPT:/bin/csh"
次の F 命令は、ABC 社のセルを例にとると、プロトタイプ .login ファイルをユーザーのホーム・ディレクトリーにコピーします。
F $MTPT/.login 0644 $UID /afs/abc.com/common/uss/skel/.login
次の例では、州立大学のセルの管理者が、ユーザーのホーム・ディレクトリーを 3 つのディレクトリーに公平に分配することを決定しました。管理者は、以下の 3 つの G 命令を定義します。
G usr1 G usr2 G usr3
次に、V 命令の mount_point フィールドに、以下の値を書き込みます。
/afs/stateu.edu/$AUTO/$USER
または、以下の G 命令のように、ディレクトリー全体のパス名を組み込む場合があります。
G /afs/stateu.edu/usr1 G /afs/stateu.edu/usr2 G /afs/stateu.edu/usr3
この場合には、次に、V 命令の mount_point フィールドに、次の行だけを指定します。
$AUTO/$USER
次の L 命令の例は、ユーザーのホーム・ディレクトリーに、 mail および mbox ファイル間で、ハード・リンクを作成します。
L $MTPT/mbox $MTPT/mail
次の S 命令の例は、ABC 社のセルを例にとると、ユーザーのホーム・ディレクトリーの Mail/outgoing ファイルを、 /afs/abc.com/common/mail/outgoing ファイルにリンクします。
S /afs/abc.com/common/mail/outgoing $MTPT/Mail/outgoing
次の V 命令の例は、指定されたファイル・サーバー・マシンの /vicepa パーティション上に、 user.username というボリュームを作成し、このボリュームに 3000 KB ブロックの割り当て量を割り当てます。マウント・ポイントは /afs/abc.com/usr で、 username ($USER 変数の値) に一致します。そのユーザーは、ホーム・ディレクトリーを所有し、そのディレクトリーへの全アクセス権があります。この命令は、読みやすさのために 2 行になっていますが、テンプレート・ファイル内では単一行でなければなりません。
V user.$USER $SERVER.abc.com /vicepa 3000 \ /afs/abc.com/usr/$USER $UID $USER all
次の X 命令の例は、 OldFiles サブディレクトリーに、ユーザーのボリュームのバックアップ・バージョンをマウントします。
X "fs mkm /afs/abc.com/usr/$USER/OldFiles user.$USER.backup"
関連情報