連載 Transferrxng ethers. byaddr Transfernng ethers . byname Transferring group ・ bygid ・ Transferring mai1. byaddr. Transferring group. byname ・ Transferring hosts . byname Transferring hosts . byaddr Transferring passvd. byuid. Transferring netid. byname. Transferring rpc. bynumber. UN Ⅸ Communication Notes neptune# ypinit —s Jupiter neptune# cd /usr/etc/yp リスト 2 ypinit - s の実行 a fev minutes, tO copy the data bases from jupiter . There 臂 i11 be Ⅱ 0 further questions . The remainder Of the procedure should take don't , some part Of the system (perhaps the yp itself) von't work. If you OK , please remember tO go back and redO manually vhatever fails . DO you 臂 t this procedure tO quit 0 Ⅱ non—fatal errors? [y/n: 司改行を入力 Questions 臂 i11 a11 be asked at the beginning 0f the procedure . lnstalling the yp data base will require that you answer a fev questions . services. byname . Transferring netvorks . byname . Transferring protocols . byname. Transferring protocols . bynumber. Transferring netvorks . byaddr. Transferring netgroup. byhost . Transferring netgroup. byuser. Transferring passvd. byname. mail . aliases . Transferring publickey. byname ・ Transferring netmasks . byaddr . Transferring Transferring bootparams . Transferring netgroup. Transferring have just created 臂 i11 be used, instead Of the /etc ASCII files. been edited so that when the Ye110 響 pages is activated, the data bases you /etc/group, /etc/protocols , /etc/services/ , /etc/rpc and /etc/netgroup have At this point , make sure that /etc/passwd, /etc/hosts , /etc/networks , neptune ' s yellovpages data base has been set up vithout any errors. neptune# ては後述します。 ・ /etc/passwd UNIX MAGAZINE 1991.6 てまちまちの値になっています。 NIS 環境になっても、 ) システム関連のアカウントの uid は、システムによっ を付け加えておきます。 ノヾスワードファイルの最後の行に いアカウント ) を残し、その他はすべて消します。そして、 ステーションに固有のアカウント ( NIS によって共有しな ント ( root 、 nobody 、 syss daemon など ) と、そのワーク パスワードファイルは、システム起動時に必要なアカウ かならすもとの / etc / passwd から消さないで残してお きます。 ・ /etc/group グループファイルは、最初から設定されているいくつか のシステム関連のグループ (wheel 、 nogroup 、 daemon, kmem 、 bins tty) と、そのワークステーションに固有のグ ① kmem グループには注意が必要です。これは、一般利用 を付け加えておきます。 プファイルの最後の行に ループを残し、その他はすべて消します。そして、グルー 67
連載 UNIX Communication Notes 齊藤明紀 山口英 NIS-Network lnformation Service( 前編) ネットワーク・アフリケーションその 10 ) NIS (Network lnformation Service) は、ネットワー ク環境で UNIX ワークステーションを円滑に運用できる よう、各種のデータベース・ファイルの共有機能を提供す るシステムで、 SunMicrosystems によって開発されまし た。共有可能なデータベース・ファイルには、 /etc/pas- swd 、 /etc/group 、 /etc/hosts などがあります。これによ って、ネットワーク上の UNIX のデータベース・ファイル が一括管理できるようになり、 UNIX ワークステーション の管理の手間が飛躍的に軽減されます。今号から 2 回にわ たり、この NIS について解説します。 なぜ NIS を導入するのか 最初に、 LAN 環境でのワークステーション管理につい て考えてみましよう。 UNIX ワークステーションの日常管理の 1 つに、 / etc / passwd や /etc/hosts などのデータベース・ファイルの保 守が挙げられます。これらのファイルは、ネットワーク環 境のワークステーション間でよく共有されます。また、 NFS 環境ではセキュリティを守るためにサーバーとクラ イアントとのあいだで uid 、 gid の割当てを統一する必要 があり、 /etc/passwd を共有しなけれはなりません。 ネットワーク環境でワークステーションの台数が増加す ると、各ワークステーションで使用しているデータベー ス・ファイルの整合性を保つのはたいへんな作業になって きます。各データベース・ファイルをコピーという手段で 共有したとすると、次のような問題が生します。 ファイルの更新がたいへん 管理しているワークステーションが 10 台くらいであれ ば、管理者が手作業で更新できないことはありません。し UNIX MAGAZINE 1991.6 かし、これが 50 台、 100 台と増えていくと更新に要する労 力は膨大なものになり、とても現実的な手段とはいえなく なります。 rdist を cron で定期的に起動して更新を自動化 することもできますが、変更がはかのワークステーション に伝播するまでに時間的な遅れが発生します。また、対象 となるワークステーションが多い場合には rdist の実行に も時間がかかり、負荷が増大します。 各ユーサーの手間が増える 各ューサーにとっては、パスワード変更の際に問題が生 します。 /etc/passwd を共有している場合、なんらかの方 法で /etc/passwd の更新を自動化しないかぎり、アカウ ントを共有しているすべての計算機にログインしてパス ワードを変更しなけれはならないからです。 rdist を (cron などを使って ) 定期的に実行して / etc / passwd を更新す る方法をとったとしても、マスターとなる /etc/passwd を更新してからほかの計算機にコピーされるまでに時間的 な遅れがあり、パスワードの変史がすぐにほかの計算機す べてに反映されるわけではありません。 セキュリテイか守りにくい アカウントを共有するために /etc/passwd をコピーす ると、セキュリティの面でさまざまな問題が生します。た とえば、ある利用者のアカウントを特定のワークステーシ ョンでは無効にしたい場合、 /etc/passwd を更新するとと もに、コピーした /etc/passwd からその利用者のエントリ を消去しなけれはなりません。多数のワークステーション 上でこの作業が必要な場合、計り知れない手間がかかりま す。また、この作業を忘れるとセキュリティホールとなる 危険性もあります。さらに、必要のないユーザーにも /etc/ passwd を公開してしまうことになるので、セキュリティ 61
if [ fi if [ elif else fi date ースーバー # Make sure ld. so. cache is removed (rc. single may not invoked # when going from multi—user mode to single-user then back to multi—user) ¯a ¯P -f /etc/ld. so. cache ] ; then # Carefu11y delete ld. so cache in case it is corrupted mv /etc/ld. SO. cache /etc/ld. so. cache— /etc/ld. SO. cache— —r /fastboot ] ; then —f /fastboot [ $lx = autobootx ] ; then echO Automatic reboot in progress. echo Mu1t iuser startup in progress. # attempt to rationally recover the passwd file if needed if [ -s /etc/ptmp ] ; then if [ -s /etc/passwd ] ; then ls ー 1 /etc/passwd /etc/ptmp nn —f /etc/ptmp # should rea11y remove the shorter ech0 'passwd file recovered from ptmp' mv /etc/ptmp /etc/passwd fi elif [ -r /etc/ptmp ] ; then ech0 'removlng passwd lock file ' rm -f /etc/ptmp fi intr mount —at 4.2 intr quotacheck quotaon —a /bin/ps -U rm —f /et c/nologin echO —n ' checking quotas : echO ) done . if [ -f /dev/ttypO ] ; then chown root /dev/tty [pqrs] * chmod 666 /dev/tty Cpqrs] * fi /usr/etc/ttysoftcar —a > /dev/null 2 > & 1 sh /etc/rc. 10Ca1 swapon —a ()d /tmp ; /usr/lib/expreserve -a) ()d /tmp; rm -f update ; nn -f /var/sp001/cron/FIFO cron ; # accounting, ech0 preserv ing editor f i les echO echO echO echO nn —f LCK . * ( cd /var/spool/uucp if [ -d /var/spool/uucp ] ; then #/usr/l ib/acct/startup accounting is 0ff by default. if [ -d /usr/lib/uucp ] ; then clearing /tmp ーⅡ ーⅡ ' standard daemons : ) update' cron ' su uucp —c /usr/lib/uucp/uusched & \ echO ーⅡ uucp fi) fi UNIX MAGAZINE 1991.6 ユーサーへの道 2 33
' start ing network daemons : ( currently) i s a real performance pig for systems with 1 imited memory. -f /usr/etc/ in. rwh0d ] ; then # rwhod echO —n if [ fi if [ fi fi #f i in. rwhod; —f /usr/etc/ inetd ] ; then inetd; echo ーれ ' rwhod' echO —n ' inetd' if [ -f /usr/lib/lpd ] ; then m -f /dev/printer / v 矼 / SP001 / 1 .. lock /usr/l ib/lpd ; echO ーⅡ echO ' date fi —f /usr/nserve/loc. passwd /usr/nserve/loc. passwd. dummy if [ —f /usr/nserve/loc. passwd. dummy ] ; then /usr/bin/dorfs start ; ech0 ' done. fi echO > /usr/nserve/loc. passwd. dummy echO ー > /usr/nserve/loc. passwd if [ ! -f /usr/nserve/loc ・ passwd ] ; then echO ーⅡ starting rfs : #if [ —f /usr/nserve/rfmaster ] ; then ◇ rc 」 oc 引の例 exit 0 @( # ) rc. 10C 1.111 90 / 01 / 03 SMI; from UCB 4.3 # hostname now set in rc . bOOt domainname ( cat /etc/unimag PATH=/bin : /usr/bin : /usr/etc : /usr/ucb ; export F)AIY if if fi if fi if fi if fi echO —n ) starting rpc 田 ld net services : [ —f /usr/et c/portmap ] ; then echO —n ' portmap portmap ; [ —f /usr/etc/ypserv -a —d / v 矼 / / ( domaimame echO —n ypserv ' ypserv ; Master NIS server runs the X ト daemon then ypxfrd; -d / v 矼 / ] ; then ech0 ーれ ' ypxfrd' if [ —f /etc/security/passwd. adjunct ] ; then ypbind ¯s ; else ypbind; fi ech0 —n ' ypbind' ech0 —n ' ypbind' [ —f /usr/etc/keyserv ] ; then ech0 —n ' keyserv ' keyserv; ech0 —n ' ypupdated ) rpc ・ ypupdated; [ —f /usr/etc/rpc. ypupdated -a —d / v 矼 / / 。 domainname ( ] ; then # set the netmask from N IS if running , or /etc/netmasks for a11 ether interf aces ifconfig —a netmask + broadcast 133.1.12.255 > /dev/null # If we are a diskless client , synchronize time—of—day with the server. # E1se , if applicable , r 町 1 the router daemon. N0te that for better # perfomance , we don't enable the router daemon for diskless clients. # At the same time , teminate the currently printing 1ine (for prettiness) . 34 server= grep UNIX MAGAZINE 1991.6
フィールドは 7 つあり、先頭から順番に次のようになって います。 1 ) ログイン名 : 一般にアルファベットの小文字を使い、 SunOS の場合 8 文字まで認識されます。 2 ) パスワード : パスワードが暗号化されて書かれます。 SunOS の場合、アルファベットの大文字と小文字を組 み合わせて使うときは最低 5 文字、大文字または小文字 のどちらか一方を使うときは最低 6 文字必要です。 3 ) ューサー ID : 0 から 65 , 533 までの値 22 をとることが できますが、、、 0 クはスーパーユーザーのためのもので、 一般ューサーには使用しません。通常は 1 から 99 まで をシステム用に予約しておき、 100 以降を一般ューザー 用として使います。また、別の人に同しユーサー ID を割 り当てると、システム上では同一人物とみなされるので 注意が必要です。 4 ) グループ ID : ューザーが所属するグループの ID 番号 が書かれます。 5)gecos : 通常、このフィールドにはユーザーのフルネー ムや電話番号などの情報が書かれます。これらの情報 は、 finger コマンドなどで使われます。 6 ) ホームディレクトリ : ューサーのホームディレクトリが 絶対パスの形式で書かれます。通常、ディレクトリ名は ログイン名と同しものが使われます。 7 ) ログインシェル : ログイン時に起動されるプログラムの パス名が書かれます。このフィールドに何も書かれてい ない場合は Vbin/sh" が起動されます。 前出の /etc/passwd ファイルの例には、、、 bin" や、、 dae- mon" のようにあらかしめ設定されているエントリがいく つかあります。これは、特別なファイルの所有者を設定し たり、プロセスのユーサー ID を確保するためのものです。 これらのエントリのパスワード・フィールドに何も書かれ ていないと、セキュリティ上の抜穴となる可能性があるの で、、、 * 〃にして一般ューサーが使えないようにしておきま しよう。 /etc/passwd ファイルを変史するには、 vipw コマンド を用います。これは、複数のスーパーユーサーが同時に / etc / passwd ファイルを変史しようとしたり、変更中に 22 SunOS 4.0.3 以前では 0 から 32 , 767 までが使用可能です。 } UNIX MAGAZINE 1991.6 ースーバーユーサーへの道 2 般ューサーが passwd コマンドなどを使ってエントリを 変更したりするのを防止するためです。 vipw の実行中は、 ほかの人がファイルを変更できないようになっています。 また、 vipw は環境変数 EDIT 〇 R を参照して、編集時のェ デイタとして使います。たとえは、 EDIT 〇 R がⅵであれば ⅵ工デイタが起動されます。 通常、 vipw コマンドで /etc/passwd ファイルを変更で きるのはスーパーユーサーだけになっています。しかし、 一般ューサーが自分のパスワードを変更したいときやロ グインシェルを変えたいとき、いちいちスーパーユーザー に頼むのは面倒です。そこで passwd 、 chsh 、 chfn という 一般ューザーが使える 3 つのコマンドが用意されています。 passwd コマンドは、自分のパスワードを変更するため に使います。実行例は次のようになります。 % passwd Changing password for okayama 0 Ⅱ nadia. 01d password: New password: Retype new password : このコマンドを実行すると、まず現在のパスワードか ねられ、それが正しいと判断されると新しいパスワードを 2 回入力するように求められます。 2 回入力するのは、タ イプミスを防止するためです。入力するパスワードは、当 然ながら画面には表示されません。旧いパスワードが間違 っていたり、新たなパスワードを打ち間違えると、パスワー ドは変史されすに終了します。また、新たなパスワードが 最低文字数を満たしていない場合、、、もっと長いパスワード にせんかい ! 〃と ( もちろん英語で ) 怒られますが、しっこく 繰り返していると、向こうも、、もう知らん。好きなように せいにという感しでそのパスワードを受け付けてしまい ます。仏の顔も三度まで、ですね ( ちょっと違うかな ? ) 。 chsh コマンドは、ログインシェルを変更するために使い ます。これを実行すると、ます現在のログインシェルが表 示され、次いで新たなシェルを指定するよう入力が促され ます。実行例は、次のようになります。 % chsh Changing login shell for okayama 0 Ⅱ nadia. New shell : /bin/csh 01d shell : /bin/sh 55
理などがおこなえます。 それには /etc/group ファイルを利用します。ます、新た なグループを設定するにはこのファイルを編集してエント リを追加します。たとえば、私たちの研究室のあるマシン の / etc / group ファイルは次のようになっています。 wheel : * : 0 : yamaguti , shimoj 0 , okayama daemon : * : 1 : hnem : * : 2 : bin : * : 3 : tty : * : 4 : operator : * : 5 : news : * : 6 : audit : * : 9 : staff : * : 10 : other : * : 20 : llllya: * toku: * : 400 : fuji:*:500: kasa: * tori : * tani : * monkey : * : 620 : baba, katayama, okayama : 600 : : 300 : : 200 : : 100 : り面倒です。具体的には、次のような手順でおこないます。 グループにもパスワードが設定できますが、設定はかな ( , ) で区切って書きます 4 ) ューサー名 : グループのメンバーのログイン名をカンマ 3 ) グループ ID : 0 から 65 , 535 までの値 23 2 ) パスワード 1 ) グループ名 次のようになっています。 られています。それぞれのフィールドは、先頭から順番に 工ントリのなかの 4 つのフィールドはコロン ( : ) で区切 /etc/group ファイルは 1 行に 1 つのエントリが書かれ、 なんとなく / etc / passwd ファイルに似ていますね。 miya wheel monkey % groups % cat /dev/null > f00 % ls —lg f00 1 okayama miya % newgrp monkey % cat /dev/null > junk % ls -lg junk 1 okayama monkey UNIX MAGAZINE 1991.6 23 S 聞 0S4.0.3 までは 0 から 32 , 767 までの値が使用可能です。 0 Apr 0 Apr ースーバーユーサーへの道 2 l)/etc/passwd ファイルと同様なエントリをもつ次のよ うなダミーファイル ( / tmp / f 。 o など ) を作る。 monkey::O:O: 2)passwd コマンドの一 F オプション 24 で / tmp / f00 ファ イルを指定し、パスワードを設定する。 コピーし、エントリを編集する。 3 ) /tmp/foo の暗号化されたパスワードを /etc/group に Retype new password: New pas sword : % passwd -F /tmp/foo monkey 59 手順 1 ) のようなダミーのエントリを作るなどの作業が必要です。 24 このオプションがサポートされていない機種では、 / etc / passwd ファイルに 3 03 : 14 junk 3 03 : 13 f00 ましよう。 す。変更前と変更後にファイルを作り、これを比較してみ アクセス権で作業したい場合にも、このコマンドを使いま 一方、複数のグループに属している人が別のグループの 設定できません ) 。 group ファイルのノ、スワードはスーノヾーユーサーにしか ワード・フィールドを、、 * 〃にしておきましよう ( なお、 /etc/ ですから、パスワードを設定しないときにはかならすパス 行してもパスワード・チェックをせすに通ってしまいます。 ールドに何も書かれていない ) と、 newgrp コマンドを実 なお、パスワードが設定されていない ( パスワード・フィ newgrp : Password : % newgrp wheel います。 なることができます。 SunOS では、 newgrp コマンドを使 人でもパスワードさえ知っていればグループのメンバーに パスワードを設定すると、そのグループに属していない
また、 passwd -s でも同しことができます。 % finger okayama Login name : okayama 、ゝルドを変更します。このフィールドは、ユーサーの個人情 報 ( フルネームや電話番号など ) を書いておくためのコメ ント用のフィールドですが、 finger コマンドでこれを見る ことができます。 chfn コマンドは、ノヾスワードファイルの gecos フィー / D irect ory : /home ln real life : Kiyohiko Okayama SheII : /bin/csh On since Apr 2 14 : 08 : 39 0 Ⅱ ttyp4 from neptune % chfn たとえば、引っ越しで部屋や内線番号が変わって自分の や部屋番号などを表示してくれるものもあります。 これは Sun での実行例ですが、はかの機種では電話番号 No PI 田 1. No unread mail 5 minutes 47 seconds ldle Time ゝ gecos フィールドを変更したい場合、 chfn コマンドを次 のように実行します ( 、、 passwd -f" でも同しことができ ます ) 。 Changing finger infomation for okayama 0 nadia. DefauIt values are printed inside 0f ' ロ ) To acc ept the def ault , type く return>. To have a blank entry , type the word 'none ) Name CKiyohik0 Okayama , G506 , 4827 ] : Kiyohik0 Okayama, G507 , 4828 なお、スーパーユーザーはこれらのコマンドを使って、 任意のユーザーのノヾスワード、ログインシェル、 gecos フ ィールドを書き換えることができます ( コマンドのあとに ューサー名 ( ログイン名 ) を指定します ) 。 バスワードに関する注意 皆さんは、自分のパスワードを忘れてしまった経験はあ りませんか ? パスワードとはちょっと違いますが、私は銀 行のキャッシュカードの暗証番号を忘れてしまったことが あります。 ある日、できたてのホヤホヤのカードを片手に銀行に出 かけたときのことです。カードを自動引出し機に突っ込み、 暗証番号と金額を打って待っこと数十秒。、、最初から手続き をやりなおせ〃のメッセージとともにカードと紙切れが出 てきました。読んでみると、なんと暗証番号が間違ってい るとのこと。あれ一、なんやったかなあと思いながらもう 1 度試してみましたが、それでも駄目です。ちょうど給料 日の直後で人が多く、後ろに並んでいる人たちの冷たい視 線に負けてしまい、あきらめて窓口で問い合わせることに 56 しました。、、しようがないわね〃といった感しのお姉さんに 番号を教えてもらったところ ( メモではなく、ちゃんと口頭 でした ) 、自分でも、、なんでこんなんつけたんやろ〃と思う はど凝った番号でした ( どんな番号かって ? それはひ・ み・つ ) 。 銀行の暗証番号と同しように、マシンのパスワードを忘 れてしまったときも自分ではどうすることもできません ( あなたがスーパーユーサーになれるなら別ですが ) 。っ いうときは、スーパーユーザーに頼んで書き換えてもらい ましよう。 ただし、このとき ( ューザーを登録したときも同様です が ) 、 /etc/passwd ファイルのパスワード・フィールドに何 も書かすにおいて、ユーサーにあとから passwd コマンド でパスワードを設定してもらうのはやめたほうが賢明です。 パスワード・フィールドに何も書かれていないとパスワー ドのチェックはおこなわれす、誰でもそのユーサーになり すましてマシンが使える危険な状態になるからです。なる べく仮のパスワードを設定し、その人だけにそっと教える ようにしましよう。 UNIX MAGAZINE 1991.6
ースーバーユーサーへの道 2 ます。なお、 -x 、一 n オプションは、ともにスー 次に、パスワードを選ぶときの注意です。さきほどの例 ーしか使えません。設定を確認するには、 のように、自分でも忘れてしまうほど凝ったパスワードを つけるのは考えものですが、逆に簡単にばれてしまうよう passwd -d なパスワードをつけるのはもっと危険です。 Sun の場合、 を実行します。私もそうですが ( しつは研究室に来てから パスワードには最低 5 文字 ( 大文字と小文字を混ぜた場合 1 度もパスワードを変えたことがない ) 、放っておくとこま は 6 文字 ) 必要ですが、これもあまり単純なものをつけない めにパスワードを変更する人はほとんどいないので、この ようにという配慮からです。 ような機能を使って強制的にパスワードを変えさせるのも 参考までに、パスワードを選ぶ際のヒントをいくつか挙 1 つの手段ではあります。 げておきましよう。 パスワードについては、設定時だけではなく運用する際 にも注意が必要です。たとえば、パスワードを入力すべき 2 つ以上の単語を使う ところでは、かならすェコーバックが抑制されて入力した 単語のあいだにスペースなどを入れる 文字が画面に表示されないようになっています。しかし、 わざと間違った単語を使う たまたまマシンの負荷が高く、、 Password:" のプロンプト 大文字と小文字を適当に混ぜる がなかなか出ないときなど、急いで入力しようとするとパ 身内の名前や生年月日、電話番号など、簡単に推測でき スワードが画面に表示されてドキッとすることがあります。 るようなものは使わない ですから、パスワードの入力を促すプロンプトが出るのを 確認してから落ち着いて入力するようにしましよう。 これらを踏まえたうえで、自分カ撹えておける範囲のパ そのはかにも、パスワードを他人に教えないのはもちろ スワードを選んでください。 んのこと、パスワードを紙に書かないなどの注意が必要で また、簡単には類推できないようにするためには、定期 す。自分に迷惑がかかるだけならともかく、同しマシンの 的にパスワードを変えるのも有効な手段です。そのため、 ューサー、さらにネットワークでつながれているときには SunOS4.1 からはパスワードの、、エージング〃がサホート ネットワーク上のはかのユーサーにまで被害が及ぶおそ されるようになりました。これはパスワードに最大有効期 れがありますから、パスワードはきちんと管理するように 間を設定し、その期間を過ぎると強制的にパスワードを変 更させる機能、パスワードを変更できない期間を設定する しましよう。 あらかしめ OS がインストールされた状態 (" プレイン 機能のことです。パスワードの最大有効期間を設定するに ストール〃といいます ) のマシンを購入したり、自分で OS は、次のようにします。 をインストールしたときに / etc / passwd ファイルを見る % passwd —x 90 okayama と、ログイン名が、、 guest 〃となっているエントリがあるこ とがあります。これは一時的なユーサーのためのアカウン この例ではユーサー okayama のパスワードの最大有 ト C ゲストアカウント〃などと呼びます ) ですが、このよう 効期間を 90 日間に設定していますが、実際は 1 週間単位 な誰でもマシンに入れるようなアカウントはなるべく使わ で切り上げられるので 91 日間となります。設定した有効 ないようにすべきです。これは、プロジェクトで共有して 期間を過ぎると、ログイン時に新しいパスワードを設定す いるようなアカウントでも同様です。本来、アカウントは るよう求められ、パスワードを再設定するまでログインで 個人のためのものですが、プロジェクトの新しいメンバー きない仕組みになっています。 にアカウントを教えるときにほかの人に知られてしまうか 一方、パスワードが変更できない期間を設定するときは もしれません。ですから、アカウントを共有するよりも、 次のようにします。 グループをうまく活用してアクセス権を設定したほうがよ % passwd ー 30 okayama いと思います。 複数の人間が使うアカウントとしては、 root のアカウン これが設定されると、期間中にの例では 1 週間位で切 トもあります。 root で直接ログインするのはあまり好まし り上げられて 35 日間 ) はパスワードを変更できなくなり 57 UNIX MAGAZINE 1991.6
連載 /UNIX Communication Notes— 者によるカーネルメモリ (/dev/kmem) へのアクセス を禁止するために導入されているものです。このため、 NIS 環境への移行によってもとの値と変わるのは避け なければなりません。ところがこの gid は OS によって まちまちで、たとえば SunOS では 3 ですが、 UItirx で は 6 になっています。ですから、 NIS への移行時にも /etc/group から消さないでかならす残しておかねばな りません。 ・それトのデータベース・ファイル passwd と group 以外のデータベース・ファイルは、 ypbind が起動するとすべてサーバーのデータを参照する ようになります。したがって、データベース・ファイルの 中身はプート時に必要な最低限度のエントリだけにする ことができます。たとえば、 / etc / h 。 sts は自分のホストと ローカル・ルーフ。バック ( 127.0.0.1 ) だけにすることがで きます。 ネットグループ (netgroup) NIS には、ドメイン全体で定義できるネットグループ (netgroup) の機能があります。 1 つのネットグループは、 ( ホスト , ユーサー , ドメイン ) の 3 つ組を要素として、それらの集合によって定義されま す。たとえは、 (neptune , yamaguti , unix-magazine) は、 NIS で、計算機 neptune がドメイン unix-magazine に 属していたときのユーザー yamaguti を表しています。ューザー名、ホスト、ドメインの各項に 何も書かないこともできます。たとえば、 (neptune , , ) は、 計算機 neptune のすべて一一すなわちどのようなドメイ ン名を使っていても、計算機 neptune と計算機 neptune のすべてのユーサー 68 を表します。何も書かないのはシェルなどでワイルドカー ド ( アスタリスク : * ) を使うのと同しです。どのように評 価されるかは、そのネットグループが使われる場所 ( con - text) に依存します。逆に ( neptune , とした場合には、 計算機 neptune だけ を表します。すなわち、ドメイン名やユーサー名について は何も指定しない ( あるいは、、マッチしない〃 ) ことになりま す。そのため、ドメイン名やユーサー名について評価する ところで、これを要素としてもっネットグループを使って も、まったく意味をもちません。 このような記法を使用してネットグループを定義します。 その定義は /etc/netgroup に記述します。このファイルで は、次のような記法を使用しています。 、、 # 〃以降はコメントとみなす ・ 1 つのネットグループは 1 行に記述する ・各行の先頭にグループ名を書き、空白で区切り、さらに その後ろにメンバーの要素を空白で区切りながら並べる リスト 3 に実際の例を示します。 この例では、 5 つの netgroup が設定されています。最 初の、、 unix-magazine" は、ドメイン unix-magazine に 属しているすべての計算機とユーサーを表しています。次 の 2 つは、あるグルーフ。のユーサーと計算機についてのグ ループです。 grouplusers" にはユーサーとして saitoh 、 yamaguti が含まれ、、、 grouplmachines" には計算機 jupiter 、 neptune 、 mercury が含まれることを表していま す。 アカウントなどの制限 これまでに述べてきた手順で NIS を設定すると、 /etc/ passwd 、 /etc/hosts などのデータベース・ファイルが共有 できます。これにより、アカウント管理やデータベース・ ファイルの保守などが簡単になります。 しかしこれでは、なんらかの設定をしないかぎりマスタ ーサーバーの /etc/passwd に登録されているユーサーは、 UNIX MAGAZINE 1991.6
毎年春になるとどこの大学のキャンパスも新入生でご った返し、休み中とは打って変わって賑やかになります。 サークル勧誘のチラシとにらめっこしている女の子や、は しゃぎまわっている女の子 ( 女の子にしか目がいかへんの かって ? ふだん女の子とは無縁の生活なんやから、しよう がないやん ) などを見ていると、なんだかこっちまで新鮮 な気分にさせられます ( とはいっても、どこも人だらけで昼 食もおちおちとれす、うっとうしくもありますが ) 。 彼らほど初々しくはありませんが、私たちの研究室にも 新しい 4 年生が配属されてきます。そこでますマシンの管 理者がやらなけれはならないのは、彼らが研究室にあるマ シンを使えるようにアカウントを作ることです。マシンが 多けれはマシンごとに登録するのも面倒な作業ですし 21 、 どのようにアカウント名をつけるかといったことも考えな くてはなりません。登録する人数が多い場合などは、これ も頭痛の種ですね。 また、管理者の仕事はユーサーの登録だけではありませ ん。これとは逆に、アカウントを抹消しなけれはならない こともあるでしようし、グループを設定したり、新たにソ フトウェアをインストールすれはそれをユーサーに知らせ るのも管理者の重要な仕事です。そこでここでは、このよ うな、、ユーサー管に関するコマンドや必要なファイル、 方法などについてみていくことにしましよう。 冖ログイン名のつけ方 新規にユーサーを登録する場合、ます考えなけれはなら ないのは、、ログイン名 ( アカウント名 ) をどうつけるか〃と root : NaMEtEnNOKaUK : 0 : 1 : Operator : / : /bin/csh nobody : * : 65534 : 65534 : : / : daemon : * : 1 : 1 : : / : sys:*:2:2::/:/bin/csh bin : * : 3 : 3 : : /bin : uucp : * : 4 : 8 : : /var/spool/uucppublic : news : * : 8 : 8 : : /var/spool/news : /bin/csh ユーサー管理 、ゝいうことでしよう。学生実験のように使用期間も限られて いて人数が多い場合、何も考えすに eXP1011 のように学 籍番号を使うこともできます。しかし、これでは誰のこと かさつばり分かりませんし、メールを出すにも番号を間違 えてはかの人に送ってしまわないともかぎりません。した がって、通常はなるべくその人であることが分かるような ログイン名を選びます。私たちの研究室の場合、ログイン 名はその人の姓 ( たとえば okayama) を使い、はかの人と かち合うときにはファーストネームを使ったりしています。 そのほかにも、ニックネームやイニシャルなどいろいろ考 えられますが、これは管理者のセンスの見せどころといえ るでしよう。 また、名前のつけ方に関連しますが、あるマシンをプロ ジェクト専用にしたいとか、プロジェクト専用のディレク トリを作ってそこに関連するファイルを入れておきたいこ とがあります。とくに、そのプロジェクトが極秘に進めら れているような場合、ホスト名やディレクトリ名にそのプ ロジェクトの名前をつけるのは避けたほうが賢明です。万 が一情報が漏れてしまうと困るのは自分ですから、気をつ けるに越したことはありません。 さて、実際にユーザーを登録するには、 /etc/passwd フ ァイルにユーサーのエントリを追加します。しはらくのあ いだ、このファイルについて説明していくことにします。 ーバスワード・ファイルの構造 /etc/passwd ファイルには、ユーサーのエントリが 1 行 ごとに書かれています。たとえば、私たちの研究室のある マシンの / etc / passwd ファイルは次のようになっていま す ( 一部省略してあります ) 。 baba: Muoqntkaehy6B : 6228 : 600 : Kenichi Baba : /home/newmercury/baba: /bin/csh katayama: aH0kAyekc3nx. : 4044 : 400 : Katayama yoshiaki : /home/shinobu/katayama: /bin/csh okayama: Sh01 加 ON 訌 110. : 6222 : 600 : Kiyohik0 Okayama: /home/neptune/okayama: /bin/csh 21 NIS(YP) を使えば楽ですが、 慢してくださいわ。 54 1 つのエントリに注目すると、コロン ( 、、 : 〃 ) でいくつか のフィールドに区切られているのが分かります。これらの これは次号以降で紹介します。もうしばらく我 UNIX MAGAZINE 1991.6