ユーサー - みる会図書館


検索対象: UNIX MAGAZINE 1998年11月号
65件見つかりました。

1. UNIX MAGAZINE 1998年11月号

0 ニューの上部に配置したり、イ甫列の最初のほうにもっ てきたりします。 Split Menus[11] は、プルダウン・メ ニューの項目のうち、よく使われるものを自重加勺に検出 し、ほかの項目と分離してメニューの最部に表示し て尺しやすくするものです。カナダの University of Calgary の Saul Greenberg らは、階層的電言乱長メ ニューにおいて、よく選択される名前がメニューの階 層の上のはうに出現するようにした場合の効果について 報告しています [ 4 ] 。 Kühme の Action Prompting システム [ 7 ] は、現在のコンテキストとユーサー窈栄作 履歴をもとに、次に尺されそうなメニュー項目のリス トを生成し、通常のメニューと別の位置に常時表示する ようになっています。 ・予測される操作ク是示 3 月号でも紹介した Reactive Keyboard システム [ 3 ] は、 UNIX のシェルのようなコマンド言語インターフェ イスで、操作履歴の糸情報にもとづいてユーサーの次 窈巣作を予測、提示します。 ・知的区し作業の支援 MIT の Pattie Maes は、メモリべースの機械学習機 構を用いた本咎はみを提案しています。これは、多くの実 例をもとに、、エージェント " に学習させ、スケジュール 調整や電子メールの仕分けを自重加勺に実行できるように するものです [ 8 ] 。 ユーサーの特性への対処 区し作業への通芯は一日勺なものですが、ユーザーの 各種の持生にシステムを j させるための手法も提案され ています。 典型的ューサーモデルとのマッチング ューザーの知識や技能レベルに応してオンラインヘルプ やインターフェイスを刻ヒさせる試みがおこなわれてい ます。 Benyon か提案したシステム [ 1 ] では、ユーサ ーの知識や能力を判断してコマンド言語インターフェイ スとメニューを使うインターフェイスとを切り替えま す。 UIDE では、アプリケーション知識を示すデータ 構造の部う冓造かユーサーの知識を示しているという考 えにもとづき、ユーサーか実行したことのない操作に対 して重点的にガイダンスをおこなう仕組みになっていま す。 Flexcel では、操作履歴からユーサーの性質を判断 182 し、そのユーサーに通芯した重川をするようになってい ます。 ・パラメータの斃 文字認識や音声認識などのう丹予では、個人の書いた文字 や声などの特徴パラメータをシステムカ軸出する方式が よく用いられています。 ・ユーザーの嗜好の抽出 ューサーの嗜好や感性のような数値化しにくい持性につ いても、適応のための枠組みカ醍案されています。前 述の Maes の習工ージェントの考え方にもとづくス ケジュール調整システム [ 6 ] では、エージェントは会 議の時間の訓整を通してユーサーの時間の好みや会議の 相手の重要度を哮習していきます。私自身、個人の美的 感生を表現するようなグラフ配置の評価関数を、遺伝的 プログラミングの手法を用いて抽出する仕組みを提案し ています [ 9 ] 。 NEC のネ世昜匁」成氏による ANATAGO- NOMY システム [ 5 ] 1 は、プラウザー日こ表示される電子 ニュースをユーザーか読む様子からユーザーの嗜好を判 断し、徐々にそれに合わせたニュースを表小するシステ ムです。ューサーの記事に対する興床は、マウスクリッ クやウインドウサイズなどから判断します。 通芯型インターフェイスが目指す想は高いのですが、 かな漢字変換の学習機能のような上交的簡単な例を除くと 成功例は少ないようです。以下に、道芯型インターフェイ スがうまくいかない理由をいくっカげてみます。 バンド幅 ' 間題 芯型インターフェイス・システムはユーザーの操作 履歴をもとに各種の判断をおこなうため、ユーサーとシ ステムのあいだのやりとりが少ないときは有効な判仂ゞ できません。たとえば、自重丿庫を運転しているユーザー ( 運転者 ) がハンドルをわすかに右に切った場合、ハン ドルを回した理由をシステム ( 自動車 ) が角斤するのは はは不可能なので、通芯も不可能です。 ・モデルの間題 適応型インターフェイスの構築にはアプリケーション のモデルとユーサーのモデルがよく使われますが、モデ 1 http://www.labs.nec.co.jp/freesoft/ANATAGONOMY/ 問題点 UNIX MAGAZINE 1998.11

2. UNIX MAGAZINE 1998年11月号

