AFSシステム利用の手引き


はじめに

システム構成

AFSサービスの利用

利用者が管理する計算機へのAFSクライアント環境導入

更新履歴


はじめに

この利用手引書は、KEK共通計算システム内のAFSサービスに関して、登録されたユーザが利用できることを目的に作成したものです。

前提条件

UNIXおよびAFS、Kerberosに関して基本的な知識を有していることを前提としています。また、「利用者が管理する計算機へのAFSクライアント環境導入」に記述した内容は正確であるように最善を尽くしていますが、この文書にはいかなる保証もありません。この節に記述した手順にしたがってAFSクライアントを導入する際の責任は利用者にあります。

本利用の手引きでの記載例

本手引きでは、コマンド実行例に以下の記載方法を使用します。

表示 意味 使用例
#> コマンド入力時のプロンプト #> mkdir /tmp/install
太字 利用者が実際に入力する部分 #> mkdir /tmp/install
斜字 利用者の環境・設定にあわせて変更する部分 #> mkdir /tmp/install
リターンキーの入力 #> mkdir /tmp/install

AFSサービスの利用登録

利用登録方法は未定


システム構成

システム構成図


クリックすると大きい画像が表示されます

概要

利用者は、機構内クライアントからrac01.cc.kek.jpにsshログインし、KEKおよびCERNのAFSサービスを利用します。rac01.cc.kek.jpの認証にはKerberosを利用しますが、このKerberosは共通計算システム内Gridシステムで独立したものです。その他の共通計算システムで利用しているKerberosとレルム名は同じですが、まったく別のものであるという点に注意してください。


AFSサービスの利用

概要

クライアントマシンへのログイン

AFSサービスを利用するための計算機はrac01.cc.kek.jpです。機構内計算機より、sshを利用してクライアントマシンにログインします。

[使用例]
#> ssh -l usename rac01.cc.kek.jp
username@rac01's password: password
[username@rac01 username]$

AFSディレクトリの参照

KEKの公開ディレクトリの参照

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の公開ディレクトリの参照

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グループ情報の参照

AFSでは、グループ単位で各ディレクトリにACLを設定します。したがって、各ディレクトリを参照するためには、利用者がどのグループに所属しているかを知る必要があります。また、ACLを設定する際は、グループにどのようなユーザが所属するかを知る必要があります。そこで、本項ではグループ情報の参照について説明します。

利用者が所属するグループを調べる

所属するグループを調べる場合には、ptsコマンドを利用します。使用方法は次のとおりです。

[使用例]
#> pts membership username

グループに所属するユーザを調べる

グループに所属するユーザを調べる場合には、ptsコマンドを利用します。使用方法は次のとおりです。

[使用例]
#> pts membership groupname

ACL

AFSでは、ACLによりディレクトリに対して以下のアクセス制御を実現できます。AFSで使用できるACLのコントロールリストは次の表のとおりです。

Permission 意味
l ディレクトリへのアクセスを許可する。このPermissionが設定されていないと、その他のACLの設定によりディレクトリやファイルへのアクセスを許可していても、そのACLは意味をなさない。
i ディレクトリに新しいサブディレクトリやファイルの作成を許可する。
d ディレクトリ内のサブディレクトリやファイルの削除を許可する。
a ディレクトリに設定されているACLの変更を許可する。
r ディレクトリ内のファイルを読むことを許可する。
w ディレクトリ内のファイルに書き込むことを許可する。
k プログラムがディレクトリ内のファイルをロックすることを許可する。

ディレクトリに設定されているACLを調べる

ディレクトリのACLを調べるためには、fsコマンドを利用します。使用方法は次のとおりです。

[使用例]
#> fs listacl directory_name

このコマンドを実行して、次のように表示された場合、testディレクトリに対するACLは、「usernameがディレクトリtest内のファイルを参照できる」となります。

#> fs listacl test
Access list for test is
Normal rights:
username rl

ディレクトリにACLを設定する

ディレクトリにACLを設定するためには、fsコマンドを利用します。使用方法は次のとおりです。ACLを設定するためには、そのディレクトリに対してtodo権限が必要となりますので注意してください。

[使用例]
#> fs setacl directory_name group_name acl_list

利用者が管理する計算機へのAFSクライアント環境導入

概要

利用者が管理する計算機へAFSのクライアント機能を導入することで、利用者が普段使用している環境からAFSサービスを利用できるようにします。ここでは、OSとしてRed Hat Enterprise Linux 3(RHEL3)およびScientific Linux CERN 3(SLC3)への導入方法を示します。どちらのOSの場合でも、必要となる手順は、「1.必要なモジュールのインストール、2.設定ファイルのコピー、3.サービスの起動」となります。

Red Hat Enterprise Linux 3 への導入

RHEL3への導入では、カーネルモジュールをコンパイルする必要があります。したがって、導入予定の計算機にgccおよびmakeがインストールされていることが前提となります。なお、カーネルモジュールのみコンパイルする理由は、openafs-kernelパッケージがカーネルバージョンに依存し、クライアント機能を導入する計算機のカーネルにあったパッケージが提供されていない場合が多いからです。

必要となるRPMパッケージのインストール

AFSの利用に必要となるKerberosのパッケージが導入済みであるかを確認します。必要なパッケージは以下の4つです。導入されていない場合は、RHEL3のインストールCDなどからパッケージをインストールしてください。

http://www.openafs.org/release/latest.htmlより必要となるRPMをダウンロードします。必要なRPMは以下の5つです。これらのパッケージのバージョンは2006/6/6時点のものです。

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

Scientific Linux CERN 3 への導入

必要となるRPMパッケージのインストール

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 新規公開