ドキュメント > 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からUTF-8 TeraTerm Pro with TTSSH2でFreeBSDにSSHログイン
- MacからターミナルでSSHログイン
ターミナルで使用するフォントは、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
