Coda 5.2.x のユーザ管理
Jan Harkes jaharkes@cs.cmu.eduv0.02
5.2.x では、ユーザ、グループの管理とデータベースが置き換えられています。`user.coda' と `group.coda' を編集して、pwdtopdb と pcfgen でそれをコンバートする代わりに、新しい pdbtool プログラムを使います。このテキストは新しいツールの概略と、pre-5.2.x サーバをアップグレードするためのハウツーです。
1.1 pdbtool の導入
pdbtool はユーザとグループの情報を聞き出す対話型コマンドです。pdbtool で使われる最も一般的なコマンドは:
nui <username> <userid> -- 指定した id で新しいユーザを作ります
ng <groupname> <ownerid> -- 指定したオーナーで新しいグループを作ります
ci <user/groupname> <newid> -- ユーザ id とグループを変更します
ag <group-id> <user/groupid> -- グループにユーザ/グループを追加します
n <user/groupname> -- ユーザとグループの情報を全て表示します
注:
ユーザ id は正の整数で、グループ id は負の整数です。
詳しくは coda-doc-5.2.0 rpm と tar アーカイブにあるマニュアルページ(pdbtool.8)か、coda-HOWTO、pdbtool の `help' コマンドを読んでください。
1.2 例: 新しいユーザの追加
これは Coda に新しいユーザを追加するための例です。ここでは`scm'という名前のホストがデータベースの読み書きのコピーを持っているものとします。新しいユーザは、Users と Developers というグループに追加されます。
root@scm# pdbtool
pdbtool> nui jan 768
pdbtool> n jan
USER jan
* id: 768
* belongs to no groups
* cps: [ 768 ]
* owns no groups
pdbtool> n Users
GROUP Users OWNED BY System
* id: -221
* owner id: 777
* belongs to no groups
* cps: [ -221 ]
* has members: [ 22 178 184 303 545 697 822 823 835 894 712 738
* 777 901 902 ]
pdbtool> n Developers
GROUP Developers OWNED BY System
* id: -225
* owner id: 777
* belongs to no groups
* cps: [ -225 ]
* has members: [ 122 835 ]
pdbtool> ag -221 768
pdbtool> ag -225 768
pdbtool> n jan
USER jan
* id: 768
* belongs to groups: [ -221 -225 ]
* cps: [ -221 -225 768 ]
* owns no groups
pdbtool> q
このシーケンスは新しいユーザ・アカウントを作り、適切なグループにアカウントを追加します。アカウントをアクティブにするために、認証サーバで初期パスワードを設定する必要があります。
admin@anymachine$ au -h scm nu
Your Vice Name: codaadmin
Your Vice Password: ********
New User Name: jan
New User Password: newpassword
home のボリュームを作ってマウント、ACL の設定をすれば完了です。ユーザはセットアップされます。あとはユーザがパスワードを変更するだけです。
root@scm# createvol_rep users:jan E0000100 /vicepa
admin@anymachine$ cfs mkm /coda/usr/jan users:jan
admin@anymachine$ cfs sa /coda/usr/jan jan all
jan@anymachine$ cpasswd -h scm
1.3 user.coda と group.coda データベースのアップグレード
ユーザとグループのデータベースを新しい 5.2.x のフォーマットにアップグレードするために、pwdtopdbtool.py というスクリプトが配布に追加されています。/vice/db/user.coda と /vice/db/group.coda のパスを変更する必要があるかもしれません。単に SCM の上でこのスクリプトを走らせて、古いユーザとグループのファイルから全てのエントリをパースして、pdbtool を使って /vice/db に新しい prot_users.db、prot_index.db ファイルを作ります。
これらのファイルを他のサーバに配るには、/vice/db/files ファイルに以下を追加します。
prot_users.db
prot_index.db
グループに pre-5.2 サーバがある間は、古いやり方でユーザを追加して、同期で新しいファイルを維持する pwdtopdbtool.py スクリプトを使うことを勧めます。
1.4 5.2.0/5.2.2 で使われる coda.pdb/name.pdb データベースからのアップグレード
pdbtool を使った初期のリリースはデータ・ストアの基として gdbm を使っていました。しかし、様々なサーバを横断するデータベースとしては信頼感に欠けていました。それで、libdb 1.85 に切り替えることにしました。
自動的に gdbm データベースを libdb 1.85 フォーマットにアップグレードするスクリプトはありません。もし users.coda/groups.coda があれば pwdtopdbtool.py を実行してください。
そうでなければ、SCM をアップグレードする前に古い pdbtool ツールを使って全ての情報を引き出さなければなりません。
# echo list | pdbtool > full_pdb_dump
しかし、データベースを作るためにこの dump を使うのは簡単ではありません。全て手動で新しい pdb データベースに再び追加する必要があります。
|