□ Linux 豆知識 □

 

menu

順不同。もう少し項目が増えてきたら整理します。(^_^)

  1. Linux の起動の仕組み
  2. ランレベル
  3. vi エディタの基本操作
  4. rpm コマンドの使い方
  5. tar.gz ファイルのインストール手順
  6. Syslogdでルータのログを記録する 最終更新日 2008/03/16
  7. アンチウィルスソフトを導入する 最終更新日 2003/05/19
  8. Linux のディレクトリー構造
  9. Turbo 設定ツール
  10. メールサーバの機能 最終更新日 2002/10/08
  11. PHPの実行を快適にする 最終更新日 2002/10/12
  12. 役立つ Link 集

トップページに戻る

Linux の起動の仕組み

PC の電源を入れてから、Linux が使用できるようになるまでには、以下のような手順を踏んでいる。

1、PC の電源を on

2、BIOS による各種チェックと HDD の MBR 領域の読み込み

3、MBR にインストールされた LILO ( Linux LOader ) によるカーネルの読み込み

4、コンソールや使用可能メモリの容量チェック

5、カーネルの初期化とルートファイルのシステムの立ち上げ

6、最初のプロセスとして init を起動(スワップも開始)

7、init が /etc/rc.d 以下の rc や rc.* というスクリプトを実行(各種デーモンが起動)

8、init が getty や xdm を起動(ユーザーがログイン可能になる)

9、ログイン

10、シェルの起動(シェル起動時に profile や bashrc を参照)

だから、どんな環境ができあがるか?を考えると、OS の核であるカーネル、init、init が読み込む/etc/rc.d/ 以下のファイル、そしてシェルの、4つで決定されることになる。init も /etc/inittab による環境設定が行われている。

【参考】/etc/ 以下のファイルの解説

▲ menu に戻る

ランレベル

ランレベル

説明

0

終了に移行する状態

1

シングルユーザーモード

2

NFS 関連以外のネットー枠機能が使える

3

コンソールモードのネットワークのフル機能が使用できる

4

使用されていない

5

X-WIndow System によるネットワークのフル機能が使用できる

6

再起動を実行

これは、実行モードを選択するもので、デフォルトでどのモードが実行されるかは inittab に記載されている。Windows でも safe mode なんてのがあるなぁ。あれと一緒。サーバであればランレベル 3 か 5 を実行させることになる。ちなみにコマンドラインでもこれを実行できる。

<例 1># init 0 ← shutdown -h now と同じく、シャットダウンする。
<例 2># init 6 ← shutdown -r now と同じく、再起動する。

システム起動時に立ち上がるデーモンを調べるためには

# chkconfig --list | less と実行してランレベル3 ( GUI modeでは 5 も)で on になっている必要がある。

システム起動時に立ち上がるデーモンを有効・無効に切り替えるためには、

# chkconfig httpd off  ← これで apache が起動しなくなる。

▲ menu に戻る

vi エディタの基本操作

vi <ファイル名>でファイルをopen

キー

意味

キー

意味

i

入力モードへ切り替え

x

1文字削除

Esc

コマンドモードへの切り替え

dd

1行削除

l

カーソル右1つ移動

:w

保存

h

カーソル左1つ移動

zz

保存して終了

k

カーソル上1つ移動

:q!

保存せず終了

j

カーソル下1つ移動

/<文字列>

<文字列>を検索。続けてnキーで次候補の表示

 

▲ menu に戻る

rpmコマンドの使い方

コマンド

意味

rpm -ivh ****.i386.rpm

****.i386.rpmパッケージのインストール

rpm -Uvh ****.i386.rpm

****.i386.rpmパッケージのアップグレード

rpm -e ****

****パッケージのアンインストール

rpm -q ****

****パッケージがインストールされているかの確認

rpm -qa

インストールされている全パッケージを表示

 

▲ menu に戻る

tar.gzファイルのインストール手順

$ tar xzvf ****.tar.gz

圧縮ファイルの解凍・展開

$ cd <作成されたディレクトリ>

ディレクトリを移動

$ autoconf

configureファイの作成

$ ./configure

configureファイルの実行

$ make

対象プログラムの作成

$ su

root ユーザになる

# make install

対象プログラムのインストール

# exit

root ユーザを終了

 

▲ menu に戻る

Syslogdでルータのログを記録する

