ドキュメント > FreeBSDの地ならし

FreeBSDの地ならし

これからの作業はすべてシェルで行うので、まったく触れたことのない人は入門書を読んで基礎知識を得ましょう。オープンソースはタダですが、実は書籍代がけっこうかかったりします。Unix入門書では『新The UNIX Super Text』の評判がよいです。若干気合いの入りすぎた書籍なので、全部理解しようとせずにさくさく読んでみましょう。ネットで情報収集するのも大事ですが、きちんと体系的にまとまった書籍を一冊手元に置いておくと、ずいぶん学習速度が上がると思います。

ログイン

FreeBSDを起動するとログインプロンプトが表示されるので、rootユーザでログインします。rootユーザは全権限を持ち、システムの破壊も簡単にできてしまいます。なので、root権限がなければできない必要最小限の設定だけを済ませて、以降は通常ユーザ権限で作業します。

login: root
password:

ログインすると次のような文字が流れてきます。セキュリティ勧告に気をつけて、困ったらハンドブックを読みましょう、などと書いてあります。この文言は/etc/motdの内容なので、毎回見るのが邪魔ならばmotdを編集して消してしまいましょう。man manもぜひ試してください。manは英語のマニュアルですが、調べものには一番手っ取り早いです。

FreeBSD 7.0-RELEASE (GENERIC) #0: Sun Feb 24 19:59:52 UTC 2008

Welcome to FreeBSD!

Before seeking technical support, please use the following resources:

o  Security advisories and updated errata information for all releases are
   at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
   for your release first as it's updated frequently.

o  The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
   along with the mailing lists, can be searched by going to
   http://www.FreeBSD.org/search/.  If the doc distribution has
   been installed, they're also available formatted in /usr/share/doc.

