WorkStation管理者の仕事 in 大山研究室

原田雄司(1995/9/5)


注)この文書は奥泉恒行(芹澤研究室)が書かれたWS管理者の仕事を1995年 現在の大山研究室向けに書き換え、html形式に変更したものであります。 また、現在の仕様と大部異なることが書いてある部分もありますが、直 せる限り最新のものとお伝えできればと思います。

Index

  1. はじめに
  2. ルートが管理するファイル
    (新しいマシンを買ったりしたらここの設定をちゃんとしましょう)
    1. Mini-rootを立ちあげる(OSの再インストールとか...)
    2. [/](ルート)
    3. [/etc]
      1. aliases
      2. defaultdomain
      3. ethers
      4. exports
      5. fstab
      6. gettytab
      7. group
      8. hostname
      9. hosts
      10. hosts.equiv
      11. inetd.conf
      12. motd
      13. netmasks
      14. networks
      15. passwd
      16. printcap
      17. rc, rc.boot, rc.local, rc.single
      18. rc.local追加分
      19. sendmail.cf
      20. services
      21. shell
      22. syslog.conf
      23. ttytab
      24. resolv.conf
      25. automount.map
      26. ypservers
    4. [/usr/bin,/usr/lib,/usr/ucb]
  3. ルートの仕事
    (日頃のバックアップ、シャットダウン、ユーザーの登録など)
  4. 知っておくべきこと(
    もしもの時や大山研究室のシステムにインストールされているものなど)
管理者のためのIndexへ
大山研究室homepageに戻る

はじめに

これは、わたしがつたない管理をしていくうちに、気づいたことを書いたも のです。細かい解説はしていないので、わからないことがあったら、マニュ アル等(Sunシステム管理とか...)で調べて下さい。時が立つにつれシステム の内容が変わって役に立たないものも出てくるでしょうが、その辺は自分で、 書き足して下さい。SGIのマシンについては私にも謎がいっぱいです。頑張っ て英語を勉強してマニュアルを読むしかないでしょう。また、fj.sys.sgiに は日本語訳されたFAQが投稿されることがあります。今、現在の私の持って いるFAQ(94/10/06)はここにありますので、良かったらどうぞ。 また、Sun用のFAQも同様にfj.sys.sunに投稿されますので気をつけて見て おいて下さい。最新のFAQはここです。

Indexに戻る


ルートが管理するファイル

ここでは、ルートが手を加えた方が良い、あるいはそうしなければならない ファイルについて書いてあります。新しマシンを買った時には、これらを自分 で書き変えて下さい。しかし、あくまで私が知っている範囲のことしか書きま せんので、あしからず。

Mini-Rootを立ちあげる

OSの再インストールなどでcd-romからmini-rootを立ちあげることが あると思います。その際はモニタモード(OKが出てるなど...)

OK boot sd(0,6,2) -sw

と打てば良いです。SCSI DEVICE 6(CD-ROM)の2番目のファイルからSingle User Modeで立ちあげろということです。

OK boot cdrom

でも動くマシンもあります。

Indexに戻る


[/(ルート)]

[.login, .cshrc, .profile]
これらのルートの設定ファイルは、パスをしっかりきる他は、 あまり使いやすい設定をしてはいけません。できれば、インストール したままの状態がいいでしょう。
set path=(/bin /usr/bin /usr/local/bin /usr/ucb /etc /usr/etc)
set path=($path /usr/local/bin/X11 /usr/local/bin/tex ~src/bin .)
つまり、ルートでしかできないような仕事以外はルートで実行しては いけません。これは自分で失敗してみないとわからないことですが、 とにかくそうゆことです。 例えば、ファイルの修正もルートでしか書き込みが許されていない ものなら、自分のところにコピーして修正して、できたらルートで 元のところにコピーし直す、というぐらいの注意が必要です。
[.rhosts]
これはルート以外でもそうですが、ここに記述してあるマシンからの リモートログインを許すということで、他のマシンで同じIDの人がいたら、 パスワードのチェックなしで、リモートログインできてしまいます。 ですから、特にルートの場合は注意が必要なわけです。 逆にNISをしている時は、ドメイン内のマシンの記述をしておく必要 があります。
Indexに戻る

[/etc]

NISをしているときは、hosts,passwdなどのファイルを修正したら、 /var/ypでmakeして、クライアントマシンに教えてあげなくてはいけない。
[aliases]
これは、メールに関連したファイルです。

Postmaster: root
MAILER-DAEMON: postmaster
#decode: "|/usr/bin/uudecode"
nobody: /dev/null
root: oku
daemon: oku

このように、root,daemonの後の名前を管理者のIDに変えておけば 良いでしょう。decodeはセキュリティの問題からコメントアウトして おくんだそうです。 これを変更したら、newaliasesを実行します。

[defaultdomain]
NISのドメインネームを書いておきます。
[ethers]
NISのグループの各マシンのEthernet adressを書いておくファイル です。
[exports]
他のマシンからのアクセス等の許可について書いています。 NFSをする場合、他のマシンと共有するディレクトリを記述します。

/usr/local -root=hogehoge:areare,access=hogehoge,areare

と書いたら、/usr/localへのhogehoge,areareからのルートのアクセス 許可と、マウントなどの使用許可を与えます。これを書き直したら、 exportfs -aを実行して下さい。