参考にしたのは、Tomo's Homepage さんの このページです。

(1)NTT SOHO SL-11の場合、ルータ設定(IP)のページのSYSLOGのページで

(2)Tomo's Homepage "/etc/syslogd.conf" を設定する」から「 syslogdを再起動する」に記載された通りに設定します。これでOKです。尚、Turbo Linuxの場合は、/etc/syslog,conf がその設定ファイルです。おっと、ファイル名は、SL11-logにしました。そのほかは記載の通りです。

▲ menu に戻る

 

アンチウィルスソフトを導入する

参考にしたのは、kozupon.comさんのLinuxウィルスソフト導入の勧め

  1. ダウンロードしたファイルは、linux.intel.libc6.tar.Z。だから解凍するには、tar -xZvf linux.intel.libc6.tar.Zで実行します。
  2. 後は、記載の通りやれば稼働します。
  3. 尚、Squid と連携させたフィルタリングまで実現するにはここを参照。

これを導入しても、監視しているのはPOPサーバの110番ポートのみ。25番ポートは監視しません。だから、SMTP サーバから SMTP へ転送させる場合には、ウィルス添付メールを転送してしまう、なんてことにもなりかねない。どうしても25番ポートを監視するアンチウィルスソフトを導入したいものです。

 

ありました。ありました。25番ポートを監視するアンチウィルスソフトが。MailMonitor for SMTP という奴。参考にしたのは、やはり、kozupon.comさんのSMTPのとばっつ^口^でウィルスを撃退する!のページ。このサーバは、SMTP にメールを転送するシステムになっているようなので、

  1. ダウンロードしたのは、mmsmtp-1.2.0 を含んだ MailMonitor for SMTP - Unix (Linux/Intel) 1-2-0 β2 というファイル。インストールは、記載の通りやればよい。ほとんどデフォルトでかまわないと思います。なお、環境設定ファイルは、/usr/local/sophos/mmsmtp-1.2.0/Linux-x86/mmsmtp.cfg で行われているようだから、インストール時に失敗したと思った方は、このファイルをエディタで修正すればよい。
  2. アクセス制限を必ずやってほしい。でなければ、第三者中継を行ってスパムメールの発信基地になりかねません。/usr/local/sophos/mmsmtp-1.2.0/Linux-x86/access_db.txt というファイルをエディタで修正する。このファイルの9 行目からアクセスを許可する SMTP やクライアントの ネットワークアドレス、 IP アドレス、ドメイン名を書き込み方の例の記載がある。これに習って、(行頭の # があるとコメント行となるので、この # のない行を作成していく。)
  3. # cd usr/local/sophos/mmsmtp-1.2.0/Linux-x86/ ← ファイルのディレクトリに移動。
  4. # vi access_db.txt ← vi エディタで access_db.txt を open
  5. e-sen.com RELAY ← e-sen.com ドメインを持つクライアントのアクセスを許可
  6. 192.168.0.0/24 RELAY ← 192.168.0.0/24 のネットワーク内のクライアントからのアクセスを許可、てな具合。
  7. 最後にこれを保存して終了。
  8. 次に、環境設定ファイルで、今行った接続制限を有効にしてやる必要があります。
  9. # vi mmsmtp.cfg
  10. access_database_enabled=true ←110行目にaccess_database_enabled= という行があるので、true を書き込む。
  11. 保存して終了したら、mmsmtp を再起動します。

 なお、5〜6 に記載したように、アクセスを許可されたSMTPやクライアント以外の接続は許可されないことになる(当たり前(^_^))が、これでは、外部のメールサーバからのメールを受信できなくなるので、access_db.txt ファイルの 25 行目あたりの <domain> is a domain or hostname where will is received e.g.以下に記載されているような書式で、

  1. e-sen.com RECIPIENT_DOMAIN と書き込んでおく。これで、e-sen.com ドメインをもつメールは、5 〜 6 で登録されたもの以外にも受信できるが、5 〜 6 で許可されたSMTPやクライアント以外は、e-sen.com ドメイン以外のメールを mmsmtp を中継して、転送できないという設定がされたことになります。
  2. ルータの設定を変更して、SMTP プロトコルを mmsmtp をインストールした PC に入れるように設定を変更します。
  3. 最後に、第三者中継の調査Network Abuse ClearingHouse で確認してください。
  4. これは、未確認ですが、SMTP 自体に、SMTP_AUTH などのセキュリティを施しておけば、上のテストで「不合格」の判定にもかかわらず、第三者中継を行わないようです。開発元に確かめたわけではなく、あくまで私のところでテストしたものなので、あしからず。
  5. 詳しい環境設定についてのマニュアルへ(要 Acrobat Reader)

New !

もっと便利なAntiVir for Mailを導入しました。機能的には上記のMailMonitor for SMTPと同様ですが、ワクチンのアップデータが自動的にできるところがミソ。参考にしたのは、kozupon.com さんの AntiVirMailgateセットアップ!SMTP監視のアンチウイルスソフトを使いたい〜AntiVir のページです。両者とも、SMTPにPostfix を使用した場合の設定方法について記述されています。ここでは、往年のSMTP、Sendmailを利用した設定方法について記述します。

ダウンロードしたのは、avlxmgt.tgz ver 2.0.1.11。

  1. $ tar zxvf avlxmgt.tgz  ←これを適当なディレクトリーで解凍します。
  2. $ cd antivir-mailgate-2.0.1.11 ←解凍されたディレクトリーの移動
  3. $ su ←いよいよインストールを開始しますので、スーパーユーザに変更。
  4. # ./avinstall.pl ←インストールプログラムを起動します。後は、画面に向かってでフォルトのままを回答していけばOK 

    Do you agree the LICENSE (y/n):y
    Enter the path of init directory

    (default is: /etc/rc.d): /etc/rc.d

    Enter the path where AntiVir MailGate binaries will be located
    (default is: /usr/sbin): /usr/sbin

    Enter the path where scan engine and virus definition file will be located
    (default is: /usr/lib/AntiVir): /usr/lib/AntiVir

    Enter the path where manual pages will be located (default is: ):
    The directory doesn't exists. Try again!
    Should I create it? (y/n): y

     ★ライセンスキーのファイル名を聞かれるが、この段階では設置していないのでEnterキーを押してスキップ。

    The automatic internet updater will check every hour
    if a new update is available. Default is yes.
    Install the automatic internet updater? (y/n): y

    これでインストールは終了。なお、再インストールも可能で、ライセンスキーを設置した後、同じことをやってみたら、途中のライセンスキーファイル名を聞かれなかった。だからライセンスキーを設定した後だとインストールが楽?

  1. 設定ファイルを編集。かなり詳細な設定を行えるようですが、あまりいじるとセキュリティ上問題に!最小限にすることがコツ?# vi /etc/avmailgate.conf

    ★以下はすべて#でコメントアウトされているので、これをはずして有効にしていく。

    User                          uucp
    Group                        uucp
    Postmaster                 postmaster
    MyHostName              hoge.e-sen.com
    SpoolDir                     /var/spool/avmailgate
    AntiVirDir                  /usr/lib/AntiVir
    TemporaryDir            /tmp
    SMTPBanner             "AntiVir MailGate"
    # PidDir /var/tmp ←コメントアウト
    PidDir                      /var/run/antivir ←インストールマニュアルによれば、デフォルトの/var/tmpはuucpというユーザーによって読み書きできる権限がなければならないとされているが、/var/tmpはroot所有であり、これをいじると何かと不便。そこで新しいディレクトリーを用意する。
    ListenAddress          0.0.0.0 port 25 ←ListenAddress localhost port antivirの記述がされているページもあるが、これだと25番ポートが閉じられたままで、運用が不可能でした。
    ForwardTo               /usr/lib/sendmail -oem -oi ← ForwardTo SMTP: localhost port smtp-backdoor とする記述もあるが、これだとうまく稼働しなかった。
    VirusAlertsUser        root

     

  2. PidDir の準備

    # mkdir -m 755 /var/run/antivir
    # chown uucp:uucp /var/run/antivir

  3. Sendmail の設定

    vi /etc/services ←新たなサービスポートを設定。なぜなら、avmailgate が 25 番ポートを使用するので、sendmail には別のポートを用意する。このファイルを開いたら、一番下に、smtp-backdoor     10025/tcp の記述を記載する。

    # vi /etc/sendmail.cf で sendmail の環境設定ファイルを開く。

    #O DaemonPortOptions=Name=MTA ←デフォルトではこう記載されているはずだが、Auth_smtp を導入してあったので、MTAの記述の他に、M=E,Port=25の記述があった。このport の記載を port=smtp-backdoor に変更する。port の記載がなければこれを加える。

  4. ライセンスキーの配置

    登録時のメールアドレス宛送られてきたhbedv.key を /usr/lib/AntiVir 以下に配置し、uucpのユーザー設定を行う。

    # mv hbedv.key /usr/lib/AntiVir/hbedv.key
    # chown uucp:uucp /usr/lib/AntiVir/hbedv.key

    なお、アップデートはインストローラーが自動で設定してくれていたが、手動で実行するときは、# /usr/lib/AntiVir/antivir --update -q と実行する。

  5. これでsendmailの再起動、avmailgateの起動をやれば良いはずだったが、うまく稼働してくれなかった。もう一度マニュアルを点検したら、
     /usr/lib/AntiVir/antivir が root の所有になっていなかった。それで、# chown uucp:uucp /usr/lib/AntiVir/antivir を実行。

 

  1. なお、アクセス設定は、/etc/avmailgate.aclに記述されている。デフォルトでは、インストールしたホストと同一のネットワークだけに限られ、一切の転送が不可能となっている。これを書き換えることによって、外部からのアクセスも可能となる。

    # vi /etc/avmailgate.acl

     # Access lists for AvMailGate

    # These hosts and/or doains are local.
    local: localhost
    local: e-sen.com hoge.e-sen.com

    # These hosts and networks are allowed relay.
    relay: 127.0.01/8 192.168.0.0/16 ←デフォルトで設定されたもの。
    relay: ppp.hogehoge-net.ne.jp ←転送を許すネットワークを記載する。

    これを不要に拡大するとスパムメールの発信基地にされてしまいますので、注意しましょう。最近当サイトでもこれが試みられています。

ウィルスが添付されたメールを発見すると、root 宛、以下のような警告メールが届き、メール本体は配信されなかった。

* * * * * * * * * * * * * * * AntiVir ALERT * * * * * * * * * * * * * * *
This version of AntiVir is licensed for private and non-commercial use.
AntiVir has detected the following in a mail addressed to you:
        Eicar-Test-Signatur virus ←これがテストに使用したウィルス
The mail was not delivered.
Mail-Info:
--8<--
 Message-Id: <20030517182638.5029477b.***@e-sen.com>
 From: webmaster <***@e-sen.com>←送信者のメールアドレス
 To: ***@e-sen.com ←宛先アドレス
 Date: Sat, 17 May 2003 18:26:38 +0900
 Subject: test of Virus
--8<----
AntiVir for UNIX
Copyright (C) 1994-2002 by H+BEDV Datentechnik GmbH. All rights reserved.
For more information see http://www.antivir.de/ or http://www.hbedv.com/

また、送信者には、以下のように「ウィルス発見」のメールが自動的に送信される。

* * * * * * * * * * * * * * * AntiVir ALERT * * * * * * * * * * * * * * *
This version of AntiVir is licensed for private and non-commercial use.
AntiVir has detected the following in a mail from your address:
        Eicar-Test-Signatur virus       
The mail was not delivered.
Please remove any potential malicious software from your computer before
sending a new mail with attachments.
Mail-Info:
--8<--
 Message-Id: <20030517182638.5029477b.***@e-sen.com>
 From: webmaster <***@e-sen.com>
 To: ***@e-sen.com
 Date: Sat, 17 May 2003 18:26:38 +0900
 Subject: test of Virus
--8<----
AntiVir for UNIX
Copyright (C) 1994-2002 by H+BEDV Datentechnik GmbH. All rights reserved.
For more information see http://www.antivir.de/ or http://www.hbedv.com/

なお、テストに使用したウィルスは、eicar で手にはいる。

▲ menu に戻る

Linuxのディレクトリー構造

Turbo Linux も 6.5 と 7 では大きくディレクトリー構造が変わっている。これは、6.5 がFSSTND (Filesystem Standard )に準拠していたのだが、7 では FHS( Filesystem Hierarchy  Standard )2.0 に準拠したためである。詳しくは、FHSを参照してください。また、サービス起動用のスクリプトは、「/etc/rc.d/init.d/」としていたが、「/etc/init.d」が、LSB ( Linux Standard Base )に対応するために、加えられた。(但し、ここには、スクリプト本体をおいても良いし、シンボリックリンク(Windowsのショートカット)をおいても良いとされている。)

一般的には、以下の通り変更された。(「必須」は必ず存在しなければならないが、「オプション」は存在しないものもある)

directory

 

解     説

/bin

(必須)

システム内のすべてのユーザーが実行するコマンドが配置される??

/etc

(必須)

システムの設定ファイルを配置する。ここには起動スクリプトも含まれる。

/home

(オプション)

一般ユーザーのディレクトリーを配置する。

/lib

(必須)

/libと/sbinに入れられているコマンドの実行時に必要とする共有ライブラリーを配置する。

/mnt

(必須)

システム管理者が、CD-ROMなどのファイルシステムを一時的仁摩うん落とす際に使う。

/opt

(必須)

システムのインストール後に追加インストールするアプリケーションを配置。たとえば商用アプリなど。

/root

(オプション)

root用のディレクトリー。「/」の場合もある。

/sbin

(必須)

shutdown や fdisk などのシステム管理用のコマンドを配置する。

/tmp

(必須)

一時的に利用するファイルやディレクトリーを配置する。OSの起動時に削除される。/var/tmpはOSの起動時にも削除されない。

/usr

(必須)

複数ユーザーが共有する文書、コマンド、ライブラリなどを配置するが、読み込み専用のものに限られる。

/var

(必須)

サーバ用のファイルや、ログファイルなど交信頻度の高いファイルを入れる。従来、Webサーバのファイルは/home/httpd/html 以下に入れられていたが、現在は、/var/www/html 以下に収納されている。

その結果、大きく変更されたのは、Turbo Linuxでは

/home/httpd/→/var/www/
/usr/doc/→/usr/share/doc/であり、
また/etc/init.d/の中身は、すべてシンボリックリンクが入れられているようであり、スクリプト本体は、従来通り、/etc/rc.d/init.d/に入れられている。だから、コマンドを実行する場合には、従来通り、/etc/rc.d/init.d/*** でも良いし、/etc/init.d/*** でも良くなった。

 

▲ menu に戻る

Turbo 設定ツール

Webminも良いけど、元々ディストリビューションに付属するツールを使わない手はない。Turbo linux にもいろいろなツールが備わっている。それをまとめてみた。使用方法は、設定ツールをコマンドラインから入力するのみ。

設定対象

設定ツール

設定項目

設定ファイル

X Window関連

turboxcfg

マウス・モニター・ビデオカードなど

/etc/X11/XF86Config

ユーザ管理

turbousercfg

ユーザ・グループの追加・削除など

/etc/passwd,/etc/shadow
/etc/group

サービスの起動・停止

turboservice

サービスのランレベルの設定

/etc/xinetd.d/や/etc/rc.d/以下

言語の選択

turbolangsel

言語環境の設定

 

時間

turbotimecfg

タイムサーバと時間帯の設定

/etc/local/time
/etc/ntp.conf

ネットワーク

turbonetcfg

DNS関連、ネットワークカード関連の設定

/etc/hosts,/etc/host.conf,
/etc/sysconfig/network,
/etc/resolv.conf,/,
/etc/sysconfig/network-scrips/ifcfg-ethなど

ファイルシステム関連

turbofscfg

ファイルシステムの設定、LILOの設定など

/etc/fstab,/etc/syscpnfig/filesysytems
/etc/lilo.config

ブートディスクの作成

tboot

ブートディスクの作成のみ

 

セキュリティレベルの設定

securityconfig

デーモンの起動とセキュアレベル

/etc/rc.d/init.d/以下

 

 

▲ menu に戻る

メールサーバーの機能

メールサーバと一口に言っても、機能的には、SMTP(MTA)、MDA、POPまたはIMAPの3つに、場合によっては、SMTPがMDAの機能を含んでいるため、SMTPとPOPまたはIMAPの2つに分けられる。メールクライアントから見るとわかりやすいと思うが、SMTP(MTA)、MDAはクライアントのメールを送信する側、Lan内部での送信やインターネットを通じて他のSMTPに送信する場合に分けられる。そしてPOPまたはIMAPはメールスプールからメールを取り出し、クライアントに届け?詭鯡椶魏未燭靴討い襦?修譴魍鞠暗?防修靴燭里?蕊修任△襦??覆?箸癲△海裡可未蠅吠?韻届辰鮨覆瓩詈??∈?陲??覆い茲Δ忙廚錣譴襦?

メールサーバ

メールクライアント

(MUA)

SMTP(MTA)

メールの送信

↓(MDA)

受信したメールのスプールへの振り分け

 

 

 

 

User1のメールスプール

POPサーバまたはIMAPサーバ

メールの受信

User2のメールスプール

 

 

 

 

  1. SMTP として有名な Sendmail は、Procimail という MDA を使用する。
  2. そのほかのSMTP としては、Postfix と Qmail がある。

▲ menu に戻る

 PHPの実行を快適にする

PHPは、apache のモジュールとして組み込まれて実行されるので、perl よりスピードが速い、なんて紹介があるが、perl だってモジュール化されて実行されているのだから、真偽のほどは?

それはともかく、少しでも早く実行できる環境を整えるのは、サーバ管理者として当然!!とまぁ、早速 PHP の実行をキャッシュ化してスピードアップをはかるツールを導入してみた。

2つのツールを紹介するが、いずれも PHP が正常に稼働していることが前提となる。なお、これらは、同様のツールで排他使用しかできないようです。どちらがよいのかわかりません。お好きな方をどうぞ。

【参考】 両方使用すれば更にスピードアップするかなと思って、両方インストールしたところ、

PHP Fatal error: [Zend Optimizer] Zend Optimizer 2.0.1 is incompatible with the ionCube PHP Accelerator 1.3.3r1 in Unknown on line 0

なんて、エラーを出し、apache が起動しなくなってしまった。こうなったら、どちらかをアンインストール( php.ini から削除 )するしかない。

  1. 一つは、Zend 社の Zend Optimizer 。ユーザ登録が必要ですが、Free で使用できます。ダウンロードしたのは、ZendOptimizer-2[1].0.1-Linux_gblic21-i386.tar.gz
    インストール手順は、

    # tar zxvf ZendOptimizer-2[1].0.1-Linux_gblic21-i386.tar.gz ←まずは解凍
    # cd  ZendOptimizer-2.0.1-Linux_gblic21-i386 ←新しくできたディレクトリーに移動
    # ./install.sh を実行すると、インストーローラが起動する

    最初は、どこにインストールするかを尋ねられるが、これはデフォルトのままOK
    つぎに、php.ini のありかを尋ねられるので、/etc/httpd と入力し、OK
    実行しているHTTPDはapacheですかって尋ねられるので、OK
    最後に、apaheのファイルはどこかって尋ねられるので、/etc/httpd と入力すれば、完了します。

  1. 次に紹介するのは、PHP Accelerator。現在のPHPバージョンは、4.1.2 でこれと同等あるいはそれ以前のlinux(intel) 版は、php_accelerator-1.3.3r1_php4.1.0_linux_i686_glibc2.1.3.tgz をダウンロード。
    インストール手順は、 

    # tar zxvf php_accelerator-1.3.3r1_php4.1.0_linux_i686_glibc2.1.3.tgz ←まずは解凍
    # mkdir /usr/local/php ←インストールディレクトリーを作成
    # mv php_accelerator-1.3.3r1_php4.1.0_linux_i686_glibc2.1.3 /usr/loca/php ←解凍してできたディレクトリーを丸ごとインストールディレクトリーに移動
    # vi /etc/php.ini ←php.iniファイルを編集

    どこの行でもかまわないので、zend_extension="/usr/local/php/ php_accelerator-1.3.3r1_php4.1.0_linux_i686_glibc2.1.3/php_accelerator_2.1.3.so" を挿入。

    保存して終了。

  1. いずれの場合も、apache を再起動します。

    # /etc/rc.d/init.d/httpd restart

  1. 最後に、 phpinfo.phpという名称のファイルを作ります。中身は以下の通り。

    <?
    echo phpinfo();
    ?>

これを apache のデフォルトディレクトリーに転送した後、これにブラウザでアクセスしてください。そのとき Zend 社のマークのところに、このインストールしたファイル名が出てくれば OK


▲ menu に戻る

役立つリンク集

Linuxコマンド集

Linuxコマンド逆引き集

Turbolinux ユーザーズフォーラム

小技集

OpenOffice.org 1.0

▲ menu に戻る