linux 右往左往


仕事でRedHat7.2Jを触ることになりました。 良く判んないので、困ってます。
最近は7.2以降9までリリースされてサポートは終了し、Fedoraになっちゃってます。ううう。

それでもまぁ仕事なので頑張ってるわけですが、 いかんせん年のせいか物忘れがひどくて、
覚えたつもりでも「あれってどうやるんだっけ」連発しちゃうお年頃。
どうしようもないんでメモついでに作っとこうと思い立ったわけなのです。

そんなこんなで右往左往しながら何とかやって行きます。
もし役にたったと言う奇特な人がいたらこれ幸いです。
ちなみに作業したときのバージョンで書かれていますので、必要に応じて読み変えてね。

FreeBSD は頼みます。>Y氏、I嬢
Vine は任せます。>O嬢
っていうか誰かアクセスしに来るのか?ここ。


2003/10/14 ネタ募集

なんとこのページが一番アクセスが多いことが判明。
ビックリしています。漢字で書くと吃驚。
これも google 様のお陰?しかし役に立ってるんでしょうか?
開けてみてがっかりだったりする人もいるかもしれませんね。

ということで、ネタを募集してみることにします。
こんなことって出来ないの?とかあったら、BBSに書いてみて下さい。
知っていることや、調べてもし解ったことがあれば追加することにします。
書いていただいても無駄に終る可能性も多々ありますが・・・。

仕方ないからネタを書いてやろう
感想等もいただければ幸いです。

目次

OnScripter でサウンドノベルを
ssh のパスワード入力を省略したい
vncでお手軽X端末
Apacheのバージョン情報を隠す
yumでいつでもおニュー
postfix で拡張メールアドレス
Apacheでバーチャルホスト
Gnome2で日本語入力出来なくなる
linuxでwindowsのアイコンを作るには
CPU負荷とメモリ使用状況を調べたい
受信メールを自動処理したい
rsync でバックアップ
ドメイン名の省略
メールを転送する
バーチャルドメインを作る
やっぱゲームしなきゃね
sendmail送信時、キューに入れてから送る
postfixを入れてみる
wu-ftpと専用ユーザー
sendmailでメールサーバー
PHP4 インストールするぞ
開いてるポートの調べ方
ディスクとディレクトリの空き容量は?
RedHatNetwork でいつでもおニュー(嘘)
コンピュータ名を変えたいんだよう
起動時に X を使う・使わない
フリーの sybase をサービスとして登録したい
samba を使ってみよう:Win9x ワークグループファイルサーバー


OnScripter でサウンドノベルを

OnScripter は NScripter(win) 互換のゲーム実行エンジンです。
以前から存在は知っていたんですが、ようやく今回手を出しました。
ドキュメントをちゃんと読めばインストールできるのですが、
覚え書きとネタのために(笑)
例によってプラットフォームはRedHat9です。

1.事前準備

各種必要なモジュールを準備インストールしておきます。
なるべく rpm を使用して楽に行きましょう。
rpmfind.net あたりがお薦めです。

・OggVorbis (RH9のrpm)
・SDL_ttf, SDL_ttf-devel
・smpeg, smpeg-devel
・div4linux (rpmを見つけられなかったのでtar玉)
・avifile, avifile-devel, avifile-utils
(utilsは要らなかったかも? div4linux を tar玉で入れたため、依存エラー発生。rpm -ihv --nodeps で強制インストール)
・mikafont
(必須ではないけど一応。rpm は依存が解決できそうでなかったので tar玉で)

実はこれらのインストールが結構面倒でした。最初は全部 tar玉でやろうとしてたんで(泣)

2.OnScripterのインストール

OnScripterのページから頂いてきました。
別でrpmもあったんですが、最新版ではなかったので tar玉をインストール。
$ tar xvfz onscripter-beta20050507.tar.gz
$ cd onscripter-beta
$ make -f Makefile.Linux
実行ファイル onscripter が出来ていればOK。
エラーが出るときは事前準備したファイルの何かがマズいはず。

3.動作確認

"ひぐらしのく頃に(20040813ver)"を入れてみました。
真の目的はこれだったりするんですが。