[fstab]
ディスクのパーティションとディレクトリーの対応について 記述があり、読み書きの許可等について書いてありますが、 これはインストールする時に勝手に作ってくれますので これを変更することはあまりないでしょう。
[gettytab]
端末の設定をしています。これは普通は特に変える必要はありません。 ただ、端末をつないでいる時に、通信を7ビットを8ビットで するような設定を記述するファイルです。同じディレクトリにある ttytabで記述されているgettyのエントリーに対しての記述をしています。 記述に :p8: と書いたものは8ビットを通すようになります。 また、 :lm$\sim$: の記述をかえると、ロクインの時のプロンプトが 変更できます。

:ap:lm=\r\nHere is serilab,Who?\72 :sp#9600:

プロンプトが``Here is serilab, Who''になる。

[group]
新しいユーザを登録する時は必ずこのファイルの記述を付け足して やらなければなりません。 wheelのグループを使うとsu(自分のIDから、ルートになる)できる人 を制限できます。

wheel:*:0:oku,koyama

こうすると、okuとkoyamaしか、ルートに変身する権限を持たない。

operatorはshutdownなどをできる権限を持つ人のグループです。

NISでクライアント、またはスレーブサーバのマシンは、このファイ ルの最後、$+:$の記述が必要であり、デフォルトでついてきて設定 以外書いてはいけない。そうしないと、NISのサーバーと同じエント リーを重複して持つことになってしまう。

[hostname.le0]
マシン名が書いてある。これを変えればマシンの名前が簡単に変えら れるが、勝手に変えてはいけない。

また、ゲートウェイなどにするためにセカンドイーサネットボード を買った場合にはhostname.インターフェース名というファイルを 作らなくてはいけない。例えば今現在rigelにはle1という名前の インターフェースボードがついているのでhostname.le1というファイ ルにrigelgwと書いてある。

SGI(IRIX4.05)のマシンには/etc/sys_idというファイルにマシン名が 書いてある。

[hosts]
IPアドレスと、マシン名の記述をしたもの。新しいマシンや、 イーサネットボードを買った時は、ここに記述しなくてはいけない。 ただし、NISをしているときは、そのマシンのアドレスと、localhost の記述だけをすれば良い。もちろんサーバーマシンにはすべての記述 が必要です。そのとき、syslogをとるのマシンのエントリーの最後には loghostと書いておく。mail serverにはmailhostなんて名前も書き加え ておきましょう。 hostname.leでも述べたが新しいマシンを買った時、或は名前を変更 する時には、ネームサーバーに登録することを忘れないようにしておく。
[hosts.equiv]
NISをしている時、同じドメインのマシンの記述をしておく。 /.rhostと同じで、そこに記述しているマシンからの ルートのリモートログインを許可する。プリンタサーバにはプリント を許すマシンをすべて書いておくことが必要。
[inetd.conf]
deamonのことについての記述がありますが、 ある程度の知識がないといじらない方が良いでしょう。 deamonを増やさなくてはいけないようなソフトをインストールした時に 記述を加えます。芹澤研、大山研では`phone'に関しての記述が追加 されています。

phone dgram udp wait root /usr/local/lib/phoned phoned

また、大山研ではメールの読み書きにpopperを使用しているので以下 の記述が追加されている。なおIRIX4.05では/usr/etc/inetd.confである。

pop3 stream tcp nowait root /usr/local/etc/popper popper

さらにyoubindが動いているマシン(mailserver)では以下の記述を コメントアウトしておく

#comsat dgram udp wait root /usr/etc/in.comsat in.comsat

なお、このファイルを書き換えた時はkill -HUP (process id of inetd)を行なう。

[motd]
ログインした時に出るメッセージファイルです。各ユーザへの お知らせを書いておくものです。でも、あまり長いのは好ましく ありませんね。
[netmasks]
これについては書き方は決まってます。変更があれば、電情ニュース で連絡があるはずです。ネットマスクはどこまでがネットワークアド レスでどこまでがマシンアドレスかを表すものです。

#
# Network masks database
#
# only non-standard subnet masks need to be defined here
#
# Network netmask
133.34.0.0 255.255.255.128

1995年8月現在(1995/3に行なわれたネットワークの整備により変更されました) IRIX4.05のnetmaskの変更は/etc/config/ifconfig-1.options というファイルを*作り*

netmask 0xffffff80
broadcast 133.34.28.255

としておきます。(大山研のサブネットアドレスは133.34.20.128/25だから ブロードキャストアドレスは133.34.20.255になります。)(Sunのデフォルト ブロードキャストアドレスはAll 0ですからこれを変えるには /etc/rc.localを変える必要 があります。)

[networks]
これは、国大のネットワークの分類です。これは、現在のように どんどんマシンが増えていくと、分類が多くなると思われるので 特に注意していて下さい。変更がある場合にはやはり、電情ニュースに 掲示があるはずです。

#
# Local networks
#
loopback 127.0 software-loopback-net
#
ynu-netmask 255.255.255.0
#
ynunet 133.34
#
# Faculty of Engineering networks
#
red 133.34.36 # Dep. of Naval Architechture and Ocean Eng.
orange 133.34.44 # Dep. of Civil Eng.
indigo 133.34.16 # west side of current common network
# # Dep. of Electrical and Computer Eng.
violet 133.34.28 # east side of current common network
# # Dep. of Architecture and Building Sci., Dep. of Natiral Sci.
#
lavender 133.34.17 # ele & comp, nakagawa-mori lab.
aquamarine 133.34.18 # ele & comp, arisawa lab.
carmine 133.34.19 # ele & comp, dohi-ishii lab.
spiral 133.34.20 # ele & comp, LocalTalk network
nilegreen 133.34.21 # ele & comp, kawamura lab.
jewel 133.34.22 # ele & comp, matsumoto lab.
loup 133.34.50 # ele & comp, computer room
january 133.34.51 # ele & comp, computer room
february 133.34.52 # ele & comp, computer room
march 133.34.53 # ele & comp, computer room
april 133.34.54 # ele & comp, computer room
may 133.34.55 # ele & comp, computer room
june 133.34.56 # ele & comp, computer room
july 133.34.57 # ele & comp, computer room
august 133.34.58 # ele & comp, computer room
september 133.34.59 # ele & comp, computer room
october 133.34.60 # ele & comp, computer room
iron 133.34.68 # ele & comp, tamura lab.
dungeon 133.34.69 # ele & comp, arisawa lab. multi media res. net
#
olive 133.34.30
milkyway 133.34.20.128

1995年8月現在

[passwd]
NISを行なっている場合はサーバー以外はインストールした時の 最低限の記述と 最後に ``$+::0:0:::$''の記述があれば良い。

それ以外の時は、新しいユーザを登録する時にはここに登録してやる。 順番としては、ID、パスワード(必ず記述があるようにする)、 ユーザ番号(重複がないようにする)、グループ番号、名前、 ホームディレクトリ、シェル(通常はCシェル)で区切りはコロン。 当然新しいユーザにはホームディレクトリを作っておいて、 所有権(chown)と、グループ設定(chgrp)をしてやり、 .login, .cshrc, .logoutファイルなどをコピーしておいてやる。

またこのファイルの変更を行なう時には、必ず、vipwコマンドを使う。

[printcap]
プリンタを使う時はこのファイルの設定を変えなくてはならない。 # Laser Shot over /dev/ttya
ls|Cannon Laser Shot:\
:lp=/dev/ttya:br#9600:\
:fc#0177777:xc#0177777:\
:ms=-parity,cbreak,-opost,ixon,tandem,ixany:\
:of=/usr/local/lib/LBP/nkf2of:lf=/usr/adm/lpd-errs:\
:df=/usr/local/lib/LBP/dvi2lbp:vf=/usr/local/lib/LBP/rast2lbp:\
:sd=/usr/spool/lpd:sh:

書き方は、まず、そのプリンタの名前($|$を使うことで複数の名前を 記述できる)を書き、コロンで区切って設定を書く。lprの`-P'オプシ ョンで、使うプリンタを選ぶか、環境変数の`PRINTER'にプリンタ名 を書いておく。