If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the questions@FreeBSD.org mailing list.  If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
manual page.  If you are not familiar with manual pages, type `man man'.

You may also use sysinstall(8) to re-enter the installation and
configuration utility.  Edit /etc/motd to change this login announcement.

#

freebsd-update

FreeBSDに脆弱性が見つかり解決されると、セキュリティ勧告(SA)が公表されます。freebsd-announceメーリングリストに登録しておくと、SA公表後すぐにメールが届くので便利です。

FreeBSDのインストール直後と、SAが公表されたときは、すみやかにfreebsd-updateコマンドでOSをアップデートします。

# freebsd-update fetch install

freebsd-updateコマンドではなくて、cvsupコマンドでソースコードを最新リリースツリーに同期してFreeBSD全部をmakeするmake worldもあります。苦難を乗り越えるのが好きな人はこちらの方法がおすすめです。

portsのインストール

FreeBSDを使う最大の理由とも言える、portsをインストールします。portsがあるおかげで、ApacheやVimなどのツールを簡単にソースコードからビルドして使用できます。

portsnapコマンドを実行すると、50MB程度のportsがダウンロードされ、/usr/portsに展開されます。初回のみextractが必要ですが、次回以降はportsnap fetch updateでよいです。

portsは日々成長しています。ときどきportsツリーを最新版に更新しましょう。

# portsnap fetch extract update

ハンドブックのPorts Collectionの利用ではcvsupを使った手順が解説されていますが、portsnapコマンドのほうが簡単でスマートだと思います。

sudoのインストール

最初にportsでsudoコマンドをインストールします。このコマンドは、通常ユーザに管理権限を委譲するためのコマンドです。基本的にroot権限を使うのと同じことですが、危険な作業はパスワードを入力しなければできないので、イージーミスが減ります。また、SSHでrootログインを許可しなくてすむので、セキュリティも高まります。

# cd /usr/ports/security/sudo
# make install clean

インストール時にオプションの設定を聞かれますが、デフォルトのままで大丈夫です。sudoの設定ファイルはvisudoコマンドで編集できます。設定ファイルの実体は/usr/local/etc/sudoresです。エディタviの使い方の説明はここではしませんが、書籍では『入門vi第6版』がおすすめです。ネットで探せば、viの解説サイトもたくさんあります。

# rehash
# visudo

設定ファイルの以下の行を見つけて、先頭のコメント(#記号)を外します。

# Uncomment to allow people in group wheel to run all commands
%wheel  ALL=(ALL) ALL

これで、wheelグループのユーザにsudoコマンドで管理権限を委譲できるようになりました。さっそくrootユーザをログアウトさせて、wheelグループのユーザでログインしましょう。管理コマンドを実行するときは次のようにします。

> sudo portsnap fetch update
Password:

パスワードは、rootユーザではなく、ログインユーザのものを使用するので注意してください。

root宛のメールをメインユーザに転送する

FreeBSDは、システム情報をrootにメールで報告します。ただし、rootユーザは基本的に使わないものなので、wheelグループのユーザに転送しておきます。こうすることで、一切rootでログインせずにFreeBSDを使えるようになります。

なお、なんらかの設定ファイルを編集するときは、必ずオリジナルをコピーして使いましょう。これはどんなときにも実践してください。

> cd /etc/mail
> sudo cp -p aliases aliases.orig
> sudo vi aliases

aliasesファイルの次の行をメールを転送したいユーザ名またはメールアドレスに変更します。

# root: me@my.domain
root: foo

newaliasesコマンドを実行して、aliasesファイルの変更を適用します。

> sudo newaliases
/etc/mail/aliases: 28 aliases, longest 10 bytes, 282 bytes total

動作を確認するためにrootユーザ宛にメールを送ってみます。ドットだけを入力すると最終行になります。

> mail root
Subject: test
hello.
.
EOT

mailコマンドでメールをチェックして該当ユーザに届いていれば成功です。

make.confファイル

/etc/make.confファイルは、portsでソースコードをmakeするときなどのオプションを指定するためのファイルです。

portsで何かをインストールするとき、依存プログラムとしてGUIのX.Org関連ファイルがインストールされてしまう場合があります。GUIを使わない方針のWebサーバでは無駄である上に、makeする時間がとてつもなく長くなってしまう可能性があります。

そこで、あらかじめX.Org関連のファイルがインストールされないように、make.confファイルを作成して次の1行を加えておきます。

WITHOUT_X11=true

プロンプトのカスタマイズ

通常ユーザでログインすると、カーソルの前に>記号が表示されます。これをプロンプトと言います。lsコマンドで、ホームディレクトリにあるファイルを表示してみましょう。

なお、私はcsh派なのでtcshのみの説明をしますが、もちろんbashでも同等のことができます。

> ls -la
drwxr-xr-x  2 bob   staff  512 May  3 10:45 .
drwxr-xr-x  3 root  wheel  512 May  3 10:45 ..
-rw-r--r--  1 bob   staff  751 May  3 10:45 .cshrc
-rw-r--r--  1 bob   staff  248 May  3 10:45 .login
-rw-r--r--  1 bob   staff  158 May  3 10:45 .login_conf
-rw-------  1 bob   staff  373 May  3 10:45 .mail_aliases
-rw-r--r--  1 bob   staff  331 May  3 10:45 .mailrc
-rw-r--r--  1 bob   staff  766 May  3 10:45 .profile
-rw-------  1 bob   staff  276 May  3 10:45 .rhosts
-rw-r--r--  1 bob   staff  975 May  3 10:45 .shrc

ドットで始まるファイルは、設定ファイルです。.cshrcファイルで、プロンプトを設定することができます。

.cshrcファイルに以下のように太字の部分を付け加えて、sourceコマンドで設定ファイルを再読み込みすると、とても見やすいプロンプトになります。

> cp -p .cshrc .cshrc.orig
> vi .cshrc

# .cshrcファイルの一部
if ($?prompt) then
        # An interactive shell -- set some stuff up
        set prompt = "%n@%m:%~%# "
        set filec
        set history = 100
        set savehist = 100
        set mail = (/var/mail/$USER)
        if ( $?tcsh ) then
                bindkey "^W" backward-delete-word
                bindkey -k up history-search-backward
                bindkey -k down history-search-forward
        endif
endif

編集が終わったらsourceコマンドを実行します。

> source .cshrc
bob@yourhost:~>

プロンプトで使用できる主要な変数を掲載しておきます。全変数はman cshのpromptの項を参照してください。

変数 意味
%/ 現在のディレクトリ
%~ 現在のディレクトリ(略記版)
%M ホスト名
%m ホスト名(略記版)
%B...%b ボールド
%p 時間表示(12時間表記)
%P 時間表示(24時間表記)
%n ユーザ名

FreeBSDの日本語環境について

FreeBSDのコンソールで日本語を使うのは、あまりおすすめできません。日本語フォント、インプットメソッド、漢字コンソールkonをインストールすると実現できますが、使い勝手がよいとは言えないからです。

フォントの美しさとインプットメソッドの扱いやすさは商用OSのほうが上です。こういう部分は商用OSに任せてしまったほうが快適なので、Windowsなどの外部クライアントPCからターミナルでFreeBSDにログインするのがよいと思います。

ターミナルで使用するフォントは、WindowsではMSゴシック、MacではOsaka等幅が向いています。

FreeBSD単体で日本語を使いたい場合は、X.Orgとウィンドウマネージャをインストールして、そこにkterm、uim-anthyなどのインプットメソッド、MOTOYAの試用版フォントなどを入れます。ウィンドウマネージャはIceWMが軽快でおすすめです。

それぞれのツールはportsの以下のディレクトリにあります。ただし、すべてを適切に設定するのはけっこう骨の折れる作業です。

ツール 場所
X.Org x11/xorg
IceWM x11-wm/icewm
kterm japanese/kterm
uim-anthy japanese/uim-anthy
MOTOYAフォント japanese/motoya-ttffonts

lsコマンドのカラー表示

lsコマンドの出力は単色で表示されますが、カラー表示にすると操作性が向上します。

> ls -G

TeraTermでカラー表示するには、環境変数$TERMにxterm-colorを代入します。

> setenv $TERM xterm-color
> ls -G

lsコマンドは多くのオプションが用意されていて、出力をカスタマイズできます。man lsを読んでいろいろと試してみましょう。私はls -AFGをlsのエイリアスにしています。.cshrcファイルへの記述は次のようにします。

alias   ls      ls -AFG
setenv  TERM    xterm-color