ホームディレクトリ下に "higurashi" ディレクトリを作成しインストールすることします。
CD-ROM にインストーラの参照する filelist0.txt があるので、
その内容に従ってファイルをコピーします。
$ mount /mnt/cdrom
$ mkdir ~/higurashi
$ cd ~/higurashi
$ mkdir WAV
$ mkdir WAV/LP
$ mkdir WAV/minigame
$ cp /mnt/cdrom/fullsrc/* .
$ cp /mnt/cdrom/se/* ./WAV/
$ cp /mnt/cdrom/WAV/LP/* ./WAV/LP/
$ cp /mnt/cdrom/WAV/MINIGAME/* ./WAV/minigame/

OnScripter 本体を同じディレクトリに置きます。
コピーでなくてシンボリックリンクでOK。
$ ln -s ~/onscripter-beta/onscripter ~/higurashi/

default.ttf が必要なので、同じディレクトリに mikafont を置きます。
これまたシンボリックリンクでOK。
mikafont でなく、kochi-gothic.ttf などでも動くようです(起動は確認済)。
$ ln -s /usr/share/fonts/ja/TrueType/mikafont.ttf ~/higurashi/default.ttf

実行してみます。
$ ./onscripter
オプションで --enable-wheeldown-advance とか --fullscreen もいいかもです。
証拠写真 1 2

4.最後に

最後までプレイしてません(でも時間の問題のような)が、
興味のある人はやってみるといいのです。
(右クリックからのセーブもちゃんと動作しています)
ちょっと事前準備がめんどくさいですが、ファイト、お〜、なのです。
これで月姫とか銀色とか色々動くはずですねぇ。
ふっふっふっふっふ。

目次へ

ssh のパスワード入力を省略したい

ssh でリモートログインする際に、毎度パスワードを入力していませんか?
俺様は入力しない方が怖いので気にならないんですが、

rsync でバックアップするのに毎回パスワード入力が嫌だ
・普通にログインするのにパスワード入力するのが煩わしくて勘弁してくれ

ってな事もあったりするわけですよね。きっと。
そんな時はRSA認証を上手に使いましょう。

何か難しい言葉ですが、実は俺様も詳しくは知りません。
乱暴に言うと暗号化して認証してくれるので安心なわけ。
ある意味ではパスワードをテキスト入力するより安心かも。

やり方としてはクライアント側で RSA認証鍵を作成して、
んでそのうちの公開鍵をリモートサーバーに登録するだけ。
簡単ですね(Y/y)?

では実際にやってみましょう。

1.クライアント側でRSA認証鍵を作成

# ssh-keygen -t rsa
こんだけ。
色々聞かれますが全て Enter をそのまま押します。

パスフレーズを入れると、パスワードは省略・パスフレーズは要求ありという
そこはかとなく訳わかんないことになりますのでご注意を。(俺様は嵌まりました)

で、 ~/.ssh/ 以下に id_rsa, id_rsa.pub というファイルが出来ています。
このうち、id_rsa.pub が公開鍵です。
これをリモートサーバーに持って行くことになります。
ネットワーク経由でも可能ですが、出来ればフロッピーなどのほうが安全です。

2.リモートサーバーに公開鍵を登録

リモートサーバー側にクライアントで使用したユーザーと同じユーザーで ログインして設定します。
ホームディレクトリ直下に .ssh ディレクトリがなければ作成しておきましょう。
# mkdir ~/.ssh/
# chmod 600 ~/.ssh/

以下のようにします。
# cd ~/.ssh/
# cp XXXXX/id_rsa.pub >> authorized_keys
# chmod 600 authorized_keys --> 初回のみ
cp コマンドで ~/.ssh/authorized_keys のファイル末尾に追加しています。

複数のクライアントを登録する場合も、このファイルに公開鍵を追加するだけです。

ちなみに windows の TTSSH でもこの手法を適用することが出来ます。
windows クライアントのRSA認証キーを作成するには、
PortForwarderが便利かも。

目次へ

vncでお手軽X端末

vnc って何?な人のために。
正式には RealVNC だそうです。
リモートPCからサーバーのデスクトップを使っちゃおうと言うもの。
何とWindowsからも使えます。しかもフリー
X端末をお手軽に使いたい人にはバッチリです。
Windows側をサーバーにすることもできるようですが、
ここのコンテンツの主旨とずれるのでパス。


今回使用した linux は RedHat9 です。

まずモジュールを取ってきましょう。
RealVNCから、Installable packages を取ってきます。
もちろん Linux(x86) 用。
今回は vnc-4.0-x86_linux.tar.gz を頂きました。

1.インストール

root で展開してインストールします。
# tar xvzf vnc-4.0-x86_linux.tar.gz
# cd xvzf vnc-4.0-x86_linux
# ./vncinstall /usr/local/bin
# mkdir -p /usr/local/vnc/classes
# cp java/* /usr/local/vnc/classes

以上。スゴイ簡単。

2.サーバーを起動してみる

# vncserver

初回起動時は、パスワードを聞かれます。(確認を含めて2回)
適当なパスワードを決めて入力すると、

New 'inupc:1 (root)' desktop is inupc:1

などと表示されます。
(この例は inupc と言うマシンで実行した結果です)
この時の :1 は変わることがありますので覚えておきましょう。
といっても ps -ef とかで見れば解りますけどね。

3.ビューア(クライアント)を起動してみる

X端末エミュレータを起動するようなものです。
# vncviewer

そうするとダイアログが表示されますので、
VNC Server: には、先ほどサーバー起動時に表示された「PC名:数字」を入力し、
OKをクリックします。
Password: には設定したパスワードを入れ、Enterを押します。
見事に twm の画面が表示されていれば OK です。

4.サーバーを終了させる

確認が済んだら、root で起動しているはずなので停めておきます。
# vncserver -kill :1

起動時に表示された数字部分をちゃんと入れましょう。
あとは通常ユーザーに戻って同様にサーバーを起動します。

5.Windowsから接続する

ここまでくれば、あとはWindowsから繋げるだけです。
別のLinuxから接続しても勿論かまわないわけですけど。

Linuxの時と同様に、RealVNCから、Installable packages を取ってきます。
これも解凍するだけです。
今回は vnc-4.0-x86_win32_viewer.zip を頂きましたが、
日本語ローカライズ版もVectorにあるようです。
起動後は「3.ビューア(クライアント)を起動してみる」と同じです。

これで X11 版 JNetHack が Windows 上でバッチリ動きますね!

6.twm じゃなくて Gnome にしたい

アナタ、ワガママですか? 実はワタシはワガママです。
ローカルログインすると Gnome なのに、なんでリモートだと twm なのぉ?って人はぜひ。
twm も軽くていいんですけどね。

それでは RedHat9 で確認した以下の方法を用いてみて下さい。
$ cd
$ cp /etc/X11/xinit/Xclients .xinitrc
$ cd .vnc
$ mv xstartup xstartup.org
$ ln -s ~/.xinitrc xstartup
要は /$HOME/.vnc/xstartup のスクリプトで X が開始できれば良いらしいです。

何故かこのままだと日本語が入力できないので、
~/.vnc/xstartup を弄ります。
$ vi xstartup

で、2行目以降のコメント終了後辺りに
export XMODIFIERS="@im=kinput2"
kinput2 -canna -cannaserver localhost &

を入れてみて下さい。
canna でなく、Wnn を使ってる人は別途調べてください。ゴメンネ。

目次へ

Apacheのバージョン情報を隠す

存在しないページにアクセスしたときなどに、自動生成されるエラーページがありますよね。

通常なにも設定しないと、

Not Found


The requested URL notfound.html was not found on this server.


Apache/X.X Server at www.domain.tlb Port XX
とか表示されるわけです。

最後の行にバージョン情報・ポート番号などが表示されています。
これでどのバージョンが動いているか解ってしまうので、
バージョン依存アタック等のネタになる可能性があります。

でこれを表示したくない場合は、httpd.confを
#ServerSignature On         # コメントアウト
ServerSignature Off         # 追加
ServerTokens ProductOnly    # 追加
としてやれば、

Not Found


The requested URL notfound.html was not found on this server.

となるわけです。

パッチ当て等の対策は別途必要です。
情報を非表示にするだけなので、あくまで気休めですが、
やらないよりはマシってとこでしょうか。

目次へ

yum でいつでもおニュー

旧来の RedHat9 までのバージョンは RedHat社としてサポートが終了しています。
RedHat Enterprise (商用版)のみのサポートです。
もちろん Fedora Core X もサポートしていません。
したがって、以前書いた「RedHatNetwork でいつでもおニュー(嘘)」は
現時点ではすでに意味が無くなってるってぇ次第です。

「ああああ困ったよう」とお嘆きのあなた(俺様含む)のために、
The Fedora Legacy Project(英語)と言うサイトがあります。
このサイト内の Documentation 内に、
How to using (yum/apt) on Red Hat Linux X
ってのがあって、これを読めばバッチリです。
yum または apt と言うツールを使えば up2date と同様(以上?)の機能が使える模様。
(yum で直接パッケージをインストールできるようです)

ところで、apt は Debian(俺様は触ったこと無いですが)でおなじみですね。
でも、yum って何でしょう? ウマー(゚Д゚)?
調べてみたところ Yellowdog Updater Modified の略で、
YellowDogLinux という PowerPC 用の Linux で登場したそうです。
ちなみにベースは RedHat8 とのこと。

以上、リンク先を見てもらって終了。




ではつまらないので、記録を残すことにします。

ところが俺様困ったことに英語が良く解りません。
とりあえずコマンドが書いてある通りにやってみりゃ何とかなるんでないの?
ということで、以下の内容は、ほぼ The Fedora Legacy Project の内容のコピーです。

yum / apt のいずれでも良いようですが、
ここはひとつ Fedora Core 1 から採用された yum で行くことにします。

1.RedHat7.2の場合

1.1.パッケージ群のインストール

rootでパッケージが入っているか、そのバージョンがどうかを調べます。
# rpm -q gnupg python rpm rpm-python

rpm を先ず最初にチェック。 4.0.4 以降でなければ
# rpm -Uvh http://download.fedoralegacy.org/redhat/7.2/updates/i386/rpm-4.0.4-7x.i386.rpm
他のモジュールも同様に。
# rpm -ivh http://download.fedoralegacy.org/redhat/7.2/updates/i386/gnupg-1.0.7-13.i386.rpm
# rpm -ivh http://download.fedoralegacy.org/redhat/7.2/updates/i386/python-1.5.2-43.72.i386.rpm
# rpm -ivh http://download.fedoralegacy.org/redhat/7.2/updates/i386/rpm-python-4.0.4-7x.i386.rpm
で、yum 本体のインストール。
# rpm -ivh http://download.fedoralegacy.org/redhat/7.3/legacy-utils/i386/yum-1.0.3-6.0.7.x.legacy.noarch.rpm

1.2.yumの設定

更新したくないパッケージがある場合は、
[main] セクション内に exclude=XXX* YYY* ZZZ* と書けば良い。
[main]
  :
  :
exclude=kernel* apache* php*

こんな感じ。

1.3.GPGキーの追加

# gpg --import /usr/share/doc/yum-1.0.3/*GPG-KEY

1.4.起動してみる

# yum update

1.5.毎日自動で更新させるには

# chkconfig --add yum
# service yum start

とすればいいんだけど、ちょっと気持ち悪いのでやってません。

2.RedHat9の場合

fedoralegacy.org には、
まだ yum 2.x は完成してないので英語版を入れるがヨロシ。
とあって(2004/07/23現在)ちょっとビビリましたが、
手順どおり進めればいいみたいです。

2.1.gnupg アップデート

# rpm -Uvh http://download.fedoralegacy.org/redhat/9/updates/i386/gnupg-1.2.1-9.i386.rpm

2.2.yum インストール

# rpm -ivh http://download.fedora.us/fedora/redhat/9/i386/RPMS.stable/yum-2.0.3-0.fdr.1.rh90.noarch.rpm

2.3 yum の設定

/etc/yum.conf を弄る。と言うか以下のように差し替えろとのこと。ふむふむ。
# See the yum.conf(5) man page for information the syntax of this file,
# including failover setup.

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
exclude=kernel*

[base]
name=Red Hat Linux $releasever - $basearch - Base
baseurl=http://download.fedora.us/fedora/redhat/$releasever/$basearch/yum/os/
gpgcheck=1

[updates]
name=Red Hat Linux $releasever - $basearch - updates
baseurl=http://download.fedora.us/fedora/redhat/$releasever/$basearch/yum/updates/
gpgcheck=1

ちなみに
exclude=kernel* apache* php*

にしておきました。RH72と同じ。

2.4.GPGキーの追加

# rpm --import http://www.fedoralegacy.org/FEDORA-LEGACY-GPG-KEY

2.5.起動してみる

# yum update

2.6.毎日自動で更新させるには

# chkconfig --add yum
# service yum start

とすればいい。RedHat7.2と同じ。でもやっぱり、気持ち悪いのでやってません。

3.ミラーサイトの使用

ミラーサイト一覧で、国内ミラーサイトを調べておいて、
で、/etc/yum.conf 内の baseurl= に反映すると良いはずなんだけど、
とりあえず本家のままにしておいた。そんなに頻繁に動かさないしね。

4.メーリングリストへの参加

fedora-legacy-announceメーリングリストに参加しておくと、
変更が起こったときにアナウンスしてくれます。但し英語。
まぁメールが来たら yum 実行すればいいんでしょって位でいいと思うので、
参加しておきましょ。
なんか人手が足りないのでぜひ助けて下さいみたいなことが、
書いてあったように思うけど、英語が解る人ヨロシクです。すまん。

これで up2date 出来なくて困ってる人(俺様含む)も安心ですね。

目次へ

postfix で拡張メールアドレス

拡張メールアドレスがどうしても使いたくなったんですね。
でも、sendmail ではどうも思ったように行かないんで、
postfix に再び光が。
sendmail で UserUnknown をうまく処理する方法知ってる人がいたらメール下さい。
別に sendmail にこだわるわけじゃないんですけどね。

ちなみに拡張アドレスってのは、
inuinu@nekoneko.com ってアカウントがあるとして、
inuinu+automobile@nekoneko.com とか、
inuinu+heavymetal@nekoneko.com とかへのメールも、
自動的に受け入れしてくれる仕組みです。
受信した後の To: ヘッダにも、+oyajigamerとか付いてるままなので、
メーラーでも振り分けがバッチリ出来ます。便利。

inuinu2+kusowota@nekoneko.com に対しては、
UserUnknownにちゃんとなります。(inuinu2@nekoneko.com のアカウントがない場合)

ただしこれを設定すると、存在する全アカウントに対して
有効になっちゃうみたいなんですが、今回の要件からすればまぁ良しとしましょう。

全般的な設定は前回のpostfixを入れてみると同じ。
唯一違う点は以下の通り。

main.cf の
recepient_delimiter = +
を有効にするだけ。
なんちゅう簡単な。

ここでちょいと注意。
このデリミタに -(ハイフン) も指定できるんですが、
inu-inu@nekoneko.com と言うメールが来ると、
inu@nekoneko.com に送っちゃうんで、
デリミタには -(ハイフン) は使わない方が無難かと思います。
メールアドレスにハイフン使う人多いでしょ?

ちなみに、今回は RedHat7.2 ではなく、
Redhat9(postfix1.1) と FedoraCore1(postfix2.0) で動作検証しました。
おかげで、rpm が使えたので更に簡単に済みました。はーラクチン。

目次へ

Apacheでバーチャルホスト

アドレスベースとネームベースがありますが、ここではIPを1つで済ませるため、
ネームベースで作業することにします。

で、バーチャルホストって何?って人のために。
1つのwebサーバーで、いくつものサイトを動かすための仕組みです。
え?「そんなものディレクトリ分ければいいじゃん」って?
まぁそうなんですが、別々のドメイン名にしたいときとかに。

こんな例を考えてみましょう。
いずれも標準のポート80を使うものとして。
  ホスト1 ホスト2
ホスト名 www.inuinu.com www.nekoneko.com
(実体は www.inuinu.com)
ドキュメントルート /var/www/html/inuinu/ /var/www/html/nekoneko/
アクセスログ /var/log/httpd/inuinu_log /var/log/httpd/nekoneko_log

以下のように httpd.conf に書きましょう。
NameVirtualHost *

<VirtualHost *>
	ServerName	www.inuinu.com
	DocumentRoot	/var/www/html/html/inuinu/
	CustomLog	/var/log/httpd/inuinu_log
</VirtualHost>

<VirtualHost *>
	ServerName	www.nekoneko.com
	DocumentRoot	/var/www/html/html/nekoneko/
	CustomLog	/var/log/httpd/nekoneko_log
</VirtualHost>

あとはDNSサーバーの設定で、www.nekoneko.com を www.inuinu.com に向ければOK。
メールサーバーも必要に応じてバーチャル化すればバッチリです。

上記の例では ServerAdmin(web管理者のメールアドレス)は指定してないので、
それぞれにちゃんと指定しておくべきかも。
また、アクセスログも別々にしているので、
webalizerやlogrotateなどもちゃんと設定した方がいいでしょう。

また、ドキュメントルートは別々のディレクトリを指定していますが、
同じ所を指すシンボリックリンクなんかだと色々おもしろかったりしますね?(Y/y)

目次へ

Gnome2で日本語入力出来なくなる


Gnome2(RedHat9) を使ってて、 mozilla とか GnomeTerminal で、
なぜか日本語入力が出来なくなるなる事ってないですか?
ktermは大丈夫なのにーっていう。

そんな時は /usr/X11R6/lib/X11/app-defaults/Kinput2 を編集します。
以下の内容を追加してみて下さい。

*SeparateConversion.input: false
*selectionShell.input: false
*auxShell.input: false

目次へ

linuxでwindowsのアイコンを作るには


linux 上で動作する、windows のアイコンエディタみたいなものは、
今の時点では無さそうでした。当たり前かも知れませんが。

俺様は linux で、このページをゴリゴリ書いてるんですが、
アイコンだけ windows で作るのもなんかシャクなので、
ちょっと調べてみました。
結果として、取りあえず出来るって程度です。

しかし mozilla とかだと .png でもいいのに、
どうして IE というか MS は .ico にこだわるんだろ。

成果はトップページを netscape/mozilla でアクセスするか、
IE でブックマークしなおしてみて下さい。気がつくかな?
ネタ提供:みさみさ様。いつもありがたや。

手順は以下のとおり。

1.Netpbm をインストール

これはアイコンへの変換以外にも各種フォーマットへの変換ができるツールです。
ここからダウンロードして来ましょう。
今回落して来たのは、最新版の netpbm-10.19.tgz でした。
以下のようにインストールします。
tar xvfz netpbm-10.19.tgz
cd netpbm-10.19
./configure -- いろいろ聞かれるが基本的にデフォルトで。
make
su -- root のパスワードが必要
make package

2.元画像を pnm 形式で作る

使用するツールは GIMP がいいと思います。
GIMP はほとんど入ってるでしょうし、親切なページがあるので説明は省略します。
当たり前ですが、X が動いてないとダメです。

まずはアイコンの元となる画像ファイルを作ります。
16x16 のサイズで画像を作り、pnm 形式で保存します。

3.Netpbm で変換する

ppmtowinicon -output 作成するファイル.ico 元画像ファイル.pnm
で、出来上がりです。
後は HP に反映して自己満足してみましょう。

目次へ

CPU負荷とメモリ使用状況を調べたい

今回はちょっと長くなりました。

現状を調べたい

お手軽なのは top コマンド。
リアルタイムに使用状況を表示してくれます。
gnome 上なら gtop がいいですね。
おしまい。

統計的に調べたい

でも、深夜とかにtopでずっと見てるのは大変ですね。
俺様はそんな根性どこにもありません。
ブラウザでグラフィックに履歴が表示されたら便利だなぁと。
ていうことで楽するためにちょっぴり頑張ってみましょう。

apache が入っているという前提で、 snmpmrtg を使うことにしましょ う。
RedHatの場合、サーバーインストールを行うといずれもインストールされます。
ただし、動いていません。
入っていない場合は、いずれも rpm でインストールすれば OK です。
up2date は忘れずに実行しておきましょう。
※ rpm ではなく、tarball でももちろん良いのですが、お手軽さを優先しています。
※ tarball の場合はインストールされるディレクトリが違うので読み替えてください。
※ apache がそのサーバーに入っていない、または入れたくない場合は
snmp のみを設定し、別の apache サーバーで mrtg を動かすのも良いと思います。

snmp の設定

まずは snmp デーモンを設定します。
今回の考え方は以下のとおりです。
1.自サーバー以外からの snmp リクエストを受け付けない。
2.データは読み出しのみ。
3.CPU ロードアベレージを取得する。

/etc/snmp/snmpd.cfg が設定ファイルになります。
vi エディタなどで以下のように編集します。
#com2sec notConfigUser  default       public
com2sec notConfigUser  localhost       public

#group   notConfigGroup v1           notConfigUser
#group   notConfigGroup v2c           notConfigUser
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
group   notConfigGroup usm           notConfigUser

#view    systemview     included      system
view     all included .1 80

#access  notConfigGroup ""      any       noauth    exact  systemview none none
access  notConfigGroup ""      any       noauth    exact  all none none

load 12 14 14
※ # で始まる行はコメントアウトしたものです。
※ # のついていない行は追加・修正したものです。

これで設定は終了です。snmpd を起動しましょう。
service snmpd start

以下のコマンドで正常に動くか確認しておきます。
snmpwalk localhost public .1
※ redhat9 ではコマンドが変わっているようです。
snmpwalk -v1 -c public localhost .1 で確認しましょう。

正常の場合は、snmpd から取得したたくさんのメッセージが出力されます。

正常であることを確認したら、自動起動しておくようにしましょう。
chkconfig snmpd on

mrtg の設定

次に mrtg を設定します。
あらかじめ、 mrtg がデータを出力するディレクトリを作成しておきます。
もともとの mrtg のデータディレクトリでも良いのですが、
マニュアルHTMLなどがあるので、一応別にしておきました。
apache も rpm でインストールしてあるので以下のようになります。
mkdir /var/www/html/mrtg/data

/etc/mrtg/mrtg.cfg が最小構成の設定ファイルなのですが、
残念ながらこれでは目的を果たすには不十分です。

cfgmaker を使って、設定ファイルを作成します。
cfgmaker --global 'WorkDir: /var/www/html/mrtg/data' \
    --global 'Options[_]: bits,growright' \
    --output /etc/mrtg/mrtg.cfg \
    public@localhost

これで /etc/mrtg/mrtg.cfg が作成されました。
しかしこのままでは mrtg 本来のネットワークトラフィックしか出力されません。
ここで、メモリの設定するためにメモリとスワップの値を取得します。
以下のコマンドを入力します。
snmpwalk -v1 -c public localhost .1.3.6.1.4.1.2021.4.5
snmpwalk -v1 -c public localhost .1.3.6.1.4.1.2021.4.3
1行目がメモリ、2行目がスワップの値になります。

vi エディタなどで、 /etc/mrtg/mrtg.cfg を編集します。
以下の行を最後に追加します。
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@localhost
MaxBytes[cpu]: 2000
Title[cpu]: CPU Load Avalage
PageTop[cpu]: <H1>CPU Load Avalage</H1>
Options[cpu]: nopercent, integer, gauge, absolute, withzeroes, growright
YLegend[cpu]: CPU Load Avalage
ShortLegend[cpu]: percent
Legend1[cpu]: 1 min CPU Load Avalage
Legend2[cpu]: 5 min CPU Load Avalage
LegendI[cpu]: 1min
LegendO[cpu]: 5min
Unscaled[cpu]: dwmy

Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@localhost
MaxBytes1[mem]: 513788   <- メモリの値
MaxBytes2[mem]: 1839424  <- スワップの値
Title[mem]: Memory Free
PageTop[mem]: <H1>Memory Free</H1>
Options[mem]: gauge, absolute, growright
YLegend[mem]: Mem Free[kBytes]
ShortLegend[mem]: kBytes
Legend1[mem]: Real Memory
Legend2[mem]: Swap Memory
LegendI[mem]: Real
LegendO[mem]: Swap
Unscaled[mem]: dwmy

設定が終わったら、 mrtg を起動します。
/usr/bin/mrtg /etc/mrtg/mrtg.cfg

エラーメッセージが出ます。気にせずもう一度同じように起動します。
またエラーメッセージが出ます。さらにもう一度起動します。
エラーメッセージは出なくなります。

さて、 mrtg がちゃんとデータを出力したか見てみましょう。
ls /var/www/html/mrtg/data/

いろいろファイルが出来ているはずです。
???.html ファイルが、処理結果の表示用 HTML です。
ブラウザで見てみてください。
mrtg は起動するごとに snmp データを読んで処理を行うので、
一定間隔で起動してやる必要があります。
rpm でインストールした場合は、
cron に5分おきに起動するように自動的に設定されるようです。

クライアントのブラウザからそれぞれの HTML を参照すればよいわけですが、
ばらばらなので面倒臭いですね?(Y/y)

そこで以下のコマンドを入力して、インデックスページを作ります。
indexmaker /etc/mrtg/mrtg.cfg > /var/www/html/mrtg/data/index.html
※ RedHat9 だと、エラーが出るようですがちゃんと作成され ます。

これで、インデックスページが出来上がりました。
あとは、ページ下部の画像ファイルがリンク切れを起こしています。
気になる人は /var/www/html/mrtg/*.png を /var/www/html/mrtg/data/ に
シンボリックリンクまたはコピーしてやればバッチリです。

グローバルIPを持っていて、apache を動かしているサーバーなどでは、
外部ネットワークからこのページを参照できないようにしたほうがいいでしょう。

簡単に済ませるなら .htpasswd と apache の設定変更でいいと思います。

これで多い日も安心ですね(?)

目次へ

受信メールを自動処理したい

メールを受信したら、なんか自動的に処理したい時ってありませんか?
Windowsのメーラーで取りこんだメールをエクスポートして、
Officeとかでゴリゴリマクロ書いてたりしませんか?
面倒臭いですよねぇ。遅いし。

そんなときに役立つのが /etc/aliases です。
通常は、メールを転送するのに使いますよね。
こんな感じで。
inuinu: inukai@tcp-ip.or.jp

でも、こうやって書くと。
nekoneko: "| /etc/smrsh/nekoneko.sh"
メールの内容をシェルスクリプトに渡すことができます。
渡される内容には、当然メールヘッダとかも含まれます。
自動返信もプログラムできるわけですね。
|(パイプ記号) の後にはブランクが必要です。お忘れなく。

で、/etc/smrsh って何?てことで調べてみました。

詳しくは man を見てもらうとして、
要は、/etc/aliases で起動するための、
実行ファイルを置く専用のディレクトリです。
root のみが書き込み権限を持っています。

何でもかんでも起動できちゃうと、セキュリティがまずいってことで、
こういう仕組になってるみたいですね。

んで、受け取る側のシェルスクリプトに、
標準入力を読んで処理をするように書いておけばいいわけです。
だから、シェルスクリプトのみでも、
C で作ったプログラムを起動するように書いても、
perl や php を起動するようにしてもいいわけですね。

nekoneko: "| /etc/smrsh/nekoneko.sh",inukai
とか書けば、プログラムも起動させつつ、通常アカウントによるメールも受信できます。
でも、使い道はデバッグくらいかな?

人工無能メール版とかも出来そうですね。楽しいかどうかはともかく。

余談ですが、メールは受信しても、すぐ捨てたいときは、
sutesute: /dev/null
って書きます。使う場面はあまり無いかもしれませんが。

目次へ

rsync でバックアップ

rsync は、サーバー間でファイルやディレクトリのコピーをするものです。
差分コピーや、削除済ファイルの反映もサポートしてて便利。
rが頭に付いてるんで、r系のコマンドなんですが、
sshが使えるんで安心して使えます。

使いかたはこんな感じ。
rsync オプション 送り元 送り先

推奨オプション:avzou -e ssh --delete
sshを使って差分コピー、削除ファイル反映など。詳しくはmanを見てね。
ていうか、私はいつもこれなんですが。

送り元:バックアップしたい処を指定するわけですな。
送り元のログイン名@サーバー名:ディレクトリまたはファイル名

送り先:バックアップファイルを置いておきたい処を指定します。
. でカレントディレクトリに。

んで、実際の例。
filesvr.inuinu.co.jp サーバーから、カレントディレクトリにバックアップ。
対象となるディレクトリは /home 以下を全て。
rsync avzou -e ssh --delete root@filesvr.inuinu.co.jp:/home .

当前のことながら、filesvr では sshd が動いてないといけません。
ssh を利用して、filesvr へ root でログインするので、
filesvr のルートパスワードが必要になります。
バックアップ専用のユーザーIDを作ったほうが良いかも知れませんね。
sshの認証をマシン認証にしておけば、パスワード省略も出来ます。
ってことは cron 使えば自動で取れるってことです。

WinなファイルサーバーにArcServeとかを使って
一所懸命バックアップ取るのが阿呆らしくなるのは私だけでしょうか。
ファイルサーバーだけならSamba使って、もう一台でrsyncってのはいかがでしょう。

目次へ

ドメイン名の省略

telnetとかftpとか、同じドメイン内でのサーバー参照するときに、
ドメイン名まで入力するのは面倒じゃないですか?

え?なにもしなくてもちゃんと補完してくれる?
それならとくになにもしなくて良いですね。
ただ、ローカルネットワーク上のlinuxなんかは、
うまく行かないこともあるんですよ。

そんなときは root で /etc/resolv.conf に以下の行を追加してみましょう。
domain inuinu.co.jp

目次へ

メールを転送する

特定のアカウントに来たメールを転送します。
やっぱ sendmail でしか確認してませんので、そこんとこよろしく。

1.俺様のメールを他の人に転送したい

oresama@inuinu.co.jp 宛てのメールを
inukai@tcp-ip.or.jp に転送したいとします。

1.1.転送したメールはいらない

転送したい人のホームディレクトリに、
.forward という名前のファイルを vi 等で作ります。
この場合は vi /home/oresama/.forward ですね。

で、以下のように書きます。
inukai@tcp-ip.or.jp

これで終り。簡単ですね。
パーミッション、オーナーをちゃんと合わせておきましょう。
このアカウントで作業すれば当然合わせる必要すらなし。

1.2.転送したメールを残しておきたい

さっきとほとんど同じです。
で、以下のように書きます。
inukai@tcp-ip.or.jp,\oresama

単にカンマを付けて、後ろにバックスラッシュ(円記号か?)と
元のアカウントを書くだけです。

2.メーリングリストっぽく複数の人に配りたい


たとえば、どこかに申し込んだ技術情報メルマガなどを、
いっぺんにたくさんの人に見てもらう場合。
社内用メーリングリストとかを作るのもちょっと大げさかなって時に。

まず、メールを受ける専用の「存在しないアカウント」を決めます。
tecinfoml@inuinu.co.jp とか。
決めるだけで、ユーザーアカウントは作らないように。

配られるメールアドレスは、以下のとおりとします。
boss@inuinu.co.jp
oresama@inuinu.co.jp
sitappa@inuinu.co.jp
ここまでは社内(同じサーバー内)のアカウントですね。
myhoney@nekoneko.co.jp
で、社外の人にも一緒に送るとしましょう。

で、以下のように /etc/aliases に「追加」します。
これはスーパーユーザーでしか出来ませんね。
tecinfo: boss,oresama,shitappa,myhoney@nekoneko.co.jp

書き終えたら、一応 newaliases しておきましょう。
本来のメーリングリストと違って転送だけなので、
history とか backup 等は一切ないので注意。

目次へ

バーチャルドメインを作る

前提条件として、まずはドメインを取ります。当り前ですが。
で、元々あるドメインの中に、
特定のマシンに、新しくwebとmailを立ち上げて、
http://ドメイン名/、 xxx@ドメイン名でアクセスできるよう構成するものとします。

元々のドメインinuinu.co.jp
バーチャルにするサーバー virt-www.inuinu.co.jp(210.111.222.3)
バーチャルドメインnekoneko.tv

1.dnsの移管

元々のドメイン(inuinu.co.jp)のdnsに、
「このバーチャルドメインはここ」
って言ってもらうことになります。

しかし、ドメインを取っただけではどのdnsが喋ってくれるかというと、
登録されていない or 別のdnsになっているはずです。

なので、ドメインを取ったところにて、dnsの移管を行います。
ほとんどが申し込み先のwebから設定できると思います。
プライマリとセカンダリのdnsサーバー名に、自分とこのdnsを登録すれば良いです。
小規模ネットワークの場合、セカンダリのdnsは、
プロバイダのサーバーになることが多いですね。

2.bindの設定

元々のドメインのdnsサーバーにアクセスして作業します。
もちろんスーパーユーザーで。

/etc/named.conf に新しいドメインの定義ファイルを追加します。
場所としては、自分のドメインの定義の下が良いでしょう。

zone "inuinu.zone" {	<-元のドメイン
type master;
};

zone "nekoneko.zone" {	<-追加するバーチャルドメイン
type master;
};

次に、実際にゾーンファイル /var/named/nekoneko.zone を作ります。
元々の /var/named/inuinu.zone をコピーすると楽チンです。
こんな感じになります。

@       3600    IN      SOA     ns1.inuinu.co.jp.        postmaster.ns1.inuinu.co.jp.  (
			      2003071101
			      28800      ; Refresh
			      14400      ; Retry
			      360000     ; Expire
			      86400 )    ; Minimum
	IN      NS      ns1.inuinu.co.jp.
	IN      NS      ns2.inuinu.co.jp.
		IN      MX 10   virt-www.nekoneko.tv.
;
	IN      A       210.111.222.3	<-※1
virt-www        IN      A       210.111.222.3
	IN      MX 10   virt-www.nekoneko.tv.
;
;       CNAME
;
localhost       IN      CNAME   localhost.

コピーした場合は、赤字のところが修正対象になります。
バーチャルドメインと関係ないサーバーの記述は削除してください。
※1:この行がないと、http://nekoneko.tv/でアクセスできなくなります。
virt-wwwが嫌な場合は、wwwとか一般的なサーバー名に変えても良いでしょう。

修正が終ったら、サービスを再起動しておきます。

service named restart

これで dns の設定は終りです。
nslookup でちゃんと引けるか確認しておきましょう。
他のdnsサーバーに最新情報が流れ終るには数時間から最悪数日かかります。

3.mailの設定

dnsの設定が済んだので、xxx@nekoneko.tv 宛てのメールが、
virt-www.inuinu.co.jp に飛んでくるようになります。

ところがsendmailは基本的に自分のドメインに来たメール以外は知りません。
通常はリレーもしないようになっているはずです。
また、アカウントも当然ないわけで user unknown になります。

んで、sendmail のバーチャル化となります。
postfix や qmail は知らないんで。
ということで、実際のバーチャルドメインのメールサーバーにて作業します。
もちろんスーパーユーザーです。

で、元々のドメイン以外を受け入れるために、
/etc/mail/local-host-namesを編集します。
本来のサーバー名と、バーチャルのサーバー名を書いておきます。

virt-www@inuinu.co.jp
virt-www@nekoneko.tv

つぎに、アカウントを作るため /etc/mail/virtusertable を編集します。

inuinu@nekoneko.tv	inuinu
webmaster@nekoneko.tv	inuinu
info@nekoneko.tv	inuinu@inuinu.co.jp

受け入れるメールアドレス  本当に送られるメールアドレス
の形で書きます。
1行目は inuinu@nekoneko.tv 宛てのメールを inuinu@virt-www.inuinu.co.jp に
送ります。と言うか、同じサーバーなので受け取ります。
なので、このマシン内に inuinu と言うアカウントまたはエイリアスが必要です。

2行目は、webmaster@nekoneko.tv 宛てのメールを inuinu@virt-www.inuinu.co.jp に
送ると言うか受け取ります。

3行目は、別のメールアカウントに転送する場合です。
別のドメインでも問題ありません。
まだいろいろ指定できますが、とりあえずこれらの方法で事足りるでしょう。

で、これだけではダメなので、dbを作成します。

makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

/etc/mail/virtusertable.db が作成されたはずです。

サービスを再起動します。

service sendmail resatrt

これで終りです。
xxx@nekoneko.tv にメールを送ってみましょう。

4.apacheは、どうなのよ?

バーチャルホスト専用で動かす場合は通常の設定通りで大丈夫です。
元々のURL (virt-www.inuinu.co.jp) でアクセスすることも出来ます。

ただし、通常ドメインにアクセスした時と、バーチャルドメインにアクセスした時を
別の動作をさせたい場合は、apache もバーチャル化する必要があります。
が、そんなんだったら別サーバーで動かすほうがいいと思うので割愛します。

5.まとめ

大変なようで実はほとんど設定しなくてもいいんだよね。
IISとか、Exchangeとかだと大変なのかなぁ。

目次へ

やっぱゲームしなきゃね

JNethack について、メモっとこうと思ったんだけど、意外にボリュームがあったんで別ページに。

2003/06/19 jnethack-3.4.1 がリリースされました。(6/9)
イェンダーの魔避けを奪え!

あとは
http://x.mame.net/ とか
http://gnomame.sourceforge.net/ とか
書いてみてもいいんだけど自粛。
最近は gnomame より gxmame がいいかなって思う今日この頃。

目次へ

sendmail送信時、キューに入れてから送る

postfixのインストールしてみたんだけど、またsendmail。
載せ替え結局見送った俺様って一体。

自作メルマガ送信ソフトで、即時送信で携帯に送りまくると、
spamと間違えられるのがいやんなわけで。
キューに入れてぼちぼち送ると言うことで考えてみました。

即時送信のときのコマンドはこう。
/usr/sbin/sendmail -t -f 自分のメールアドレス
to:宛先アドレス
subject:タイトル
本文
.
(.だけ入力すると終了になる。)

コマンドラインの引数に以下のようにオプションを追加する。
/usr/sbin/sendmail -t -f 自分のメールアドレス -O DeliveryMode=q
(後は同じ)

これで単純にキューに積んでくれるようになるわけですが、
sendmail はデフォルトだと1時間に1回しかフラッシュしてくれません。
ついでにフラッシュ間隔を短くします。(30秒は短いかな?)

su -
mailq でキューに溜っていないか確認します。
溜っていたら、 /usr/sbin/sendmail -q で、フラッシュしておきます。
キューが空になったら service sendmail stop で止めておきます。

さて、設定を弄りましょう。
vi /etc/sysconfig/sendmail
で、何もしてないとこんな感じ。
DAEMON=yes
QUEUE=1h

もう解りましたね(おい)
DAEMON=yes
QUEUE=30s
これで保存しましょう。
service sendmail start で起動しておきます。

これで終ったかと思ったらキューって1ずつしか送ってくれないじゃん
まぁ当然と言えば当然なわけですが。
仕方ないので、マルチキューで送信プロセスも複数で送ることにします。
今回は2つってことにします。

su - 先程の手順と同じで、sendmail を一旦停止。
/var/spool/mqueue がキューディレクトリです。
キューディレクトリをこの下に作ります。
cd /var/spool/mqueue
mkdir dir0
midir dir1
これら作成したディレクトリのパーミッションは、
一つ上の /var/spool/mqueue と同じにしておきましょう。

以下の記述を sendmail.mc に追加・更新しましょう。
define(`QUEUE_DIR',`/var/spool/mqueue/dir*')dnl 
define(`confMAX_QUEUE_CHILDREN', `2')dnl
define(`confMAX_QUEUE_RUN_SIZE', `999999')dnl

で、sendmail.cf を作ります。
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

service sendmail start で起動しておきます。
mailq でみると、キューが2つになっているはずです。
送信キューにいれる場合、勝手に振り分けられます。便利。

目次へ

postfixを入れてみる

sendmail の設定の仕方とか書いておいてアレなんですが、
設定が面倒、セキュリティーがヤバい(設定を間違えやすい)、重いと
デファクトスタンダードとは言えいろいろ気になります。
そこで思い立ったのが、他のメールサーバーと入れ換えようってこと。
ちなみに MTA って言うのが正しいようです。>メールサーバー

で、sendmail に近くて、軽くて、設定の簡単なものって事で、
postfix に決定。RedHat7.3 からは postfix がついてるらしいです。(;_;)

まずは、ココから ソースを落してきます。

事前に専用ユーザーとグループを作っておきます。
今回は ID を指定してみることにしました。
su -
groupadd -g 12345 postfix
useradd -u 12345 -g postfix -s /sbin/nologin postfix
groupadd -g 54321 postdrop

postfix ユーザー宛のメールを、 root に向けておきます。
vi aliases
以下の一行追加。
postfix: root

一応 sendmail を止めておきましょう。
service sendmail stop

sendmail をリネームして保管しておきます。
RedHat7.2Jでは、newaliases, mailq はシンボリックリンクでしたが、
他のディストリビューションでは実態かもしれません。
rm する前に確認しておいてくださいね。
cd /usr/sbin/
mv sendmail sendmail.OFF
cd /usr/bin/
rm newaliases
ln -s ../sbin/sendmail newaliases.OFF
rm mailq.OFF
ln -s ../sbin/sendmail mailq.OFF

ここからは通常ユーザーでもよろしくてよ。
tar xvfz postfix-2.0.9.tar.gz
cd postfix-2.0.9
make

んでまた root で作業。
su -
cd 展開したディレクトリ
make install
最後にいろいろ聞かれますが、基本的には全てデフォルトで Enter を押すだけ。

でもって、 postfix を設定。
cd /etc/postfix
cp main.cf main.cf.org (いらないかも)
vi main.cf
以下の項目は最低限設定しましょう。
myhostname = host.mydomain.co.jp (自分のサーバー名)
mydomain = mydomain.co.jp (自分のドメイン名)
myorigin = $myhostname
inet_interfaces = all (受信を許す)
mydestination = $myhostname, localhost.$mydomain (自分の最終受信先)
alias_maps = hash:/etc/aliases
alaas_database = hash:/etc/aliases
mail_spool_directory = /var/mail (/var/spool/mailでも結局同じ)
mynetworks_style = subnet

自動起動設定をします。
cd /etc/init.d
vi postfix
以下の要領で記述します。
#!/bin/bash
# chkconfig: 2345 80 30
# description: postfix (sendmail compat.)

start() {
        postfix start
}

stop() {
        postfix stop
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac
exit 0
chmod 755 postfix

んで、登録。
chkconfig --add postfix
service postfix start
エラーが出ないか見ておきましょう。

これでsendmail がいらなくなったので、
chkconfig --del sendmail (意味無いかも)
それよりもアンインストールしておいたほうが安心かもしれませんね。

目次へ

wu-ftpと専用ユーザー

wu-ftpでサーバー立てて、anonymous ユーザーは禁止して、
特定のアカウントだけアクセスさせたいんだけど、
シェルは使わせたくないんだよねーって時に。

まず、アカウントを作ります。onlyftpusrってことにしましょう。
useradd onlyftpusr
passwd onlyftpusr

シェルログインを禁止します。パスワードだけ変更できるようにしましょう。
また、/var/ftpからより上はアクセスできないようにして、
/var/ftp/pubをカレントにします。

vi /etc/passwd で、以下のようにします。
変更前
onlyftpuser:x:500:500::/home/onlyftpusr:/bin/bash
変更後
onlyftpuser:x:500:500::/var/ftp/./pub:/usr/bin/passwd
ちなみに.の前が chroot に渡され、後が chdir に渡されます。

vi /etc/shells で、passwdを登録しておきます。
一行追加
/usr/bin/passwd

vi /etc/ftpaccess で、ゲストに登録します。もちろんanonymous禁止。
一行追加
guetstgroup onlyftpusr
変更前
class all real,guest,anonymous *
変更後
class all real,guest *

はい、これでおしまい。
ftp と telnet や ssh でログインして確認しておきましょう。

目次へ

sendmailでメールサーバー

sendmailは標準で入ってますが、ローカルサーバー内でしか使えません。
当然使えないって事になるので、外部からもメールを受け取れるようにします。
popはまた別の機会に(T_T)

前提条件:
自分のドメイン名を mydomain.co.jp
メールサーバー名を mail.mydomain.co.jp
送ったユーザー名は xxxxx@mydomain.co.jp
として考えます。
作業ディレクトリは /etc/mail です。root でね。

1.local-host-namesの設定
自分のホスト名を入れる。
mail.mydomain.co.jp
※エイリアスがある場合は全部書くこと。


2.sendmail.mcの設定
※クオートで文字列を囲む場合、バック、シングルなので気をつけること。

2.1.自分以外からも受けられるようにする。

以下のように頭に "dnl " をつけてコメントアウト。

dnl EXPOSED_USER(`root')dnl
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

2.2.送信元ドメインを変更する。
以下の記述を追加。

FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
MASQUERADE_AS(`mailserver.mydomain.co.jp')dnl
MASQUERADE_DOMAIN(`mydomain.co.jp')dnl

下2行は、メールサーバー名から変更したいドメイン名を指定します。

記述個所はどこでもいいはずだけど、
FEATURE(`blacklist_recipients')dnl
のあたりでいいでしょう。


3.sendmail.cf を作る
以下のコマンドを投入。

m4 /etc/mail/sendmail.mc > /etc/sendmail.cf


4.再起動する
以下のコマンドを投入。
service sendmail resatrt

目次へ

PHP4 インストールするぞ

やっぱり web サーバー立てるなら php4 でしょう。(なんでやねん)
データベース連係もしたいよね。
ここでは sybase 使うことにしましょう。
あらかじめ sybase はインストールしておきます。

RPM そのままだと sybase オプションが入りません。確か。
で、ソースを持って来て解凍します。
今回は 4.2.2 で行きます。もっと新しいのがあるはずですが。

tar xvfz php-4.2.2.tar.gz
cd php-4.2.2
./configure
 --with-apxs=/usr/sbin/apxs \
 --enable-track-vars --enable-mbstring \
 --enable-mbstr-enc-trans --enable-mbregex --enable-trans-sid \
 --enbale-with-sybase=/opt/sybase
make
su
make install

これで libphp4.so が出来ます。あとは php.ini を作りましょう。

cp php.ini.dist /usr/local/lib/php.ini

後はお好みに合わせて書き換えます。

vi /usr/local/lib/php.ini

include_path=".:自分のライブラリ置場のパス"とか、
register_globals=Onとか、session.cache_limiter=publicとか。
2003/05/20追記 magic_quotes_gpc = Off は入れておいたほうが良いです。

これだけでは apache からしか使えません。当然ですね。
コマンドライン版を作りたいときは、
さっきの ./configure の --with-apxs のオプションを外して実行、
make make install します。
うまく行かないときは、make distclean してやり直してみてください。

目次へ

開いてるポートの調べ方

nmap localhost で良いでしょう。
ないときは、netstat -a | grep LISTEN で調べるとよさげ。
最終的に、 ssh, ftp, httpd 位しかないのが良いのでは?
メールを動かすときは、pop3, smtp は当然必要になります。

目次へ

ディスクとディレクトリの空き容量は?

df ディスクっていうかパーティションだけど。
du はディレクトリね。
細かいオプションは man すべし。

目次へ

RedHatNetwork でいつでもおニュー(嘘)

ゲイツさんとこの OS には WindowsUpdate なんてのが付いてます。遅いですよね。
RedHat にも UpdateAgent(up2date) なんてのが付いてるんですが、これがまた遅いんです。はい。
コマンドラインから走らせたい時は、 up2date -u --nox ってやる奴ですな。

で、調べてみるとありました。ミラー。
設定しなおしとけば快適ですね。

/etc/sysconfig/rhn/up2date を修正しましょう。
noSSLServerURL, serverURL ってとこにサーバーアドレスが書いてあります。
https://www.rhns.redhat.com/XMLRPC こうなってますが、
https://rhns.jp.redhat.com/XMLRPC こんな感じで直しちゃいましょう。

これで快適になるはずです。

目次へ

コンピュータ名を変えたいんだよう

/etc/sysconfig/network を修正しましょう。

HOSTNAME=??? って書いてある奴がそうです。
ちなみに DHCP の場合は若干違うらしいですが、使ってないので知りません。
service network restart しておけばいいみたいですが、
shutdown -r now したほうが個人的には気持いいです。はい。
あ、 hosts も忘れずに書き換えておきましょうね。

目次へ

起動時に X を使う・使わない

サーバーとしてセットアップしたときは関係ないですなこりゃ。
あとで X を追加したんだけど、 X で起動したいんだぜ俺様は!って時に。

/etc/inittab の上の方に書いてあります。
id:5:initdefault:
これだと X が動いちゃいます。
5 を 3 にすればコンソールで立ち上がるようになるみたいです。

目次へ

フリーの sybase をサービスとして登録したい

linux 用のフリーバージョンで Sybase ASE 11.0.3.3 てのが英語版であるんです。
こいつは普通にインストールしてもサービスとして認識されません。
/etc/rc.d/init.d/ に sybase を置いておいて、
chkconfig -add sybase ってやってもなぜかダメだっていわれます。
以下のように修正しちゃいましょう。
#
# Version:      @(#) /etc/rc.d/init.d/sybase 1.0
#
# chkconfig: 2345 80 20
# description: This script will browse through the /opt/sybase/install \
#              directory and launch all servers configured from this location.
なんでこうやらないといけないのかは知りません。(T_T)

目次へ

samba を使ってみよう:Win9x ワークグループファイルサーバー

とりあえず Win9x 系のフルアクセスを実現してみます。

日本 Samba ユーザ会から最新 rpm をもらってきます。
root でインストールしましょう。
rpm -ihv samba-2.2.2.ja-10.i386.rpm

設定のために swat を起動します。xinetd から動きます。
chkconfig swat on
service xinetd restart

別の PC から web ブラウザでアクセスして設定します。
http://sambaをインストールしたサーバーアドレス:901/
ユーザーとパスワードは root の物を使います。
さて、設定画面が開きましたね。
全体設定 -> 詳細表示 で、以下の内容を設定します。
ワークグループ名:使いたいワークグループ名を設定します。
セキュリティ:SHARE (ここを他のにすると認証が入ります)
ゲストにマップ:Bad User (SHARE の場合、関係ないみたいです)
あとは設定変更ボタンを押しましょう。

次は共有の設定です。
共有設定を開くと、ドロップダウンがあります。
PUBLIC は残して、共有に不要な物を削除しておきましょう。
PUBLIC を選択したら、writeable, guest ok ともに Yes にしておきましょう。
設定変更ボタンを押せば、とりあえずは完了です。
samba を起動するために、動作状況を開き、 smbd起動、nmbd起動のボタンを押して完了です。

あとは Win 系から接続できるか確認しましょう。

確認できたら自動起動の設定をしましょう。
chkconfig smb on
設定変更される恐れがあるので、swat を終了させておくのもいいですね。
chkconfig swat off
service xinetd restart

日本語ファイル名、日本語共有名のいずれも使えます。便利ー。

#某社の提案「日本語ファイル名対応は別途費用」って、素人相手に酷くない?
#まあうちのとこには関係ないけどね。

目次へ

どもる
Valid HTML 4.01!