設定についてはUNIXマガジンの1990年の10月号を見ると良い。 どこかの研究室にかならずあるはずです。 ofの設定にはプリンタ側の漢字コードに変換するようなフイルタを 通すような設定が必要ですし、LaTeX の設定にもそれなりの 記述が設定ですので、それなりの人に聞いて設定して下さい。 プリンタ側の設定などとともに、これはかなり思考錯誤しないと うまくいかないかも知れません。

関連ファイルとして、ttytabも書き直す必要があります。 このファイルを書き換えたらrebootしてやる必要があります。

[rc, rc.boot, rc.local, rc.single]
rcは、基本的に書き買える必要はありません。ただ、ネットワーク関 係のdaemonがコメントアウトされているものがあります。これは、他 のマシンと比べて見て、必要と思ったら、コメントを外して起動する ようにして下さい。 rc.boot,rc.singileも同様です。

rc.localの場合は、デフォルトにかなり手を加えます。 基本的に後から付け加えるdaemonはこれに記述するそうです。 NIS関係のdaemonはその手の本を見るとして、基本的に付け加えるのは、 `phone'と`xdm'、サーバーマシンの場合は`jserver'と`fs'、でしょう。 それぞれ、電話、Xウインドウへのログイン、日本語変換、 Xウインドウのフォントサーバなどを管理します。 しかし、芹澤研、大山研では、`phone',`fs'の記述は必要ありません。 記述については、どこのドメインを見ても書いてあると思うので、 それらを参考にすれば問題ないでしょう。 ただし、xdmについては、rcの一番最後に記述した方がいいかも知れません。 あと、sendmailがコメントアウトしてあるかも知れません が、sendmail.cfをきちんと設定してから、コメントを外して下さい。 また逆にプリンタをつないでいないマシンでlpdを起動させる必要はないので コメントアウトしたほうが良いものもあります。 もちろん、リモートプリンタとして使う場合は別です。 (printcapにそれ相応の記述が必要です)

[rc.local追加分]
Solaris 1.1.1 の場合,ブロードキャストアドレスだけはNISで管理すること ができません。Solaris 1.1.1 を含めてSunOS 4.x では,過去のしがらみ でしょうか,all 0 がデフォルトになっています。all 0の場合は,ネット マスクの値にあわせて自動的に設定してくれますが,all 1の場合には手 で設定する必要があります。各マシンの /etc/rc.local のなかに

# set the netmask from NIS if running, or /etc/netmasks for all ether interfaces
ifconfig -a netmask + broadcast + > /dev/null

というところがありますが,これに設定を付け加えます. Ethernetインターフェースとして le0 という名前のものを一つだけ持ってい る場合は,

ifconfig le0 netmask + broadcast ブロードキャストアドレス > /dev/null
を上記ifconfig の行の*次に*加えます.(ifconfig -a ... の行を書き換えて はいけないのは ソフトウェアループバックネットワークインタフェースの設 定があるからです) le0が接続されるネットワークが133.34.30.0/25 の場合は,ブロードキャスト アドレスが 133.34.30.127 となりますから次のように /etc/rc.local を変更 します.

