AFSシステム利用の手引き
この利用手引書は、KEK共通計算システム内のAFSサービスに関して、登録されたユーザが利用できることを目的に作成したものです。
UNIXおよびAFS、Kerberosに関して基本的な知識を有していることを前提としています。また、「利用者が管理する計算機へのAFSクライアント環境導入」に記述した内容は正確であるように最善を尽くしていますが、この文書にはいかなる保証もありません。この節に記述した手順にしたがってAFSクライアントを導入する際の責任は利用者にあります。
本手引きでは、コマンド実行例に以下の記載方法を使用します。
表示 | 意味 | 使用例 |
#> | コマンド入力時のプロンプト | #> mkdir /tmp/install ↓ |
太字 | 利用者が実際に入力する部分 | #> mkdir /tmp/install ↓ |
斜字 | 利用者の環境・設定にあわせて変更する部分 | #> mkdir /tmp/install ↓ |
↓ | リターンキーの入力 | #> mkdir /tmp/install ↓ |
利用登録方法は未定
利用者は、機構内クライアントからrac01.cc.kek.jpにsshログインし、KEKおよびCERNのAFSサービスを利用します。rac01.cc.kek.jpの認証にはKerberosを利用しますが、このKerberosは共通計算システム内Gridシステムで独立したものです。その他の共通計算システムで利用しているKerberosとレルム名は同じですが、まったく別のものであるという点に注意してください。
AFSサービスを利用するための計算機はrac01.cc.kek.jpです。機構内計算機より、sshを利用してクライアントマシンにログインします。
[使用例]
#> ssh -l usename rac01.cc.kek.jp ↓
username@rac01's password: password ↓
[username@rac01 username]$
KEKの公開ディレクトリは/afs/cc.kek.jpとなります。Anonymousに対して公開しているディレクトリは誰でも参照できます。
[使用例]
#> ls /afs/cc.kek.jp ↓
groups users
後述するACLが設定されているディレクトリは、ACLにあったディレクトリ操作のみ実行可能です。利用者が所属するグループに対して公開されているディレクトリを参照できない場合は、AFSのKerberosチケットが取得できていない可能性があります。rac01.cc.kek.jpにログインした時点でKerberosチケットが取得されるようになっていますが、次項で説明するCERNディレクトリの参照において、CERNのチケットを取得した場合などにこの現象が発生します。この現象に対する対処法は以下のとおりです。
まず、klistコマンドにより、利用者が取得済みのチケットを確認します。
#> klist ↓
実行結果として、krbtgt/CC.KEK.JP@CC.KEK.JPが表示されていなければ、以下のコマンドを実行します。
#> kinit ↓
Password for username@CC.KEK.JP: password ↓
次に、klistの実行結果として、afs@CC.KEK.JPが表示されていなければ、以下のコマンドを実行します。
#> aklog ↓
CERNの公開ディレクトリは/afs/cern.chとなります。Anonymousに対して公開しているディレクトリは誰でも参照できます。
#> ls /afs/cern.ch ↓
ACLによりアクセス制御されているディレクトリを参照する場合は、CERNのKerberosチケットを取得する必要があります。チケット取得までの手順は以下のとおりです。
[使用例]
#> kinit -4 username@CERN.CH ↓
Password for username@CERN.CH: password ↓
#> klog -cell cern.ch ↓
rac01.cc.kek.jpのユーザはKerberosにより管理されています。パスワードの変更はkpasswdコマンド、または、passwdコマンドを利用します。以下では、kpasswdコマンドを利用した場合の例を示します。
[使用例]
#> kpasswd ↓
Password for username@CC.KEK.JP: old-password ↓
Enter new password: new-password ↓
Enter it again: new-password ↓
AFSでは、グループ単位で各ディレクトリにACLを設定します。したがって、各ディレクトリを参照するためには、利用者がどのグループに所属しているかを知る必要があります。また、ACLを設定する際は、グループにどのようなユーザが所属するかを知る必要があります。そこで、本項ではグループ情報の参照について説明します。
所属するグループを調べる場合には、ptsコマンドを利用します。使用方法は次のとおりです。
[使用例]
#> pts membership username ↓
グループに所属するユーザを調べる場合には、ptsコマンドを利用します。使用方法は次のとおりです。
[使用例]
#> pts membership groupname ↓
AFSでは、ACLによりディレクトリに対して以下のアクセス制御を実現できます。AFSで使用できるACLのコントロールリストは次の表のとおりです。
Permission | 意味 |
l | ディレクトリへのアクセスを許可する。このPermissionが設定されていないと、その他のACLの設定によりディレクトリやファイルへのアクセスを許可していても、そのACLは意味をなさない。 |
i | ディレクトリに新しいサブディレクトリやファイルの作成を許可する。 |
d | ディレクトリ内のサブディレクトリやファイルの削除を許可する。 |
a | ディレクトリに設定されているACLの変更を許可する。 |
r | ディレクトリ内のファイルを読むことを許可する。 |
w | ディレクトリ内のファイルに書き込むことを許可する。 |
k | プログラムがディレクトリ内のファイルをロックすることを許可する。 |
ディレクトリのACLを調べるためには、fsコマンドを利用します。使用方法は次のとおりです。
[使用例]
#> fs listacl directory_name ↓
このコマンドを実行して、次のように表示された場合、testディレクトリに対するACLは、「usernameがディレクトリtest内のファイルを参照できる」となります。
#> fs listacl test
Access list for test is
Normal rights:
username rl
ディレクトリにACLを設定するためには、fsコマンドを利用します。使用方法は次のとおりです。ACLを設定するためには、そのディレクトリに対してtodo権限が必要となりますので注意してください。
[使用例]
#> fs setacl directory_name group_name acl_list ↓
利用者が管理する計算機へAFSのクライアント機能を導入することで、利用者が普段使用している環境からAFSサービスを利用できるようにします。ここでは、OSとしてRed Hat Enterprise Linux 3(RHEL3)およびScientific Linux CERN 3(SLC3)への導入方法を示します。どちらのOSの場合でも、必要となる手順は、「1.必要なモジュールのインストール、2.設定ファイルのコピー、3.サービスの起動」となります。
RHEL3への導入では、カーネルモジュールをコンパイルする必要があります。したがって、導入予定の計算機にgccおよびmakeがインストールされていることが前提となります。なお、カーネルモジュールのみコンパイルする理由は、openafs-kernelパッケージがカーネルバージョンに依存し、クライアント機能を導入する計算機のカーネルにあったパッケージが提供されていない場合が多いからです。
AFSの利用に必要となるKerberosのパッケージが導入済みであるかを確認します。必要なパッケージは以下の4つです。導入されていない場合は、RHEL3のインストールCDなどからパッケージをインストールしてください。
openafs-clientをインストールするときは、--nodepsオプションを使用してください。このパッケージはopenafs-kernelパッケージを必要としますが、本手引きでは、openafs-kernelパッケージに相当する部分は次項でコンパイルするため、--nodepsオプションを使用しても問題ありません。
以下の手順でコマンドを実行することで、カーネルモジュールをコンパイルすることが可能です。なお、${kernel-ver}は利用しているカーネルのバージョンに、また、${smp}はSMP対応カーネルならMP、そうでなければSPに、それぞれ計算機の環境に合わせて置き換えてください。
[使用例]
#> cd /usr/src/openafs-kernel-1.4.1/src ↓
#> ./configure 2>&1 | tee configure.log ↓
#> make 2>&1 | tee make.log ↓
#> mkdir /lib/modules/${kernel-ver}/kernel/fs/openafs ↓
#> cp -p src/libafs/MODLOAD-${kernel-ver}.EL-${smp}/ libafs-${kernel-ver}.EL.mp.o /lib/modules/${kernel-ver}/kernel/fs/openafs/openafs.so↓
必要となる設定ファイルをまとめたtarファイルをダウンロードし、適当なディレクトリに展開します。その後、適切なディレクトリに設定ファイルをコピーします。
[使用例]
#> tar xvzfp afs-configuration_files-rhel3-kek.tgz -C /tmp ↓
#> mv /etc/krb5.conf /etc/krb5.conf.orig ↓
#> mv /etc/krb.conf /etc/krb.conf.orig ↓
#> mv /etc/krb.realms /etc/krb.realms.orig ↓
#> cp -p /tmp/afs-configuration_files-rhel3-kek/etc/krb* /etc/ ↓
#> cp -p /tmp/afs-configuration_files-rhel3-kek/usr/vice/etc/{ThisCell,CellServDB,cacheinfo} /usr/vice/etc/ ↓
#> cp -p /tmp/afs-configuration_files-rhel3-kek/etc/sysconfig/afs /etc/sysconfig/ ↓
AFSクライアント機能を起動するためには、次のコマンドを実行してください。
#> service openafs-client start ↓
AFSクライアント機能を停止するためには、次のコマンドを実行してください。
#> service openafs-client stop ↓
計算機の起動時にAFSクライアント機能を起動させるためには、次のコマンドを実行してください。
#> chkconfig openafs-client on ↓
AFSの利用に必要となるKerberosのパッケージが導入済みであるかを確認します。必要なパッケージは以下の4つです。導入されていない場合は、RHEL3のインストールCDなどからパッケージをインストールしてください。
クライアント機能の実現に必要なパッケージが導入済みであるかを確認します。SLC3の場合、すでに導入済みであることが多いですが、未導入のパッケージが存在する場合や、最新版のパッケージに更新したい場合は、aptもしくはhttp://linuxsoft.cern.ch/repository/からパッケージを入手し、インストールしてください。
必要となる設定ファイルをまとめたtarファイルをダウンロードし、適当なディレクトリに展開します。その後、適切なディレクトリに設定ファイルをコピーします。
[使用例]
#> tar xvzfp afs-configuration_files-slc3-kek.tgz -C /tmp ↓
#> mv /etc/krb5.conf /etc/krb5.conf.orig ↓
#> mv /etc/krb.conf /etc/krb.conf.orig ↓
#> mv /etc/krb.realms /etc/krb.realms.orig ↓
#> cp -p /tmp/afs-configuration_files-slc3-kek/etc/krb* /etc/ ↓
#> cp -p /tmp/afs-configuration_files-slc3-kek/usr/vice/etc/{ThisCell,CellServDB} /usr/vice/etc/ ↓
#> cp -p /tmp/afs-configuration_files-slc3-kek/etc/sysconfig/afs /etc/sysconfig/ ↓
AFSクライアント機能を起動するためには、次のコマンドを実行してください。
#> service afs start
AFSクライアント機能を停止するためには、次のコマンドを実行してください。
#> service afs stop
計算機の起動時にAFSクライアント機能を起動させるためには、次のコマンドを実行してください。
#> chkconfig afs on
日付 | 更新内容 |
2007/7/11 | 新規公開 |