連載 / UN Ⅸの玉手箱 - ⑨ 図 3 adduser の実彳デ列 mypc# adduser —silent 冖 if you don't want see a11 warnings & questions. Use option Check /etc/shells Check /etc/master. passwd Check /etc/group Enter your default shell : bash csh date no sh [sh] : csh Your default sheII is : csh ー > /bin/csh Enter your default HOME partition : [/home] : Copy dotfiles from: /usr/share/skel Ⅱ 0 [/usr/share/skel] : Send message from file: /etc/adduser. message no [ Ⅱ 0 ] : ←デフォルトのログインシェル ←ホーム・ディレクトリ ←設定ファイノレの雛型 ←メッセージ・ファイル DO not send message Use passwords (y/n) [y] . Ok, let's go ・ ←パスワードを使用するか Don ' t worry about mistakes . 工 wi11 give you the Enter username [a—zO—9——] : jiro Enter fu11 name ロ : A0ki Jiro Enter sheII bash csh date Ⅱ 0 sh [csh] : csh Uid [ 1001 ] : Enter login class: default ロ : Login group jiro [jiro] : user Login group is ) ' . lnvite Jiro into other chance later tO correct any input ・ ←ューサー名 ←フルネーム ←ログインシェノレ ←ューサー ID ←クラス ←グループ groups : guest Ⅱ 0 [ Ⅱ 0 ] . ・クラス ( 21 行目 ) wheel ←その他のグループ Enter password ロ : ←パスワードを入力 Enter password again ロ : に入ります ( 17 行目以降 ) 。追加するユーサーごとに訊ね られる質問は以下のとおりです。 ・ユーサー名 ( 17 行目 ) UNIX MAGAZINE 1998.11 フォルト刎直として表示されています。 ューサー null に割り当てられているため、 1001 がデ とも小さな番号が表示されます。図の例では 1000 は ルトの値は 1000 から始まり、まだ使われていないもっ ューサー ID を指定します。 adduser か表示するデフォ ・ユーサー ID ( 20 行目 ) の値として、 7 行目で指定したシェルか表示されます。 ューサーのログインシェルを指定します。デフォルト ・ログインシェル ( 19 行目 ) 情報をカンマで区切って指定します。 力する場合は、 GECOS フィールドの書き方に従って を入力します。オフィスの場所や電話番号もあわせて入 GECOS フィールドに登録するユーサーのフルネーム ・フルネーム ( 18 行目 ) う促されます。 名として利用できる文字以外を使うと、入力しなおすよ 追加するユーサーのユーサー名を入力します。ューサー ューザーのクラスを指定します。 ・グループ ( 22 行目 ) ようにまとめて表示されます。 これらの作業カ鮗ると、設定したユーサー情幸ゞ以下の ューザーのパスワードを 2 回入力します。 ・パスワード ( 24 ~ 25 行目 ) ルーフ。がない場合は、、 n 。 " を入力してください。 を wheel グループに追加しています。追加登録するグ ューサー名が j 助日されます。図の例では、ユーサー jiro /group のなかで対応するグループのユーザーリストに 名を指定します 7 。ここでグループを指定すると、 /etc ー屬己のグルーフ以外で、ユーサーか所属すべきグループ ・その他のグループ ( 23 行目 ) ループ ID をグループ名で指定します。 パスワード・ファイルの GID フィールドに相当するグ Name : 」 1r0 Password: * * * * * * 7 複数のグループを指定する場偬は、グループ名をスペースてな切って入力 します。 169

3. UNIX MAGAZINE 1998年11月号

U N Ⅸの玉手箱 null ユーサ情報 ( 2 ) 前回は、 UNIX で用いられているユーサ、一とグループ の念について述べその利用例としてファイル操作に対 するハ ミッションを挙げました。さらに、パスワード・ ファイルのフォーマットと、ユーサーのクラスの設疋ファ イルについて紹介しました。 今月は、前呂介しきれなかったグループファイルにつ いて触れたあと、パスワード・ファイルの情報を変更する ためのコマンドを中心に解説します。さらに、さまざまな 情報をネットワーク上て集中管理するための仕組みである NIS の概要を簡単に説明し、 NIS 環境におけるユーザー 情報の設定についても紹介します。 なお、先日 FreeBSD のバージョンが一 E がり、 2.2.7- RELEASE になりました。 FreeBSD に関する設定や実 行例などはこのバージョンを対象とします。基本的な部分 での大きな変史はありませんが、 2.2.6-RELEASE とく らべて変わった点があ川ま、今後はその旨を明記します。 グループ情報の設定ファイル 前回お話ししたように、 UNIX では、、ユーザー " に加え て、、グループ " という概念があり、複数のユーサーをグル ープにまとめることができます。ファイルやプロセスに対 するアクセス制御を、、ユーサー " 、、グループ " 、、それ以外 " という 3 つの単位でおこなうことにより、アクセスの可否 をより細かくコントロールできます。 あるユーザーには、おもに人間か識別するための、、ユ ーサー名 " と、マシン内部で識別するための、、ユーサー ID"(UID) か割り当てられます。 UNIX におけるパス ワード・ファイル (/etc/passwd および /etc/master. passwd) はユーサー名と UID の対応づけを管理するため 166 図 1 グループファイルのフォーマット パスワードユーザーのリスト ↓ ↓ wheel : * : 0 : て 00 し′ null ↑ グループ名 GID のファイルで、そのほかにもパスワードやホーム・ディレ クトリ、ログインシェルなどの情報か取められています。 グループについても同様で、各グループには、、グルーフ 名 " と、、グループ ID"(GID) か割り当てられます。グル ープ情報には、グループ名と GID の対応づけだけでなく、 グループに属するユーザーに関する情報なども必要です。 グループに関する設疋ファイルは /etc/group で、フ ァイルのフォーマットは図 1 のようになっています。 スワード・ファイルと同様に、各グループに関するエント リを 1 行すっ言当します。パスワード・ファイルは 7 つ のフィールドから構成されていました 1 が、グループファ イルの各工ントリは 4 つのフィールドからなり、それぞ れのフィールドはコロンで区切ります。 各フィールドがもつ意味は以下のとおりです。 ・グループ名 ューサー名と同様に、人間か識別するためのグループ名 を指定します。 ・ / 、スワード パスワード・ファイルと同しく暗号化されたパスワード 1 BSD/OS や FreeBSD など、 4.4BSD をベースにした OS の場合 は、、ログインクラス " 、パスワードの更新期限 " 、アカウントの有刻期 限 " という 3 つのフィールドが追加さイ t で 10 個のフィールドか ら橢及されています。 UNIX MAGAZINE 1998.11

4. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸの玉手箱ー⑨ 表 1 adduser のおもなオプション オプション —batch —class —dotdir ¯group —home —message ー s 五 e11 —uid Fu1 lname : Uid: Gid: C1ass : Groups : HOME : She11 : OK? (y/n) 意味 バッチ的にユーサーを追加 デフォルトのクラス 芻豐ファイルか置かれているディレクトリ パスワード・ファイルに 0 当求するグループ名 ホーム・ディレクトリを作る場所 メッセージ・ファイルの名前 デフォルトのログインシェル /bin/csh /home/j iro user wheel 100 (user) 1001 Aoki Jiro デフォルトのユーザー ID Added user ' jiro' Copy files from /usr/share/skel t0 Add another user? (y/n) [y] : 旦 G00dbye ! 設定が正しいかどうかを訊かれるので /home/jiro y を入力する と 8 、パスワード・ファイルの更新やホーム・ディレクト リの作成などをおこなったあと、はかにもユーザーを追加 するかどうかを訊かれます。追加するのであ川ま、 y を 入力して 17 行目以降の竹業を繰り返します。 adduser には数多くのオフションがあり、コマンド実 行時にパラメータをいくつカ専えておくと、入力する手間 をある程隻減らすことかできます。また、必要なユーザー 情報をケえると、対言勺ではなくバッチ的にユーサーを作 成するオプションもあります。おもなオプションを表 1 に 示します。詳しくはオンライン・マニュアル adduser ( 8 ) などを参照してください。 一方、すでに登録したユーサーのアカウントを削除する には、 rmuser を使います。使い方は単純で、引数として 削除したいユーサー名をケえます。実行例は図 4 のとお りで、引数で指定したユーサーか存在するかどうかを確認 したあと、「削除したいユーサーはこれで正しいか ? 」と訊 かれます。ここで y を入力すると、ユーザーのホーム・ ディレクトリも削除するかどうかを訊かれます。これにも y と答えると、以下の竹喋がまとめておこなわれます。 8 ここで、、 n " を入力した場伶は、このユーサーに関する言立かすべて破棄さ れてから、ほかにもユーザーを追加するかどうかをいれます。 170 ・パスワード・ファイルからユーサーのエントリを削除 UNIX MAGAZINE 1998.11 くらべると変史できる範囲は限られています。ーヨ殳ューザ ーでも利用できるものです。ただし、スーパーユーサーに マンドでしたが、以降で紹介するコマンド群は一ヨ殳ューザ ーサーがユーザー情報やグルーフ。情報を操作するためのコ これまで紹介した vipw や adduser などはスーパーユ passwd 勵里のコマンドはありません。 残念ながら、 FreeBSD にはこれらに該当するグループ えたユーザー管理ツール admintool があります。 groupadd 、 groupdel 、 groupmod のほか、 GUI を備 興味のある方は試してみてください。 Solaris 2. x では、 を割り当ててエントリを作成するという単純なものです。 てグループ名を指定すると、使われていないグループ ID なう addgroup rmgroup があります。引数とし また、 BSD/OS には、グループの追加と削除をおこ てください。 ては BSD/OS に付属のオンライン・マニュアルなどを見 芻豐ファイルをコピーする機能はありません。言岩田につい 異なります。機能も上師交的シンプルで、たとえば、設疋の 作は似ていますが、オプションなどを含めた使い方が多少 BSD に付属のものです。 BSD/OS の場合も基本的な操 ここで紹介した adduser と rmuser コマンドは Free- しよう。 除し忘れる可能が少なくなるという意床では重宝するで ディレクトリの削除なども一気におこなってくれます。削 らの削除だけでなく、グループファイルの史新やホーム・ しれません。一方、 rmuser はパスワード・ファイルか 同じような質間か繰り返されるので、煩わしく感しるかも adduser を対話的に実行すると追加するユーザーごとに 以前から UNIX マシンを使い続けてきた人にとっては、 除の竹喋をおこないます。 yes と答えたとみなされ、コマンドを実行するとすぐに削 rmuser に -Y オフションを付けると、すべての質間に ていれば、ごみファイルとして削除 /tmp や /var/tmp などにユーザーのファイルが残っ ・ホーム・ディレクトリの削除 グループファイルからユーサーを削除 ・パスワード・データベースの更新

