気の向くままに辿るIT/ICT/IoT
システム開発

NetBSDとシステム管理

ホーム前へ次へ
NetBSDのインストールと運用/NetBSD/i386 6.1.x編

NetBSDとシステム管理

NetBSDとシステム管理

 NetBSDを含むUNIX系OSでは、全てをファイルとして扱うのでシステム管理・構成にあたっても、その基本はファイルです。

NetBSDのシステム構成ファイル

 NetBSDの構成・設定ファイルのほとんどは、/etc以下か、/usr/pkg以下に置かれ、システムをインストール後に標準パッケージ管理システムによって追加したものは、後者に置くのが慣例となっています。

 その必要はあまりないでしょうが、他から持ってきたソースをコンパイルするようなケースにおけるファイル置き場は、ユーザー任せとなりますが、/usr/localとするケースも多いようです。

 各種デーモン/サーバ/ラッパーなどは、/etc/rc.d以下に、追加をユーザーに委ねるものは、/usr/pkg/share/examples/rc.d以下にあるのでそこからコピーします。

 マシン起動時の設定は、/etc/rc.confに記述、常時起動させたいデーモンも同様でdaemon=yesの書式で行を追加、引数がある場合、次行にdaemon_flags="value"という書式で追記でき、個々に開始する場合、/etc/rc.confファイルに追加前なら/etc/rc.d/daemon {onestatus,onestart,onerestart,onereload,onestop}、記述後なら/etc/rc.d/daemon {status,start,restart,reload,stop}としますが、onereload/reloadについては(たぶん)対応していないものもあると思われます。

 それ以外のパッケージなどは、/usr/pkg/share/examples、また、/usr/share/examples、/usr/share/*/examples、/usr/pkg/*/examples、/usr/pkg/share/*/examplesなどにサンプルがある場合があります。

 ユーザー個別の設定ファイルは、ホームディレクトリの先頭がドットで始まる隠しディレクトリや隠しファイルとするケースが普通で、たいていの場合、パッケージのインストール時に作成されますが、パッケージによっては、前述のパスから共通ファイルやサンプルファイルをコピーする必要があったり、稀に自身で作成する必要があるものもあるかもしれません。

システム管理用GUIツール

 ファイルが基本と言ってもLinux/*BSD/PC-UNIIXなどのOSでは、各種デスクトップ環境を必要なら複数利用することもでき、GTK+/Qtなどを使ったデスクトップ環境の開発プロジェクトオリジナルやサードパーティ製のGUIツール、さらには、ブラウザを画面としたWebベースのGUIツールもあります。

 何れも優れていますが、例えば、NetBSDを含め、クロスプラットフォームで利用可能なWebベースのGUIツールWebminは、利用するウィンドウマネージャやデスクトップ環境に関わらず、一通りの設定をブラウザのみででき、基本性能もさることながら、機能をモジュールとして追加・拡張できるという点でも優れたツールと言え、GUIでできることは、できる限り、GUIで行ないたいという向きには、うってつけのグラフィカルツールと言えるでしょう。

システム管理用CLIツール

 GUI設定できるということは、もちろん、CLIツールもあって、ましてNetBSDは標準システムが軽量である一方で標準のツールだけでも、かなり充実しています。

マシン管理

netbsd $ sudo vi /etc/rc.conf
...
#rc_configured=NO
rc_configured=yes
...
netbsd $

 NetBSDをインストールした直後の起動時は、メニューでマルチユーザーモードを指定したとしてもシングルユーザーモードで起動、以後も同様なので初回起動時でもマルチユーザーモードで起動できる状況になってからでも/etc/rc.confファイルの[rc_configured=NO]を[rc_configured=YES]としてこれを変更しておきます。(先頭の#はコメント行を表わす。)

 /etc/rc.confファイルは、NetBSD起動時に読み込まれるので各種設定をしておくことで起動中の当該指定のデフォルト設定がなされた状態となります。

netbsd $ sudo reboot
netbsd $ sudo shutdown -r now
netbsd $ sudo halt
netbsd $ sudo poweroff
netbsd $ sudo shutdown -h now

 NetBSDでは、マシンの再起動は、rebootやshutdown -r nowコマンド、電源を落とすには、halt、poweroffやshutdown -h nowコマンドを使います。

ディスプレイ・キーボード・マウス管理

 NetBSDでは、ログインシェル上で利用できるwsconsctlコマンドを使うとディスプレイ・キーボード・マウスなどwsconsシステムドライバ変数の設定・表示を行なうことができます。

 Xウィンドウシステムを導入する場合には、これらは、/etc/X11/xorg.confファイルや/etc/X11/xorg.conf.d/以下のファイルで設定することができます。

ユーザー管理・グループ管理

 NetBSDでは、ユーザー管理には、useradd/userdel/usermodコマンド、グループ管理には、groupadd/groupdel/groupmodコマンドなどを使います。

 一般ユーザーに特権を与えるsudoコマンドの設定ファイル(/usr/pkg/etc/sudoers)は、基本的にvisudo、/etc/passwdファイル自体の編集は、基本的にvipwで行ないます。(共に要管理者権限)

パスワード管理

netbsd # passwd
...
netbsd # passwd user1
...
netbsd # exit
netbsd $ passwd
...
netbsd $

 NetBSDでは、パスワード管理には、passwdコマンドを使います。

 rootは、自身及び一般アカウントすべてのパスワードを変更することができ、一般ユーザーなど他のアカウントを変更する場合は、引数としてアカウント名を渡し、自身の場合はpasswdコマンドのみ実行、一般ユーザーは、自身のパスワードのみ変更することができます。

ログイン管理

 ログイン時は、rootや登録済みユーザー及びパスワードを使います。

 CLIのみならず、GUIのログインマネージャxdm、ログイン&ディスプレイマネージャlxdm、gdm、kdm...などを使うこともできますし、自動ログインすることもできます。

所有者管理・権限管理

 NetBSDでは、ファイルやディレクトリの所有者管理には、chownコマンド、権限管理には、umask、chmodやchgrpコマンドなどを使います。

パーティション管理

netbsd $ fdisk device
...
netbsd $ sudo fdisk -u device
...
netbsd $

 MBRパーティションテーブル形式のパーティション管理には、fdiskをコマンドを使います。

 ただし、GPTパーティションテーブル形式もそのフォーマットについては、fdiskコマンドを使います。

 標準出力に表示するだけならプライマリディスクwd0や1つめのSCSI・USB機器sd0といったデバイス指定のみで一般アカウントでも可、編集する場合には、管理者権限が必要で-uオプション付きでデバイスを指定し、fdiskを実行します。

 GPTパーティションテーブル形式のパーティション管理には、gptコマンド、補助的にdrvctl、dkctlコマンドを使います。

 執筆時点では、バイナリのリポジトリには、gpartもあります。

ディスクラベル管理

netbsd $ disklabel device
...
netbsd $ sudo disklabel -e device
...

 *BSDには、オリジナルのパーティションがあり、PC(PC/AT互換機・IBM PC・Intel PC)への対応、移植においては、MBRパーティションテーブル形式に収まるように考慮されており、MBR形式でいうところのパーティションを*BSDでは、『スライス』と呼び、『スライス』内にBSD本来のパーティションであるディスクラベルをおき、このディスクラベルは、disklabelコマンドで管理します。

 標準出力に表示するだけならwd0やsd0などデバイス指定のみで管理者権限は不要、編集するには、管理者権限で-eオプションを付けてデバイスを指定します。

netbsd $ mbrlabel device
...
netbsd $ sudo mbrlabel -rw device
...
netbsd $ sudo disklabel -e device
...
netbsd $

 NetBSDでは、パーティションの分割状況に変化があった場合、mbrlabelコマンドで再生成・編集することができるようになっています。

 標準出力に表示するだけならwd0やsd0などデバイス指定のみで管理者権限は不要、書き込むには、管理者として適切なオプション付きでデバイスを指定、編集するには、管理者権限でdisklabel -e デバイスを実行します。

マウント

netbsd $ ls /sbin/mount*
...
netbsd $

 NetBSDでは、各種プラットフォーム上のファイルシステムやISOディスクイメージ、NFS(NFSv1/NFSv2/NFSv3対応・NFSv4未対応)やSamba(smbfs)といった仮想ファイルシステムなどあらゆるファイルシステムをマウントすることができるようになっています。

 /sbin/mountの-tオプションでファイルシステムタイプtypeを指定するか、/sbin/mount_typeを使ってマウントしますが、前者を指定した場合も後者を実行します。

netbsd $ vnconfig vnd0 xxx.iso
netbsd $ mount -t cd9660 /dev/vnd0a /mnt
netbsd $ ls /mnt
...
netbsd $ umount /mnt
netbsd $ vnconfig -u vnd0
netbsd $

 NetBSDでは、ISOディスクイメージやスワップ領域などを擬似デバイスとしてマウントする仕組みがあり、これには、NetBSD 1.0で導入されたvnconfigを使って擬似デバイスを作成、この擬似デバイスを適切なファイルシステムタイプを指定することでmountすることができるようになっています。(OpenBSDも同様)

 vnconfigは、NetBSD 7.0でvndconfigに改名も互換性保持の為、vnconfigも有効。

マウント状況の確認

netbsd $ df -h
...
netbsd $ sudo umount -a
netbsd $ sudo mount -a
netbsd $

 NetBSDでは、マウント状況の確認には、dfコマンドを使います。

 自動マウントしたい場合には、/etc/fstabを編集、これらをすべてアンマウントするには、管理者権限でumount -a、全てをマウントするには、mount -aとします。

 自動マウントには、amdコマンドを使う方法もあります。

リソース使用状況の確認

netbsd $ top
...
netbsd $

 NetBSDでは、リソース使用状況の確認には、topコマンドを使います。

 他の多くのオペレーティングシステム同様、Conkyパッケージをインストールして常時確認することもできます。

デーモンの管理

netbsd $ ls /etc/rc.d
...
netbsd $

 NetBSDでは、デーモンは、通常、/etc/rc.d以下に置き、各デーモンは、start/restart/stop/reloadなどを行なうことができます。

 サンプルなどがあるパスは、/usr/pkg/share/examples/以下など冒頭説明の通りです。

プロセス・ジョブの実行と確認

 NetBSDでは、プロセスの確認には、ps、ジョブの確認には、jobsコマンドを使います。

netbsd $ crontab -e
...
0-59 * * * * ~/anyscript
...
netbsd $ sudo crontab -e
...
netbsd $

 ジョブの自動実行には、1度だけならatコマンド、繰り返し実行するならcrontabコマンド(-l:一覧、-e:編集)を使い、cronを実行します。

 cronは、一般アカウント、rootそれぞれに登録することができます。

 crontabは、スクリプトであり、その指定は、1つに付き、時/日/週/月/年/コマンドの6項目を一行で指定、コマンドはスクリプトでも可で必須、それ以外は、未設定は[*]アスタリスク、設定は、単一の数値、複数の場合、[,]カンマ区切り、範囲指定の場合、[-]ハイフンを挟んで指定します。

 例は、起動中、毎分、ホームディレクトリにあるanyscriptを実行する指定です。

ネットワーク管理

netbsd $ ls /etc/rc.d/network
/etc/rc.d/network
netbsd $

 ネットワークデーモンは、/etc/rc.d/networkであり、start/restart/stop...することができます。

netbsd $ ping -c 1 google.co.jp
...
netbsd $

 ネットワークの疎通確認には、pingを使うこともできますし、nmapパッケージをインストールしてネットワーククライアントを確認することもできます。

netbsd $ ifconfig
...
netbsd $ sudo ifconfig msk0 down
netbsd $ sudo ifconfig msk0 up
netbsd $

 ネットワークインタフェース管理には、有線・無線ともにifconfigコマンドを使います。

 ネットワークインタフェースを有効にすべく、upする場合には、inetやnetmaskなどを指定することもできます。

netbsd $ less /etc/hosts
...
IP_Address1 hostname1
IP_Address2 hostname2.domainname
...
netbsd $

 自ホストや他ホストのIPアドレスとホスト名.ドメイン名の関連付けには、/etc/hostsファイルを使うこともできますが、DHCP自動割り当て時、IPアドレスに変更があった場合に自動では対応できず、代わりにルータの機能を使うか、別途DNSサーバを使って静的に名前解決、可能ならDDNSを使って動的に行なうという手もあります。

netbsd $ less /etc/rc.conf
...
hostname=xxx.yyy
...
netbsd $

 尚、インストール時に指定することになる自ホストのホスト名.ドメイン名は、/etc/rc.confに[hostname=]の書式で書かれますが、これを書き換えることで変更することも可能です。

netbsd $ less /etc/rc.conf
...
#dhclient=yes
dhcpcd=yes
...
netbsd $

 IPアドレスの(自動)割り当てにDHCPを利用する場合、DHCPクライアントには、dhclientか、より新しいdhcpcdを利用する(/etc/rc.d/以下にある当該デーモンを起動する為、/etc/rc.confで=yesに設定する)ことができます。

netbsd $ less /etc/rc.conf
...
#ifconfig_msk0=dhcp
ifconfig_msk0=inet 192.168.0.3 netmask 255.255.255.0
...
netbsd $

 自ホストで使いたいネットワークインタフェース(例では、msk0)、IPアドレス(例では、192.168.0.3)などがある場合には、DHCPクライアントを無効にした(dhclient=no/dhcpcd=no)上で/etc/rc.confに追記設定しておくことで固定しておくこともできます。

netbsd $ sudo vi /etc/ifconfig_msk0
...
netbsd $

 ifconfig_msk0の挙動は、/etc/ifconfig_msk0ファイルとして設定・編集することができます。

ホーム前へ次へ