他のBSDユーザのためのOpenBSD管理入門
OpenBSDの設定や管理について、他のBSD系OSからみて特徴的と思われる点をまとめてみる。
ストレージ、ファイルシステム関連
ディスク関連の設定はインストール時に行われるが、運用開始後に変更や増設をする時に、以下のノウハウを把握しておくと有用:
- OpenBSDでは、fdiskパーティションとdisklabelパーティションが個別に存在する。
- fdiskパーティションとdisklabelパーティションの設定は連動しない。fdiskパーティションのOpenBSD領域とdisklabelパーティションのOpenBSD boundaryはセクタ単位で合わせておく必要がある(インストール時には自動で合わせられる。手動で合わせる場合はdisklabel -Eのbサブコマンドを使用する)。
- disklabel -Eコマンドによるパーティション操作は、OpenBSD boundaryの範囲内でのみ可能。
- ディスクパーティションは例えば /dev/sd0a のように命名される
- デバイス
- wd : IDE接続のハードディスク
- sd : SCSI/SATA/SD/USBメモリ など
- cd : CD/DVD などの光学メディア
- 0..9 : デバイスのユニット番号
- a..p : パーティション
- a:(通常はルート)
- b:swap
- c:メディア全体
- iからkくらいまで: 慣習的にFAT/NTFS/EXTFSなどで使われることが多い
- それ以外については特に決まっていない
- デバイス名は sd0a というような従来の命名法に加えて、
デバイス毎に生成される固有な値である DUID (disklabel unique ID) を使うこともできる。
- 表記としては、/dev/sd0a の替わりに fbab11c399a0565f.a などとなる。
- 生成されたDUIDはdisklabelコマンドやsysctl hw.disknamesの表示から確認できる。
- インストール時に生成される /etc/fstab ではDUID表記が用いられる。
ネットワーク
- ネットワークの基本的な設定は、/etc 内にある以下のファイルによって行われる。
- myname
- ホスト名のFQDN
- mygate
- デフォルトゲートウェイ
- hostname.if
- ネットワークインターフェースの設定
if の部分には設定対象となるem0などのインターフェース名を表記する。
VLANやブリッジ、pppoeなどの仮想インターフェースも全てこの方法で設定する。
基本的にはIPアドレスやネットマスクなど、
ifconfigコマンドの引数となるものを記述する。
無線LAN関連のSSIDや暗号化キーなどもifconfigで設定するため、記述はこのファイルで行う。wpa_supplicantのような外部プログラムは使用しない。
- resolv.conf
- 名前解決の設定
- hosts
- 既知のホスト名とIPアドレスの対応表
- pf.conf
- パケットのフィルタリング、アドレス変換、帯域制御などの設定
- 上記のファイルはインストール時に生成されるが、
その後設定変更等を行う場合はファイル編集後、以下の操作で変更を反映させる:
勿論、設定ファイルを編集後OSを再起動してもよい。
アカウント管理
- ユーザの管理にはuserコマンドを使用する。
- ユーザの追加はadduserコマンドを使用してインタラクティブに行うこともできる。
adduserを使った場合、/etc/skel以下にあるドットファイルが追加されたユーザのホームディレクトリにコピーされる。
- vipwコマンドも使用可。
- 他のユーザ権限でコマンドを実行したい場合は、sudoの代替実装であるdoasを使用する。
例えば以下のように/etc/doas.confを記述すると、wheelグループに属しているユーザに対してrootでの管理業務を許可することができる:
permit persist :wheel
persistはdoasの実行が許可された後、暫くはパスワード入力なしでdoasを再実行できるようにするためのオプション。
パッケージ管理
サードパーティのソフトウェアはports/packagesを用いて導入することができる。
- portsは、以下の手順で利用できる
- OpenBSDの配布サイトより ports.tar.gz をダウンロードし /usr 以下に展開
- cvsを用いてportsツリーを最新の状態に更新
- インストールしたいソフトウェアのディレクトリに移った後、make install を実行
ソフトウェアのビルドが終わると、/usr/ports/packages/arch名/all 以下にそのソフトウェアのパッケージが作成され、さらに pkg_add が行われる。
- ports/packagesを用いて導入したソフトウェアは、/usr/local以下に配置される。
- ただし、設定ファイルは/etc以下に配置される。
- パッケージの管理情報が/var/db/pkg以下に記録される。
- pkg_add実行時に、そのソフトウェアの設定などについての留意事項が表示される。これは /var/db/pkg/パッケージ名/+DISPLAY ファイルの内容である。
- インストール後の設定作業などは、/usr/local/share/doc/pkg-readmes以下に記述がある場合もあり、こちらも要参照。
デーモンやサービスの設定
- OpenBSDでは、各種設定ファイルはX Window関連、ports/packagesから導入したものを含め、すべて /etc 以下に配置される。
- /etc/examples 以下に設定ファイルのサンプルがある場合は、それを/etcにコピー、編集して使用することができる。
- デーモンやサービスの初期値は /etc/rc.conf に記述されている。このファイルをユーザが編集することは推奨されていない。
初期値を変更したい場合は /etc/rc.conf.local に変更内容を記述する。
- /etc/firmware 以下にはデバイス初期化に必要なファームウェアバイナリのうち、OSに同梱可能なものが置かれている(ファームウェアが必要なデバイスとしては、グラフィクス、無線LAN、カメラなどのデバイスが多い)。
- カーネルのパラメータを変更してパフォーマンスの改善を行うことができる。
アップデート作業
OpenBSDは概ね半年に一回バージョンアップが行われている。バージョンが更新されるとバージョン番号が0.1増える。
- 現行リリースのうち、i386, amd64, arm64プラットフォームについては、バイナリパッチが提供される。このパッチは syspatch ユティリティを用いて適用する。
- 修正の適用をバイナリパッチではなく、ソースレベルで行う場合は概ね以下の手順で行う:
- ソースを/usr/src以下に展開 (Xの場合は/usr/xenocara、portsの場合は/usr/ports)
- cvsを用いてソースを最新の状態に更新
- 修正情報の手順を参照して、ビルド・インストールを行う。
- OSのバージョンアップを行う場合はsysupgradeコマンドで行う。
なお、バージョン毎に固有のアップグレード手順が必要な場合があるので、FAQページの「Upgrading to X.X」のページを参照し、作業内容を確認する(X.Xはアップデート後のバージョン番号)。
情報源
- Online Manual Page (Web)
Again, PLEASE READ THE MANUAL PAGES.
Our developers have spent countless hours improving them so that they are clear and precise.
... /var/mail/root
- afterboot(8) - things to check after the first complete boot
- 公式: FAQ - FreeBSD Handbook や The NetBSD Guide に相当
更新履歴
- 2022/3/10 - 現行のOpenBSD 7.0に合わせ、修正。