5. UNIX MAGAZINE 1998年11月号

イ ン タ フ ェ イ ス の 街 適応型インター フェイス 角 増井俊之■ いろいろな機械かイ吏えば使うはどイ叫リになれはよいと思 う人は多いのではないでしようか。も匠のかな漢字変換シ ステムの多くは、習機能によってユーザーの要求に近い 変換をするように作られています。このように、システム カ咽々のユーザーの癖や特徴をなんらかの方法で検出し、 徐々にユーサーに通芯していくインターフェイスを型 (adaptive) インターフェイスと呼びます。 オ戒を特定の用途やユーザー向けに使いやすくするため に、キー割当てなどを変えるカスタマイズや、マクロ定義、 少量のフログラミングでルーチンワークを処理するエンド ューサー・プログラミングなどの手法がよく使われていま す。しかし、これらはいすれもユーサーによる竹喋を必要 とします。このようなことをしなくても、機械が自重加勺に 使いやすくなれは、それに越したことはありません。 山も広 Web ページやニュース酉占医などの、、パーソナル 化 ' (personalization) がよく話題になります。パーソナ ル化により、自分の好みに応したニュースを受け取ったり することができるようになりますが、嗜好などをあらかし め知らせなくても、自分の欲しいニュースが自重加勺に送ら れてくるようになれは便利です。通芯型インターフェイス こういったことを実現する手法です。 は、 遡芯型インターフェイスという言葉は、さまざまな未 てイ吏われています。パラメータを多少変更するだけのもの からシステムの重川を完全に変えるものまで、各種の方式 がありますが、大きく次の 2 つに分類できます。 区し操作の麪爰 ・ユーサーク罸生 , 、、の対処 適応型インターフェイスの種類 UNIX MAGAZINE 1998.11 繰返し操作の支援 181 するシステムでは、よく使われるイ囎甫をプルダウン・メ スや、かな漢字変換システムのように侯補を順番に提示 イ甫をリストにして提示するメニュー型インターフェイ ] 尺イ囎甫の並替え ターし、マクロとして定義可能な操作列を検出します。 ト・システムがユーサーの ExceI に対する操作をモニ Flexcel[13] は、 MS Excel の知識をもつエキスパー 作列のなかでマクロ化可能な部分を抽出します。また、 る階層的データ構造を参照することにより、ユーザー操 ます。 UIDE[12] は、アプリケーション知識を表現す さらに高レベルの糸お区し操作を検出するシステムもあり あらかしめ用意されたアプリケーション知識を利用し、 どうかをユーサーに間い合わせます。 た場合、それを検出して、以後もその操作を繰り返すか tosh の HyperCard でユーサーか似た操作を繰り返し Cypher が Apple で開発した Eager[2] では、 Macin- ーンを検出してマクロとして登録 / 実行します。 AIIen すと、システムがそれまでの操作履歴から系区しパタ テキストエデイタでユーサーが、、縄区し実行キー " を押 スの一例として紹介した Dynamic Macro[10] では、 テムカ甘是案されています。 3 月号で予測インターフェイ 窈巣作列からマクロ定義可能な共通部分をとりだすシス として登録しておくと便利です。そのために、ユーサー 似た操作カ舸度も繰り返される場合は、それらをマクロ ・マクロイ′卩友麪爰 : 麪爰することができます。 システムはそれを検出し、下記のような去でその竹喋を ューサーカ噸似した操作を何度も実行するような場合、

6. UNIX MAGAZINE 1998年11月号