# set the netmask from NIS if running, or /etc/netmasks for all ether interfaces
ifconfig -a netmask + broadcast + > /dev/null
ifconfig le0 netmask + broadcast 133.34.30.127 > /dev/null

ゲートウェイマシンなどインターフェースを複数持つ場合は,インタフェース毎 に設定をします.例えば,2つのインタフェース

があるときにはつぎのようになります.

# set the netmask from NIS if running, or /etc/netmasks for all ether interfaces
ifconfig -a netmask + broadcast + > /dev/null
ifconfig le0 netmask + broadcast 133.34.30.127 > /dev/null
ifconfig le1 netmask + broadcast 133.34.20.255 > /dev/null

[sendmail.cf]
これは、メールの取り扱いについて記述したファイルで す。これは、CFなるツールがながれていますので、 これによって作成しますので、最新版をどこからかもらうかして、 つくって下さい。1995年3月現在ではCF-3.3W9です。

これらのファイルを書き変えたら、psコマンドでsendmailのdaemonを 殺して(通常はrc.localから、起動されているはず)、

#/usr/lib/sendmail -bd -q1h

を実行します。

[services]
これは、daemon関係の記述でデーモンの番地みたいなのを 書いてあります。それぞれのデーモンには、決まった番号が割り振られていま す。しかし、NISでサーバー以外のマシンはこれは特に書き変える必要は ありません。 これを書き換える場合は、インストールしてあるソフトにもよりますが、 普通は、phone, rampのdaemon用に、

phone 1167/udp
rmap-w 1434/udp

を最後に付け加えるぐらいでしょう。

[shell]
ユーザが利用できるシェルを指定するファイルで、 このファイルがないと、デフォルトでは/usr/sh,/usr/cshの2つが指 定されます。芹澤研究室、大山研究室ではこのほかに/usr/local/bin /tcshが使えます。これは各マシン毎に設定が必要です。

#
# /etc/shells
#
/bin/sh
/bin/csh
/usr/local/bin/tcsh

ユーザがシェルを変更する時は、chshまたは、yppasswd -sを使います。

