とりあえず最初は root でログインする。
自分が普段使うアカウントを作る。adduser コマンドを使い、指示に従って設定。
基本的にはデフォルトの設定を受け入れておけばよい。ただし、wheel グループ
に入れておくと、su で root になれるようになるので便利。root 権限を渡して
はいけないユーザを wheel グループに入れてしまわないように注意。
この後、基本的には ports collection を使って各種ソフトウェをインストール
していく。ports collection は、日々更新されているので、まずは最新の状態
にする。このために portsnap を用いる。
portsnap は以前は ports/sysutils/portsnap をインストールする必要があったが
現在はベースシステムに入っているので特に下準備はいらない。
以下のコマンドを実行する
# portsnap fetch && portsnap extract && portsnap update
これで、最新の ports tree を取得し、展開してくれる。
portsnap は毎日自動的に実行されるようにしておくと良い。
以下の行を /etc/crontab ファイルに追加する。追加する場所は
最後にしておけば無難。
# Update ports tree 0 3 * * * root portsnap cron && portsnap update && /usr/local/sbin/portversion -vL=
これで、毎晩 午前 3時に portsnap が起動する。
ただし、portsnap は引数に cron が指定された場合 1〜3600秒間
ランダムに sleep したあと更新作業を開始する。従って、マシン
ごとに起動時刻の設定を変える必要は無い。
ここで指定した portversion コマンドは、この時点ではまだシステムに
インストールされていない。2.4 でインストールする
portupgrade に含まれているコマンドである。
なお、更新結果は root 宛てにメイルされる。root 宛のメイルを自分が
読めるようにする設定は後述する。
ports collection は make コマンドを使ってインストールするのが基本だが
更新のことなどを考えると portupgrade コマンドを使うほうが便利。
そこで portupgrade コマンドをインストールする。
# cd /usr/ports/sysutils/portupgrade # make install clean # rehash
portupgrade の実行に必要な様々なツールも、自動的にインストールされる。
関連するツールも自動的にインストールしてくれるのも ports の便利な
ところの一つ。
make install clean ではなく、make install だけでも良い。
しかし、それだとインストール後に不要なオブジェクトファイルなどが残る。
そこで make clean も実行すると良い。make install と make clean を続けて
実行するため、ここでは make install clean。詳しくは make コマンド
のマニュアルなどを参照してね。
root のログインシェルは csh であるため、最後の rehash を実行しないと、
インストールしたばかりの portupgrade(に含まれる portinstall) を
コマンド実行パスから見つけることができない。これ以降、インストールした
ばかりのコマンドはすぐには使えなくても驚かない。あわてずに rehash を実行する。
なお、これ以降のコマンド実行例では rehash は省略する。
rehash を実行しても実行できない場合、コマンド実行パスがどうなっているかを確認す
る。環境変数 PATH を見ればよい。また pkg_info -L を使って、インストールした
ports がどこに何をインストールしたかを確認してみるのも役に立つ。
ここまで root でログインして作業してきている。しかし、これは基本的には危険。で
きるかぎり root ではログインせず、一般ユーザでログインするべき。そして必要なと
きだけ root 権限を取得して作業を行う。
これを容易に実現するためのツールが sudo。
# portinstall sudo
/usr/ports/security/sudo で make install clean しても良いが、便利なので ~portupgrade (に含まれている portinstall) を使う。
sudo では、ユーザ・グループごとに与えることができる特権を制御可能。とりあえず、
お手軽に wheel グループのメンバーは root になれるようにする。
# visudo
これで sudo の設定ファイルが編集可能になる。以下の行をコメントアウト(行頭の #
を消す)する。
%wheel ALL=(ALL) ALL
ログアウトし、一般ユーザでログインしなおす。id コマンドを実行して、自分が wheel
グループに入っているのを確認すること
% id uid=1001(toshi) gid=1001(toshi) groups=1001(toshi), 0(wheel)
上記で行頭の % は一般ユーザのプロンプトを示す。以下同様。
もしも wheel グループに入っていなかったら /etc/group ファイルを編集。この作業に
は root権限が必要なので、いったん一般ユーザからログアウトし、root でログインし
直す必要がある。
以下のように wheel で始まる行を編集する。
wheel:*:0:root,toshi
すでに、ほかのユーザが wheel グループに入っていた場合には注意。消してよいかどう
か良く考えること。インストールした直後に作業しているのであれば、他のユーザが入~っていることはありえない。しかし、後から追加したユーザに権限を付与するときなど
は注意。
ports collection にセキュリティホールなどが見つかった場合に通知してくれるツール
である portaudit をインストールする。
% sudo portinstall portaudit
早速 sudo を使って portinstall を実行する。ここで入力するパスワードは root のパ
スワードではなく、自分のパスワードであることに注意。
また、portaudit インストール直後に、画面の指示に従って portaudit を実行しておく
と良い。最新の ports collection になった状態で作業しているので、おそらく問題は
ないはず。
portaudit は、インストールされると自動的に、毎日実行されるようになる。
portaudit によって、インストール済みの port にセキュリティホールが見つかった場
合には以下のような表示が出るか、もしくはメイルが来る。これはmysql-server にセ
キュリティホールが見つかったときのものである。
Checking for packages with security vulnerabilities: Affected package: mysql-server-5.0.21 Type of problem: MySQL -- SQL-injection security vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/7f8cecea-f199-11da-8422-00123ffe8333.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately.
この場合、以下のように portupgrade を実行し port の更新を行う。
# portupgrade mysql-server-5.0.21
もちろん、実際に更新をする port は、セキュリティホールが見つかったものにしなけ
ればならない。
FreeBSD は標準では、午前3時にシステムの状況を監査し、その結果を root 宛てにメ
イルする。そのメイルが自分で受け取れるようにしておく。
% sudo vi /etc/mail/aliases
aliases ファイルには以下のような行を入れる。
root: foo@example.net
実際には foo@example.net のところには、自分のメイルアドレスを書く。
編集後以下のコマンドの実行を忘れない。
% sudo newaliases
正確ではない説明をすると、これによって aliases ファイルをコンパイルし、
sendmail (MTA) が読み込めるようにする。
マシンの時計がずれているとなにかと困るのであわせよう。ntp を使うのが王道。ntp
サーバは情報科学部内であれば ntp.is.kyusan-u.ac.jp を使えばよい。学外であれ
ば、インターネットマルチフィードの時刻情報サービスを使うのが良いんじゃないかな。
まずは起動時に ntpdate を使って時刻を使って合わせるようにしておこ
う。/etc/rc.conf に以下を追加。
ntpdate_enable="YES" ntpdate_hosts="-b ntp.is.kyusan-u.ac.jp"
学外の場合には ntpdate_hosts で指定するホストは、上記の情報等を見て適当にして
いるすること。-b はホスト名より前に指定すること。
起動時以外は ntpd を使って時刻を合わせる。/etc/rc.conf に以下を追加。
ntpd_enable="YES"
さらに、以下のような内容で /etc/ntp.conf を作成。
server ntp.is.kyusan-u.ac.jp
学外の場合には、指定するサーバを変えること。
FreeBSD 標準の less は日本語が表示できない。さすがにちょっと辛いので日本語対応
の less である jless をインストールする。
% sudo portinstall japanese/less
これで /usr/local/bin/jless が利用可能になる。less の代わりに jless を使うため
に以下のようなコマンドを実行しておくのも悪くない。
% sudo ln -s jless /usr/local/bin/less
コマンド実行パスで /usr/bin よりも前に /usr/local/bin があれば、/usr/bin/less
の代わりに /usr/local/bin/less が実行されるようになる。
ログインシェルとして zsh を使っている。sh 系の非常に強力なシェルである。お勧め。
% sudo portinstall zsh
その後、ログインシェルを変更する。
% chsh
Shell: の後を /usr/local/bin/zsh にする。
ssh で遠隔ログインしているときに、セッションが切れて悲しい思いをしたり、長時間
かかる作業を始めてしまってログアウトできずになって悲しい思いをすることがある。
このような事態を避けるのに非常に便利なツールが screen。
% sudo portinstall screen
詳しい使い方は自分で調べてね。
標準の vi は日本語を取り扱えない。一部のアプリは設定ファイル中に日本語を含むの
で、jvim3 を入れておくと便利。
% sudo portinstall japanese/jvim3
ただし、標準では jvim3 は X Window System 対応のコードが有効になっている。シス
テムに X を未インストールの場合、X のライブラリも同時にインストールされて大
変。この場合以下のようにして X を無効にしてインストールするとよい。
% env WITHOUT_X11=YES sudo portinstall japanese/jvim3
jvim3 インストール後は vi コマンドの代わりに jvim コマンドを実行すると、日本語
対応の vi が起動する。
FreeBSD はブート時にブートメニューが10秒間表示される。個人的には、3秒ぐらいで
十分だと思っている。以下の行を /boot/loader.conf に加えればよい。
autoboot_delay="3"
7秒ぐらいしか変わらないので、やらなくても良い