連載 / UN Ⅸの玉手箱 この NIS クライアントに限り、 / b ⅲ / csh がログインシェ ルとして使われます。 設定されています。 ーサー情報とグルーフ請報に対応する部分は以下のように OS をインストールした状態では、 /etc/irs. conf のユ やグループファイルを修正する必要はありません。 したがって、 BSD/OS の場合はパスワード・ファイル /etc/nsswitch. conf ファイルて指定します ) 。 でまとめて言置できるようになっています (SoIaris では、 の不頁や優先頂位などを、 /etc/irs. conf というファイル する情報原 ( ローカルな設定ファイルや NIS 、 DNS など ) BSD/OS では、ユーサーやグループ、ホストなどに関 NIS のユーサー情報の設定 (BSD/OS) YPChpaSS(1) や yppasswd(l) などを参照してください。 限がいくつかあるので、詳しくはオンライン・マニュアル や passwd コマンドとはは 1 司じですが、これらとは違う制 スワードを変更することができます 21 。使い方は chpass 自分のログインシェルと GECOS 情報、後者は自分のノ、 ることが可能です。ー引殳ューサーか実行した場合、前者は ( マスターサーバー ) に登録されたユーサー情報を変更す chpass および passwd コマンドと同しで、 NIS サー 属していません ) 。これらのプログラムの実体はそれぞれ ています (BSD/OS にはこれらに相当するコマンドは付 bin/)ypchpass と (/usr/bin)yppasswd か用意され されている情報を操作するためのコマンドとして、 (/usr/ なお、 FreeBSD では NIS の passwd マップに登録 passwd(5) や group(5) にも詳しく書かれています。 ファイルの設定については、オンライン・マニュアル NIS 環境におけるパスワード・ファイルやグルーフ フ。の情幸ゞマージされます。 ルな /etc/group ファイルの情報に NIS の group マッ 末尾に、、十 " だけの行を追加します。これにより、ローカ イルを修正します。具イ勺には、 /etc/group ファイルの トで利用するには、 NIS クライアントの /etc/group ファ 一方、 NIS の group マッフ。の情報を NIS クライアン #passwd group #group nIS 10Ca1 continue ,merge nxs passwd 10Ca1 continue 21 ただし、これらのコマンドを利用するには、 NIS サーバー上で rpc ・ yppasswdd というデーモン・プログラムが走斷力されていなければな りません。 180 NIS を参照する設定も用意されていますが、デフォルト ではコメントアウトされています。 NIS の passwd マッ フ。や group マップを利用する場合は、それぞれの行頭の 、、 # " を削除するだけです。 ただし、 FreeBSD の場合と異なり、パスワード・ファ イルに、、十 " や、、一 " て始まるエントリを作成しても無見さ れてしまい、 passwd マップに登録されオ寺定のユーサー に対するログインの許可 / 不許可を制御することはできな いようです。つまり、 /etc/irs. conf で passwd nis" と いうエントリを有効にすると、 NIS サー ノヾーの passwd マップに登録されたすべてのユーサーがログインできるこ とになります。 ☆ 前回から 2 回にわたり、 UNIX におけるユーサーとグ ループについて、関連する設定ファイルを交えながら紹介 しました。 パスワード・ファイルを更新するためのコマンドとして は、 vipw や adduser などをとりあげました。後発のコマ ンドはそれなりに親切で多機能なのですが、昔から UNIX を使っている人にとっては vipw のはうがてっとり早く感 しられるでしよう。 vipw ではエデイタを使ってパスワー ド・ファイルを編集するので、ほかのマシンと同しユー ザーを追加する場合は、リモートログインしてエントリの 行をカット & ペーストできるというメリットもあります。 NIS クライアントのセットアッブ去も解説しました。 NIS サーバーの設定や、 NIS で提供されるユーサー / グ ループ以汐 ) 情報の利用ガ去については、機会をあらため て紹介するつもりです。 次回は、ネットワークにマシンを接続するときに必要な ホスト情報に関する話題をとりあげる予定です。 UNIX MAGAZINE 1998.11

7. UNIX MAGAZINE 1998年11月号

ロプロクラミンク・テクニック 多治見寿和 ファイルのロック 前回は ls コマンドを紹介しました。 ls はもっとも初期 の UNIX から存在しているコマンドで、いまでは 26 も のオプションをもった複雑なものとなっています。その ソースコードを眺めると、ファイルフラグという概念や、 ファイルシステム内のヨ冓造を巡回するための fts 関委羊 などが目を引きます。 今回は、ファイルのロックをとりあげます。ある資源を 複数のものが使う可能性があるとき、そのイ吏用に関して調 整をおこなわなければなりません。そのための財冓がロッ クです。 いうまでもなく、 UNIX はマルチューサー、マルチプ ロセスのオペレーティング・システムです。このような オペレーティング・システムでは、つねに複数のユーサー か 1 司ーの作業をおこなうかもしれないという可能生を考え なければなりません。たとえば、 UNIX ではパスワード・ ファイルはたいへん重要です。このファイルを編集する場 合には、複数のユーザー ( 管理者 ) か 1 司時に変更しておか しくなってしまわないように、専用のプログラムを使うこ とになっています。 ます、 2 人の管理者か 1 司時に修正しようとするとどんな 間題か起こるかを考えてみましよう。最初の状態では、ユ ーサー A 、 B の 2 人がパスワード・ファイルに書かれて いたとします。ここで 1 人目の管理者が、新たなユーサー C を加えるためにパスワード・ファイルを編集し始めまし た。この段階で、別の管理者がもう 1 人の新たなユーサー D を追加しようとパスワード・ファイルの編集を始めた とします。このとき、ファイルシステム上のパスワード・ バスワード・ファイルの編集 116 ファイルにはまだューサー C が追加されていないため、 2 人目の管理者は A 、 B の 2 人のユーザーだけか書かれた 状態から編集を始めます。 そして、最初の管理者カ扁集を終了して、 A 、 B 、 C の 3 人のユーサーか書かれたパスワード・ファイルを保存しま す。この点では、ファイルシステム上にはたしかに A 、 B 、 C か書かれたファイルが存在しています。ところが、 このあとで 2 人目の管理者がユーサー D を追加したファ イルを保存すると、パスワード・ファイルは置き換わって しまい、 A 、 B 、 D の 3 人か書かれたファイルとなりま す。つまり、ユーサー C に関する作業は無効となってし まうのです。 1 人目の管理者がパスワード・ファイルを修正して保存 し、そのあとで 2 人目の管理者がその、、修正された " パス ワード・ファイルに対してイ 1 喋をして保存すれは、このよ うな問題は発生しないのは明らかです。 そこで UNIX では、パスワード・ファイルを編集する ための専用のコマンド vipw が用意されています。 vipw を使えは、はかの管理者がパスワード・ファイルを編集し ているあいだは、新たにパスワード・ファイルの編集がで きないようになっています。さきはどの例では、 2 人目の 管理者はパスワード・ファイルの編集を始められなくなる のです。こうすることで、 2 回の編集竹喋を ( 同時ではな く ) 順番におこなうことになり、かならす変更か有効とな ルという共有データに対して読み書きをおこない、 パスワードの例は、 2 人の管理者かパスワード・ファイ 排他制御と危険領域 ります。 どのよ UNIX MAGAZINE 1998.11

8. UNIX MAGAZINE 1998年11月号

上記刎列を見ると、 chpass はパスワード・ファイルを vipw などで変更するのとあまり変わりません。唯一漣う のは、パスワードの更新期限 (Change) とアカウントの 有効期限 (Expire) を 1970 年 1 月 1 日から起算した秒 数ではなく、期限となる年月日で指定できる点です。これ らのフィールドには、以下の形式で期限を指定します。 月の名前日年 月の名前には、、 January" や、、 March" のように、その 月の英語名を指定します儼初の 3 文字カ陏効 ) 。日や年に は数字を指定します。たとえば、パスワードの有月限を 1998 年 12 月 31 日に設定したい場合、、℃ hange" フィー ルドの値を、、 Dec 31 1998 " のように指定します。 1970 年から 1999 年までは、年に関して 2 桁の数字が使えま すが、それ以降はかならす 4 桁 ( たとえば、、 2001 " など ) て表さなくてはなりません。ただし、現在の FreeBSD や BSD/OS においては、秒数を表す変数は 64 ビットて表 現されるため、期限として 2038 年 1 月 19 日 ( より正確 には、この日の午後 12 時 14 分過ぎ ) よりもあとは指定 できないようになっています。 FreeBSD や BSD/OS 以 外でも、ほとんどの UNIX にこの制限があります。 chp s コマンドは、パスワード・ファイルのエントリ 間に対するチェックはおこないません。このため、たとえ ばスーパーユーサーが、、 chpass null" を実行し、ユーザー 名だけを変更して chpass を終了すると、ユーザー名以外 はすべて同し工ントリかパスワード・ファイルに作成され ます。 UID などが重複したユーザーを不用意に作らない よう注意しましよう。 また、スーパーユーザーが chpass を実行する際に、 オプションに続けてパスワード・ファイルと同し形式の工 ントリを指定すると、パスワード・ファイルの変更やユー ザーの追加をバッチ的におこなうことができます。詳しい 利用法については、オンライン・マニュアル chpass ( 1 ) な どをご覧ください。 連載 UN Ⅸの玉手箱ー⑨ その他のコマンド ューザー情報やグルーフヨ辭にを操作するためのものでは ありませんが、知っていると便利なコマンドをまとめて紹 介しておきます。 UNIX MAGAZINE 1998.11 ・ id コマンド ューサーの UID や GID などの↑帯長を知ることができ ます。引数なしで実行すると次のようになります。 mypc$ は uid = 1000 ( Ⅱ u11 ) gid=100(user) groups=100(user) , 0(whee1) mypc$ ロ UID ( ューサー名 ) と GID ( グルーフ。名 ) 、そのユーザ ーが所属するグルーフ。のリストか読けて表示されます。 引数にユーサー名を与・えた場合は、指定したユーサーに 関する情幸られます。 -p オプションを付けて実行すると、 UID や GID は表 示されす、名前 ( ューザー名 / グループ名 ) だけの表示 になります。 mypc$ id -p uid Ⅱ u11 groups user wheel mypc$ 目 ほかにもいくつかオプションがありますが、詳しくはオ ンライン・マニュアル id ( 1 ) などを参照してください。 ・ whoami コ・マンド 現在のユーザー名を表示します。プログラムの実体は id コマンドと同しで、、、 id ー un " を実行するのと同じ結 果になります。 su などを使い、別のユーサーになって 作業していると、ときどき自分がいまどのユーサーとし て作業しているのかが分からなくなることもあります。 このようなとき、 whoami を使うと簡単にユーサー名 を知ることができます。 mypc$ whoami Ⅱ u11 mypc$ 目 ・ groups コマンド ューザーが所属しているグループの一覧が表示されま す。たとえは、ユーザー null が、 user" と、、 wheel" と いう 2 つのグループに属している場合、 groups コマン ドの出力は次のようになります。 mypc$ groups user wheel mypc$ 目 引数としてユーサー名を指定すると、そのユーザーか所 属するグループの一覧か表示されます。 groups コマン 173

9. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸの玉手箱ー⑨ pwd—mkdb : corrupted entry pwd—mkdb : at line # 14 pwd—mkdb : /etc/pw. ZE1043 : lnappropriate file type or format re—edit the password file? [y] : ■ こで、、 y " と答えるとふたたびェデイタか起動するの で、間違えた部分を修正することができます。一方、、、 n " を入力すると、それまでにおこなった変更を破棄してコマ ンドを終了します。 vipw がおこなうチェック 5 はフォーマットが正しいか どうかだけであり、エントリの内容まではチェックされな い点に注意してください。 adduser と rmuser vipw はパスワード・ファイルのロックやフォーマット のチェックはおこないますが、基本的にはエデイタでファ イルを変更するのと大差ありません。初めて使う人にとっ ては、お世辞にも親切なコマンドとはいえないでしよう。 FreeBSD や BSD/OS では (/usr/sbin/)adduser および (/usr/sbin/)rmuser を用いて、パスワード・フ ァイルに耐妾変更を加えすにユーサーの追加と削除ができ ます (Solaris 2. x では、 useradd 、 userdel 、 usermod などのコマンドが用意されています ) 。 いくつかオプションがありますが、 adduser を引数な しで実行すると、パスワード・ファイルのフィールドを それぞれ対言乱勺に指定することかできます。 FreeBSD で adduser を実行した様子を図 3 に示します。 adduser は、ますパスワード・ファイルやグループファ イル、 /etc/shells ファイルをチェックし、〕尺可能なグ ルーフ。やログインシェルなどを調べます。 次に、実際に個々のユーサーに関する情報を訊く前に これから追加するすべてのユーサーに共通するデフォルト 設定を u ュてきます。これに相当するのが 7 ~ 13 行目で、 それぞオ IJ 以下のような未をもちます 6 。 ・ログインシェル ( 7 行目 ) デフォルトで設定するログインシェルを入力します。図 5 より正確には、 vipw が pwd-mkdb -c" を実行することによってお こなわれるチェックてす。 6 adduser はパラメータを盟る際に、テフォルト直を、、ロ " のなかに 六します。テフォルト以タ P ) 値を指定する場は適切直をキーポード から入力する必要がありますが、デフォルト刎直をそのまま使うのであれ ばたんにリターンを入力します。 168 の例ではデフォルトは sh (/bin/sh) になっているの で、変更したけれは表示されている候補のなかから 1 つ を選んて指定します。 ・ホーム・ディレクトリ ( 9 行目 ) ューサーのホーム・ディレクトリを作成するディレクト リを指定します。図刎列ではデフォルト値の /home を そのまま使っているので、ユーサーのホーム・ディレ クトリは、、 / h 。 me / ユーサー名 " となります。 ・設疋ファイルの雛型 ( 10 行目 ) シェルの不鶤頁に応じた設疋ファイルの雛型 (skeleton) が置かれているディレクトリを指定します。デフォル トは /usr/share/skel で、これを指定すると、そのディ レクトリにあるすべての雛型ファイルがユーサーのホー ム・ディレクトリにコピーされます。、、 n 。 " を指定した 場合は、芻豐ファイルのコピーはおこなわれません。 雛型ファイルか置かれているディレクトリには、シェル にかぎらすさまざまな設定ファイルを、、 d 。 t. 設疋ファ イル名 " という名前 (dot. cshrc など ) で置くことがで きます。雛型ファイルは、ファイル名から、、 d 。 t " とい う文字列を削除した名前でコピーされます。 たとえば、 bash の雛型ファイルを新しく作った場合、 dot. bashrc という名前でここに置いておけば、新たに 追加したユーザーのホーム・ディレクトリに . bashrc と いう名前で自重加勺にコピーされます。 ・メッセージ・ファイル ( 11 行目 ) アカウントの作成後、そのユーザーに対してメッセー ジを送るかどうかを指定します。メッセージか書かれた ファイルを指定すると、新たに追加したユーザーに対し てメッセージがメールとして送られます。マシンを利用 するうえてせひ知っておいてもらいたい注意事項などが あれは、メッセージ・ファイルをあらかし乍ってお n 。 " を指定した場合、メッセージ くといいでしよう。 は送られません。 ・パスワード ( 13 行目 ) y を指定すると、ユーザーを追加する際にパスワード を訊かれます。 n と答えた場合、パスワードは設定 されす、 /etc/master. passwd のノヾスワード・フィ ル・ドは闌のままになります。 上記の質問に答えると、いよいよ各ューザーの j 助日作業 UNIX MAGAZINE 1998.11

10. UNIX MAGAZINE 1998年11月号

ルの構築、使用にはいろいろな間題があります。アプリ ケーション・モデルは詳細なアプリケーション知識を もつ必要がありますが、複雑なアプリケーションの知識 を効果的に表するのは難しく、アプリケーションの作 成によけいな手間がかかります。ューサーモデルでは、 ューサーの各種の搨生を直表現した値の組がよく使わ れます。しかし、このようなデータの通芯に対する有効 性や正当性には疑間があります。モデルを作成するため に、ユーサーへの質問に対する回答や操作履歴がよく使 われますが、両者ともに信用できるとはかぎりません。 ・心に対する不安感 ューサーが知らないあいだにシステムのカ躾行され るとユーサーは不安を感しることが多いので、このよう な信様は避けるべきです。とはいえ、ユーザーに確認を 求めてから畆カ作をおこなったとしても、ユーサーは システムの煢力や操イ乍牲が以前と変わることに抵抗を覚 えるかもしれません。システムがしようとした理由 をユーサーか理解できなけれは不安感か増大しますし、 早していたとしても、ユーサーがその仕組みを操作で きなけれは苛立たしく感しるかもしれません。 ・通芯の有効性への疑間 方式か優れていても、 j 面の保が小さけれは無意味で す。ューサーク罸生や状況に応じてシステムの乍を変 えることか本当に有効な場合にのみ通芯型インターフェ イスを採用する意義があります。適応などしなくても、 誰にでも使いやすいインターフェイスがあれはそれが一 番よいのですから、適応インターフェイスそのものを 疑問視する考えもあります。 ・人間の通芯力との関係 遡芯型インターフ土イスをもつシステムは多くありませ んが、世の中の多くの機器は、使えは使うほど使いやす くなります。機賊自体刎芯型でなくても、人間は日常 的に使うことによって機器に j してしまうからです。 相当扱いにくい機械でもなんとなく使われているのは、 人間の i 慟皀力がきわめて高いからでしよう。 したがって、人間か簡単に通芯でき、そのことで大きな 間題が生しないのなら、機械は非 i 勺 ( 固定 ) にして おいて人間に遡芯させるはうが現実的です。たとえは、 自動車のハンドルやプレーキの操作が運転者に i する ようになっていたとしても、ほかの車に乗るときにまご UNIX MAGAZINE 1998.11 っくかもしれませんし、そもそも特定の個人に遡芯して しまった車は他人には運転しにくくなります。このよう なケースでは、オ成を道勺にするより、標準化して差 異を減らすはうがよく、時間をかけても人間か機械に適 応するはうが長期的には得策と考えられます。 以 - 日こ述べたように、深い推言劬ゞ必要な通芯型インター フェイスの構築はかなり難しいのが実状です。したがっ て、遡加勺な機械を開発するより、根本的に使いやすくし たり、明示的にカスタマイズしたり、あるいは人間か機械 に j 面するほうか都合がよい場合も多いと思われます。 しかし、自分だけカイ吏う計算機で、カスタマイズカし かったり、朱な使い方をすることが多かったり、叫屯な 通芯手法カ分な効果を囎軍する場合などには通芯型イン ターフェイスか有効かもしれません。たとえば、 SKK[14] のような単純なかな漢字変換システムでは、直前に変換し た漢字が次回の変換でイ囎甫のうび頁に提示されます。これは ごく単純な手法ですが、よく使う漢字か表示されやすくな るので通芯手法として効果的です。 インターフェイスの街角 通芯型インターフェイスの例として、 SKK と同様な単 純な遡芯手法を用いたプログラムを紹介します。 気に入った web ページへのリンクを並べた、、リンク 集 " ページを作って活用している人も多いと思います。毎 日のように発見するおもしろいページをリンク集やブック マークに登録する場合、一殳には新しく追加したリンクが リストの地頁に置かれます。この場合、そオ LJ リ汐 ) リンク は 1 つ後ろに移動するため、新しいけれどもあまり重要 でないリンクが、旧いけれどもよく使われるリンクよりも 上位に位置してしまうことがあります。重要なものを別の ところに保存したり、不要なものをこまめに削除すれはよ こういった URL の整理はけっこう面倒で いのですが、 す。、超整珊去 " のように、アクセスしたリンクがつねに : 頁に移動するようにしておけは、もうすこし使いやすく なるのではないでしようか。これを繰り返していくと、結 果的にユーサーの使用形態に適したリンク集ページができ ると考えられます。ここでは、一見凾のリンク集ページ にみえますが、 j 尺するたびに順番を変える手法を紹介し 超整理 Link 集 ます。 183