[syslog.conf]
これは、エラーメッセージなどをどこへ出力するかを指定するファイルです。 全てのマシンのsyslogをとるマシンのsyslog.confの先頭部分はdefine (`LOGHOST')としそれ以外のマシンはundefine(`LOGHOST')としておきま しょう。またこのために/etc/hosts ファイルにもloghostの記述が必要です。
[ttytab]
これは、端末に接続しているものについての記述があります。

# name getty type status comments
console "/usr/etc/getty std.9600" sun on local secure
ttya "/usr/etc/getty std.9600" vt100 off local secure
ttyb "/usr/etc/getty msdos.9600" vt100 on local secure

例えば、プリンタを接続した場合は、statusのところをttyaのように、 `off local secure'と書きます。端末して使う場合は`on local secure'です。 また、端末の特性はgettyのところに書きますが、 このエントリーが(msdos.9600など)、gettytabに記述されていること が必要です。同様に、typeの記述はtermcapファイルに記述があるも のでなくてはいけません(端末ソフトの種類)。

[resolv.conf]
ネームサーバに関する設定です。自分でネームサーバを立ちあげてい なければdnj.ynu.ac.jp,center.ipc.ynu.ac.jpなどのマシンに設定し てあげて下さい。もちろん自分でネームサーバーを立ちあげていれば そのネームサーバーの名前を書いて下さい。(必ずIPアドレスで書く こと!)

;
; Server Info. for BIND
;
domain oyamalab.dnj.ynu.ac.jp
nameserver 133.34.20.129
nameserver 133.34.50.141
nameserver 133.34.50.142

SGIのマシンは/usr/etc/resolv.confです。 このファイルを書くとデフォルトでDNSを引きに行ってしまうので、 次の行をファイルの先頭に足して下さい。

hostresorder local bind


また、以下はNISのサーバのみの設定ファイルです。
[automount.map]
これは、NFSをするときに、automountされるディレクトリ群を 一行毎に記述していきます。

mail -rw,hard hogehoge:/var/spool/mail

区切りは、空白またはtabで、割当名、mount状況、実際の存在場所の 順で、記述されていきます。 また、rc.local等で次のように記述があるはずです。

/usr/etc/automount /remote automount.map

このように書くと、automountするディレクトリの情報は`automount.map'、 それは何処にmountされるかというと`/remote'にという意味です、 つまり、さきほどの記述でいうと/remote/mail(割当名)を見る と自動的にhogehoge:/var/spool/mailをそこにmountするということに なります。ですから、

hoge#cd /var/spool
hoge#ln -s /remote/mail /var/spool/mail

とかという記述をNISドメイン内のhogeというマシンで実行しておくと、 hoge:/var/spool/mailというディレクトリはhogehoge:/var/spool/mail と共有することができます。

[ypservers]
これは、スレーブサーバの一覧ファイルです。 NISのスレーブサーバを変更する時はこのファイルを修正します。 記述はautomount.mapと同様に一行に一つのマシンを記述します。 しかし、このファイルはもしかするとないかも知れません。 そんな時には、/var/yp/Makefileに以下のような記述を付け加え、 /var/ypでルートになってmakeします。

#
# @(#)make.script 1.24 88/02/08 SMI
#
DIR =/etc
all: passwd group … automount.map ypservers
ypservers.time: $(DIR)/ypservers
@awk '!/^#/ && !/^$$/ {print $$1 }' $(DIR)/ypservers | \
$(MAKEDBM) - $(YPDBDIR)/$(DOM)/ypservers;
@touch ypservers.time;
@echo "updated ypservers";
@if [ ! $(NOPUSH) ]; then $(YPPUSH) ypservers; fi
@if [ ! $(NOPUSH) ]; then echo "pushed ypservers"; fi
ypservers: ypservers.time
$(DIR)/ypservers:

ここで、このようにMakefileに新たなNISマップを追加した場合に、 スレーブサーバー側が、これを受け付けずmakeの途中で止まった状態に なる場合があります。そんな時にはypserversをすでに設定してある 場合には、スレーブサーバーの記述をコメントアウトしてmakeをかけ、 すべてのスレーブサーバーをクライアントにします。 そして、全てのスレーブサーバーで、ypservを殺す。ypbindが生きて いるのを確認して、

# cd /usr/etc/yp
# ypinit -s マスタサーバー名

を実行して、色々聞かれますが、Returnを押していきます。 そしてypservを起動する。 これで、スレーブサーバーに新しいマップがコピーされます。 そこでypserversが設定してある場合には先ほどのコメントアウトを外して、 /var/ypでmakeをかけます。

Indexに戻る

[/usr/bin,/usr/lib,/usr/ucb]

[mail]
UNIXで使う漢字コードは現在は3種類ほどありますが、メールで 使えるのは、JISのみです。そのため、外部へのメールの配送 は必ず、JISでなくてはいけません。また、OS附属のsendmail はバグが多いそうなので、入れ換えることをお勧めします。 設定は変わらないのでOS附属のsendmailについて書きます。

SunOS4.1.Xにはsendmail,sendmail.mxという2種類のバイナリがつい てきます。sendmailはNISを使って配送するもの、sendmail.mxがDNS を使って配送するものです。普通はDNSを使って配送しますので、 sendmail.mxを使用します。

本来ならばどんなコードが来るかわからないメールに対して全てnkfの フィルタを通すのはどうかと思います。将来的にはメールを送る本人が 気にしてJISで送るように心がけたいものです。

# cd /usr/ucb
# mv newaliases newaliases.org <--実は/usr/lib/sendmailへのsym. link
# ln -s /usr/lib/sendmail- newaliases
# cd /usr/lib
# mv sendmail sendmail.nis
# ln -s sendmail.mx sendmail-

というようなことをします。そして新たに、sendmailファイル を作ります。

#! /bin/sh
/usr/local/bin/nkf.jis | /usr/lib/sendmail- $*

ここで、nkf.jisは漢字コード変換ツールで、JISに変換する ものであります。さらに、ファイルの属性を

#chmod 4551 sendmail

/usr/ucb/mqueueがあるマシンは、それも/usr/lib/sendmail-に リンクしておきます。 また、外部からのメールの受信を指定の漢字コードにしたい場合は、

#cd /usr/bin
#mv mail mail-

あらたに、mailというファイルを作ってやります。

#!/bin/sh
/usr/local/bin/nkf.jis|/usr/bin/mail- $*

そして、

#chmod 4755 mail

をします。

[X]
X windowのファイル設定は/usr/localがautomountされていて、 パスがきってあれば一応使えますが、次のようにリンクを張っておく必要があ ります。

#cd /usr/bin
#ln -s /usr/local/X11R5/bin X11
#cd /usr/lib
#ln -s /usr/local/X11R5/lib/X11 .
#cd /usr/include
#ln -s /usr/local/X11R5/include/* .

また、includeファイルを一部書き換えます。すなわち、/usr/include /sys/stdtypes.hの

typedef unsigned short wchar_t;

の記述に

#ifndef X_WCHAR
typedef unsigned short wchar_t;
#endif

を付け加えます。 もいっちょ/usr/share/lib/locale/のなかの

LANGINFO/ LC_CTYPE/ LC_MONETARY/ LC_TIME/ LC_COLLATE/
LC_MESSAGES/ LC_NUMERIC/

の各ディレクトリで

#ln -s C ja_JP.ujis

なんてことします。

[/usr/share/lib]
ここには、端末などの属性などについて記述した、termcapというファイルが あります。これにきちんとした記述がない端末ではvi,lessなどがきちんと動 いてくれません。これは自分で全部書くというのはできないので、 最新のものを他の研究室からコピーしてくればいいと思います。 詳しくは、UNIX Magazine 1991年10月号 p.63
Indexに戻る

ルートの仕事

[BackUp]
ルートは定期的にバックアップをとらなければいけません。 バックアップをとる時はできればシングルユーザモードで やった方がいいです。でも私は、誰もいないような時を みはからって、やってました。要はバックアップをとっている時に ファイルの書き込みがなければ良いのです。 でも、daemonとかが、これをしている可能性があるので注意が必要です。

で、バックアップをとる必要のあるパーティションは、 /home,/usr/localです。 このうちの/usr/localについては、新しいソフトをインストールしでもしない 限り、あまり頻繁にバックアップをとる必要がありませんが、 必ず、とっておく必要があります。

/homeについてはルートの良心に任されています。毎週でも毎月でも、 頻繁にとって悪いことはありません(テープの劣化は考慮して下さい)。 逆に一年以上とか間を空けるのは死を招くでしょう。 ディスクは壊れるものです。

[パーティション単位のバックアップ]
バックアップをとるデバイス名が/dev/rst8(テープ)の時は、

#dump 0cusf 1500 /dev/rst8 /home

で、/homeのバックアップがとれます。 また、バックアップの取りたいdiskを持つマシンに、 テープ装置がない場合には、 例えばspicaのハードディスクのバックアップを取りたいけど spicaにはテープ装置がない時、 charlieにテープ装置があるとする時、 rdumpを使います。

#rdump 0cusf 1500 charlie:/dev/rst8 /usr/local

と、spicaで実行します。

また、これをリストアする時は

#cd /home
#restore rf /dev/rst8

または

#restore rf charlie:/dev/rst8

このとき、`r'オプションの変わりに、`i'オプションを使うと リストアするファイルを対話的に決められます。 ダンプした情報は/etc/dumpdatesに書いてありますから、 前いつバックアップをとったかの参考にしてください。

[ディレクトリ単位のバックアップ]
#cd /usr/local/tex
#tar cvf /dev/rst8 ./tex

これにより、/usr/local/texというディレクトリがバックアップされました。

リストアは、

#cd /usr/local/tex
#tar xvpf dev/rst8

また先ほどと同じように自分がtapeドライブを持っていない場合は バックアップは

#tar cvf - ./tex | rsh charlie dd of=/dev/rst8

リストアはリストアしたいディレクトリに移って

#rsh charlie cat /dev/rst8 | tar xvf -

です。

[Shutdown]
停電などで、マシンを止めなくてはいけないのを別として、 週に一回ぐらいは、rebootをした方がいいと思います。 それは、ときどき殺しても死なないdaemonが発生していたりするからです。 また、リブートすると/tmpの不必要なファイルを自動的に消してくれます。

NISを行なってない場合は、普通にShutdownをすればいいのですが、 NISの場合は、あらかじめ殺しておかなければいけないdaemonが あります。

NISでつながっている全てのマシンでautomount,lpdを psコマンドでプロセス番号を見て殺してから、 格が下(クライアント→スレーブサーバ→マスターサーバ) のマシンからshutdown -h nowを行ないます。 または、reboot,fastbootをルートで実行します。 もちろん、このとき他のユーザがログインしていないことと、 裏ジョブが走ってないことを確認してから、実行して下さい。 また、NFSサーバーマシンは最後にshutdownして、最初に立ち上げます。

/tmp/.get.*というファイル群は立ち上げ直しても消してくれてないか も知れませんので、気がついたら、消しておく必要があるでしょう。 もちろん誰かが仕事をしていない時にです。エディタ一つ起動しても /tmpに一時ファイルを作ってますので、それも間違って消してしまっては まずいでしょうから...

[新しいユーザの登録]
新しいユーザの登録はルートの仕事ですから、ルートになって行ないます。 NISを行なっている場合にはネットワーク上の設定が必要となり、 注意が必要です。まず、パスワードファイルへの登録を行ないます。 NISを行なっている場合は、マスターサーバーのマシンで行ないます。

#cd /etc
#vipw

ここで、vipwはパスワードファイルをエディットするための専用の 命令です。環境変数EDITORにエディタの名前を書いておくと そのエディタが立ち上がります。これによりパスワードファイルへ の設定が終了したら、NISではネットワーク上での設定を行ないます。 やはり、マスターサーバー上で、

#cd /var/yp
#make

これにより、ユーザの登録は終了しますが、ユーザのディレクトリを 作ってやらなくてはいけません。ユーザの集まっているディレクトリ に移り、

#mkdir ユーザディレクトリ名

さらに、最低限のファイルをコピーしてそのユーザの所有権を 与えてやります。いま、Skelというユーザが標準的なファイルを持って いるとすると、

#cd ユーザディレクトリ名
#cp ~Skel/.login
#cp ~Skel/.cshrc
#cp ~Skel/.logout
#cd ..
#chown -R ユーザ名 ユーザディレクトリ名
#chgrp -R グループ名 ユーザディレクトリ名

以上のように、所有権と、グループを設定してやります。 ただし、-Rオプションはディレクトリに対して実行する時に使われます。

新しいソフトのインストール
ルートは、新しいソフトのインストールをしなくてはなりません。 ニュースや人づてに便利なソフトをもらったらインストールをします。 UNIXの場合は実行ファイルの形でソフトをもらうのは稀で、 たいがいは、ソースの形でもらってきます。 これを使えるようにmakeします。 そして、それを適当なディレクトリにインストールします。

さて、ここで注意として、新しいソフトがうまく動くかどうかのテストは、 必ずルート以外の権限で行なって下さい。 ルートだと権限がつよすぎて取り返しのつかないことをしてしまう可能性があ ります。 ので、makeは、自分のIDで行なうか、それ専用のユーザ(例えば、src,adm) で行なって下さい。

さて、たいがいの場合ソースにはREADME,INSTALLなどのドキュメントが 添加されていますので、これを読んでその通りに作業を行なえばインス トールができます。ここでは、それがない場合の一般的なやり方を次の 3つの場合に分けて説明します。

Imakefileがあるとき
ソースの中に、Imakefileというファイルがあるときには、 インストールは非常に簡単です。 大抵、このImakefileの中の{\sf BINDIR}などの記述を 書き換えて、

xmkmf→make clean→make→make install(→make install.man)

と行なえば、簡単にインストールができます。 ここで、最後のmake installは、ルートになって実行します。 また、xmkmfはImakefileから、Makefileを作成するために、 imakeを呼び出すためのシェルスクリプトです。 ここで、インストールディレクトリは普通、 TeX 関係が/usr/local/bin/tex、X関係が/usr/local/bin/X11、 その他は/usr/local/binです。

Makefile(makefile)があるとき
Makefileがある場合は、このファイルを書き換えて (インストールディレクトリや、オプション、定義など)、 makeを実行します。

このMakefileの中には、cleanやinstallの項が親切に ついている場合があります。 その場合は、make installとかやるだけで、 適当なディレクトリにインストールされます。 それがない時は自分でコピーします。

この場合も最後のインストールやコピーはルートになって行ないます。

*.c(または*.h)ファイルのみ
通常のコンパイルを行ない、 cc -o 実行コマンド名 ソースファイル名(*.c) それを適当なディレクトリにコピーする。 cp 実行コマンド名 ディレクトリ名
実際に幾つかのソフトをインストールしようとすると、 幾つか失敗したり、うまく行かないことが多々あります。 しかし、我々の手に渡ってくるようなソフトは、 大抵、いろんな人の手が加わっていて動くようになっているはずです。 動かなかったら、どこが設定が悪いのだと思って、 もう一度怪しいところをチェックしてみて下さい。 気がついたところあげると、
[rmapの変更方法]
jnames(日本語表示データベース)を変更、追加する時は rootからsrcになる。(su src)
~src/misc/rmap/Jnames/jnameを変更
gawk -f jncnv.a jnames >! rmap.jnames

rmapの見た目を変更するにはそのディレクトリの中の rmapconfをいじって下さい。

Indexに戻る

知っておくべきこと

[xdm]
rc等で、xdmを起動させておくと、WSが立ち上がった時に、 Xウインドウへのログインプロンプトが出ます。 これを終了させたいとき、例えばopenwindowを使いたい時などは、

Control+G

で通常のプロンプト状態に戻ります。ただし、そのままでは何も見 えないと思います。Returnを押して下さい。画面下から、プロンプトが 現れます。

また、xdmのプロンプトを再表示したい時は、xというユーザ名でコン ソールからログインして下さい。パスワードは聞かれません。

[プロンプトが戻ってこない時]
xdmはたまに誤動作します。 つまり、ログアウトしてもプロンプトが出てこない。 こんなときには、

#ps ax|grep xdm

と、入力してxdmのプロセス番号を確認して下さい。 つまり、次のような表示がされるはずですから、

154 ? IW 0:03 /usr/local/X11R5/bin/xdm -config /usr/local/X...
14056 ? IW 0:00 -:0 (xdm)
14064 p2 S 0:00 grep xdm

xdmを起動しているプロセス番号をみて(この場合154です)、 別のマシンや端末から、

#kill -HUP 154

とすれば、直るはずです。 また、/var/adm/xdm-pidというファイルにこの番号が書いてありますので、 それを見ても良いでしょう。 同じく/var/adm/xdm-errorsにxdmに関するログが出ていますから、 何かあった時にはこれを見て下さい。

[xdmの画面が壊れてしまった時]
システムのメッセージなどが画面に出て、xdmの画面が壊れてしまう 時があります。こんな時には、Control+Lまたは、Control+Cで再描写 されます。
[xdmをカスタマイズしたい時]
xdmの設定ファイルは、/usr/local/lib/X11/xdmにあります。 Xresourcesが見ためを変えるファイルですのでこれをsrcになって いじって下さい。
[システムのログ]
システムからのメッセージを伝えるファイルをルートの人は知っていなくては いけません。 それは、/varにあります。 良く見るべきファイルは/var/adm/messagesでしょう。 これにはマシンに何か問題があった時などのシステムからのメッセージが 書いてあります。むかし、芹澤研のマシンのハードディスクが 壊れた時にも壊れる前にこのファイルにハードウエアエラーのメッセージが でてました... まー、こういうメッセージはなるべく出てない方がいいのですが、 ルートの人はたまにはこのファイルを見ておかしなことが 書いてないか注意してみていて下さい。なお、このファイルは一定の時間が たつととムーブされてmessages.数字というファイル名になります。 数字が小さい方が新しいファイルです。

この他に、/var/adm/lpd-errsはプリンターのエラーメッセージが 書き込まれるファイル、/var/log/authlog, /var/log/syslogなどの システムからのメッセージがありますので時おりチェックする必要 があります。

[手に負えない時]
WSは非常に稀ですが、全く手が付けられない状態に 陥ることがあります。 つまり、動いているのに全くログインできない、 或は、著しく応答時間が長い等です。 ハングしてしまった原因がわかるような人は、 今これを読んでないはずですから、 ここでは、原因がわからないけど何とかしたいという、 一般的なことを書いておきます。

こんな時は、とりあえず何とかしてルートが ログインして、

などで直る場合が多いです。 こういう場合は、ルートでログインするのも大変ですが、 なるべく、ソフト的に解決して下さい。
[もう終りです]
本当にどうしょうもない時、何をやっても駄目な時、 最後の手段が残されています。 しかし、これは滅多にというかやってはいけません。 すなわち、.....ってこれは恐いことなので知りたい方はwww-admin@ oyamalab.dnj.ynu.ac.jpまでメール下さい。

世の中には、知らない方がいいこと知ってはいけないことがあります。 これもその一つです。一般のユーザは知らなくていいコマンドであります。 なぜなら、これによって、全然関係ない人でもルートになれてしまうのです。 その具体的な方法は、ここでは書きませんがそれほど恐ろしい意味も含んだ キー操作なのです。 さて、ここでこのキーを押したらそれで終りではありません。 それによって、不等号のプロンプト(>)、または、OKという プロンプトが出ているはずです。 もし、不等号のプロンプトが出ている時は、nを入力します。

>n

そうすると、OKというプロンプトに変わるはずです。 ここで、次のように入力します。

OK sync

こうすると、ハングした時の情報を整理して、再立ち上げをしてくれます。

[LaTeX]
まず、TeX には電情内では二種類存在します。 NTT版,ASCII版の二つです。いまから、説明するのはASCII版の方です。

一般の人は、知らなくてもいいことですが、TeX は一つの実行ファイルを リンクをすることで複数の命令を実行しています。 `ls -l'を/usr/local/bin/texでやって下さい。 jlatex,jslitex,latex,texのすべてのファイルがjtexファイルに シンボリックリンクしてあることがわかると思います。 で、実はこのjtexはシェルスクリプトなのです。

結果からいいますと、virtexというファイルがあり、これに添加するファイル を変えることによって複数のコマンドを実行しているわけです。 この添加するファイル(拡張子 `.fmt')はフォーマットファイルと呼ばれ、 環境変数`TEXFORMATS'で、それが存在するディレクトリを指定することが できます。

同様に、jtex.poolというファイルが、存在するディレクトリは、 `TEXPOOL'、fontdescというfontの情報が入ったファイルを示すのが `TEXFONTS'、スタイルファイル(拡張子 .sty)などのあるファイルを示すのが `TEXINPUTS'、\BibTeX 用のbibfileのあるところは`BIBINPUTS'に、 それぞれ`.login'ファイルに設定しておきます。 しかし、普通はデフォルトで設定した値そのままで使っているので `TEXINPUTS',`BIBINPUTS'以外は特に設定する必要はないと思います。 おいてある場所を変えた時に設定すればいいでしょう。

[マクロファイルの追加]
新しく、LaTeX のマクロファイルが電情ニュースなどで、 手にはいった時には、~src/TeX/contribの下にインストールして下さい。 そして、/usr/local/lib/tex/macrosにシンボリックリンクを はれば、使えます。YnuMarkのようにフォントを持っている場合には、 /usr/local/lib/tex/fontsのしたのtfm,pkそれぞれのディレクトリに *.tfm, *.*pkファイルのリンクを張っておく必要があります。
[プリンタドライバ]
TeX の印刷にlips3dviというのをうちでは使っていますが、 これは、フォントの一部をプリンタにダウンロードしています。 ところが、これが曲者でWSの方ではこれをファイルとして残してあるのですが、 プリンタの方では電源を切ると忘れてしまいます。 (詳しくはlips3dviのマニュアルを見て下さい) そうすると、次にプリンタの電源を入れて印刷をしたとき、 そのファイルに記述されているフォントは送られないので そのフォントを使っていると、文書がおかしくなります。 そのため、このファイルを定期的に削除してやらなければなりません。 これを行なうのに便利なものとして、 crontab(使い方はman crontab)というコマンドがあります。 これをsrcの権限で登録しておきます。(su srcでsrcに変身して)

src%crontab -e

とすると、emacsまたは、viが立ち上がりますので、 次のような記述を書き加えます。

0 4 * * * /usr/bin/rm -f /var/tmp/.fontinfo

こうすると、毎日朝の4時にフォントのダウンロード情報ファイルを 削除します。

(注)今現在(1995.9)はTeXの印刷にはdvi2psを使用してdviファイルを PostScriptファイルに変換しています。画面に表示するにはghostview を通じてghostscriptを、PostScriptプリンタにはそのまま、lips3プ リンタにはlips3のドライバを組み込んだghostscriptを使用しています。

[METAFONT]
TeX の中には、フォントを作成するソフトがあります。 これはまるでグラフィックを書くように、 プログラミングをするものなのですが、 利点として、一度作るとどんな大きさにも拡張できるということです。 これも実行ファイルの形式はjtexと同じで、 全部でcmmf,mf,logomfと3つのコマンドがありますが、 実際にあるのはmfだけで他はすべてmfへのシンボリックリンクとなっています。 そして、入力ファイルは拡張子.mfです。

さて、METAFONTに関する命令は他に次のようなものがあります。

mfを使ってフォントを作るにはmftodviでプレビアーを見ながら、 mfファイルを修正し、最後に対象とするハードに合わせた大きさの フォントを作ります。 通常は、次のような3つのハードを対象とします。 以上のうちの例えば、bitgraph用のフォントを作るとすると、

>mf ''\mode:=bitgraph;'' ''mag:=magstep(0);'' input etc.mf

と記述します。ここで、magstep内の数字は基準の大きさから何倍の大きさ を作るかを指定します。(すなわち、TeX でいうところのlarge,hugeのフォ ントのことです。)また、inputの後は入力ファイル名です。

このようにすると、etc.118gf, etc.tfmファイルができますので、 さらに、gfファイルをpkフォントに直し、フォントディレクトリに インストールする。 METAFONTの使い方は、METAFONT bookを見て下さい。

このインストールしたフォントを使えるようにするには、 定義のファイルが必要ですが、この書き方は、 マクロファイルのディレクトリにあるetclogo.texファイルを 参考にして下さい。

また、新しいフォントをインストールする時には /usr/local/src/TeX/contribに新たなディレクトリを作成し、 そこにインストールを行ない、pk,tfm,定義の各ファイルを それぞれ必要とされるディレクトリにシンボリックリンクを 張るようにしたほうが、TeX のバージョンアップをした時などに 便利です。

Indexに戻る
Yuji Harada (yujih@oyamalab.dnj.ynu.ac.jp)