第2回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [hostからssh可能にしてbash入れてsudoを入れた]

公開日: : 最終更新日:2015/07/09 FreeBSD, unix, VirtualBox ,

第1回 Windows 8.1上で動くVirtualBoxでFreeBSD 10.1 を Guestで動かす。: [Installガイドっぽい何か] の続きです。

前回、VirtualBOX環境にGuestOSとしてFreeBSD 10.1をinstallして、shutdownのおさらいでsuコマンドでroot権限になってshutdownコマンドを使ってシステムの停止・再起動の方法をおさらいしました。

  • packageでsudoコマンドを入れるまで全てroot userでの作業となりますのでご了承下さい。
  • PC-UNIXのinstallや設定が未経験のタコ様(昔は初心者のことをタコと言ったのです)でもできるように書いたつもりですが、出来は微妙かもしれません。
  • 書いている本人に当たり前過ぎることを問題意識を持って解説するのはとても難しいのです。

システム標準のテキストエディタを変更したい人は変更する

viはBill Joy氏がUNIXの黎明期でラインエディタしかなかった時代に開発したテキストエディタで、本当はもっと高機能でinterfaceも強化したものも開発途中だったがテープドライブがぶっ飛んでおじゃんになったという話が有名です。

viは慣れれば使う人間が訓練されることによって生産性を引き出されるtoolですが、使い方がわからない人には地獄のエディタと言われています。ようは勉強・訓練しなきゃ使えないテキストエディタってことです。

個人的に、viでC言語やPHPやPythonなどのソースコードを編集できるようになる必要はないけれども、ちょっとした設定ファイルくらいはviを使ってできるようになっておくにこしたことはないです。

それでもどうしてもviは嫌、という人のためにchshコマンドやvisudoerコマンドなどから呼び出されるシステム標準のテキストエディタの変更方法を示します。

システム標準のテキストエディタはshellの環境変数で決まります。ですので、「ある程度鍛えられている人でないと使えないエディタ」のviから「まったく鍛えていない人でも使えるエディタ」のeeに変えたい場合、
sh,bashなどを使っている場合は”~/.profile”を変更します。

cshなどを使っている場合は”~/.cshrc”を変更します。

cshの場合rehashすること

何度もしつこいですが、設定ファイルを編集するくらいのviの使い方は、そう難しくないのでお勉強したほうが良いでしょう。

まあviの練習だけやるというのは結構飽きるしキツイものがあるので、よっぽど腰を据えてviに取り組みたい人以外は上記の本はお勧めしません。今から始めるならvimの本を買って最初からvimを覚えた方が良いかも。

/etc/motd を編集

起動時に毎回毎回公式の情報を参照しましょう、等言われます。それは正しいのですが毎回言われるのもアレなので/etc/motdを編集します。

“vi”(visual editor)が苦手な人は”ee”を使ってください。eeもviもFreeBSD 10.1 にデフォルトで入っています。

HostOS(windows)含むホームネットワークのマシンからsshで入れるようにする。

前回のInstallガイドっぽい何か : Windows 8.1上で動くVirtualBoxでFreeBSD 10.1 を Guestで動かす。その1[最低限編]の設定のままだとHost(windows)側からsshでGuestOS側に入ることができません。私の環境の場合ですと、

  • IPv4を使い、IPv6は使わず
  • ASUSのrouter(192.168.1.1)がdhcpで割り当ててくれるアドレスを適当に使用

ifconfigコマンド(情報を確認するだけなのでrootでなくてもOK)をやってみると、
ifconfig
みたいな感じになります。

一度仮想マシンの電源を落としましょう。root権限で”shutdown -p now”して電源を落としてください。

Oracle VM Virtualboxマネジャーから、[ファイル] => [環境設定] を選び、
ssh_vm_config_01
“ネットワーク”の項目を選択し、[ホストオンリーネットワーク(H)]のタブを選択し、”+”の画像アイコン部分を押します。
ssh_vm_config_03
ホストオンリーネットワークアダプターがもう一つ追加される筈。
ssh_vm_config_04
DHCPサーバをVirtualBOX側が仮想的に立ててくれてipを割り振ってくれる仕様にしたい場合、[DHCPサーバー(D)]タブをクリックします。
ssh_vm_config_05
DHCPに関する詳細設定を行います。
ssh_vm_config_07
今度はVirtualBOX全体の環境設定ではなく、仮想マシンの個別の環境設定をいじります。
ネットワーク項目の[ アダプター 2 ]タブを開いて、ネットワークアダプターを有効化というcheck boxにcheckを入れます。
ssh_vm_config_08
割り当て(A)を[ホストオンリーアダプター]に設定します。
ssh_vm_config_09
仮想マシンを起動してFreeBSDを立ち上げます。
rootの権限でbsdconfigコマンドを実行し、

Main Menuから”[A] Networking Management”を選びます。
ssh_vm_config_10
後から追加したem1の方を選びます。
ssh_vm_config_12
DHCPを有効化します。
ssh_vm_config_13
bsdconfigを終了したら、ifconfigコマンドでem1のIPv4アドレスに”192.168.*.*”が割り振られているか確認します。
ssh_vm_config_14

HostOS(今回はwindows)からsshを試みます。私の場合はWindows環境にcygwinを入れているので、cygwinのsshコマンドを使います。
鍵だのいろいろ作っていないので、怒られますがssh daemonが正常に起動していれば大丈夫な筈です。
ssh_vm_config_15
ここまでの設定を反映すると”/etc/rc.conf”は以下のようになる筈です。

sendmailを無効化する

参考: http://mimosa-pudica.net/freebsd-sendmail.html

FreeBSDではデフォルトでsendmailが有効になっているようです。あまりDesktop環境で使う人間が居ないということなのでしょうか…。
server用途で使うとしてもApache + MySQL + PHP環境の練習程度で、外部に公開するserver用途で使うことはないと思うので、sendmailの息の根を止めましょう。
(使うことになったらその時にまたやり直せばよいです。)
/etc/rc.conf に以下を追記します。

sendmailはFreeBSDにおいては、securityの報告書をroot宛にメールで送りつける役割も果たしているので、securityの報告書をファイル出力にする方式に切り替えます。ついでに毎日のセキュリティチェックも必要ないので止めます。
/etc/crontab を編集します。

/etc/defaults/periodic.conf を /etc/periodic.conf にcopyして編集します。

30~35行前後

130行前後

163~168行前後

200行前後

FreeBSD UpdateでCDやDVDに収録されているものよりも新しいシステムにする

より新しいものにしておくにこしたことはないです。

仮想consoleのvideo mode変更

これはHost側のterminalから実行するのではなく、直接VirtualBOXの仮想consoleから行ってください。

画面に収まりきれないときはpipe経由でlessコマンドに流し込めばよい。(“q”を押せばlessは終了する)

とりあえず332番に設定する場合は

これだとシステムを再起動すると元に戻ってしまうので、ずっとこの設定にするにはやはり”/etc/rc.conf”を編集する

bashの導入(pkgコマンド経由)と設定

whichコマンドでpkgが入っているか確認しよう。

まあデフォルトで入っているので、
pkg_01
と表示されるはずである。
“pkg install [入れたいコマンド名]”でも単に”pkg”だけでも初回起動の際には「実はまだ入ってないのでファイルを取ってきてinstallするか?」と訊かれる。
pkg_02
特に断る理由もないので”y”を入力してinstallする。

pkg_03
bashを入れるのに必要な別のpackageや、installに必要な総disk spaceなどが表示される。良ければ”y”を入力すればinstallされる。
install後に何か色々言われるのでその通りにする。

/etc/fstabを編集する。

再起動せずにすぐにmountしたい場合は

当たり前だが、bashをinstallしただけでは使えない。とりあえず現在のshellを何を使っているか確認する。
install_bash_01
defaultだとrootはcshで、一般userはshを使っている。
次に、bashのinstallされたpathを確認する。

“/usr/local/bin/bash”だと思うので、控えておく。
そしてchshコマンドで今現在のuserのshellを変更する。当然だがユーザー毎にやる必要がある。

システムデフォルトのテキストエディタ(変えていなければvi)が起動するのでShell:という項目を /usr/local/bin/bash と変えてやる。

あとは保存して終了すればよい。chsh: user information updated とか何とか標準出力に出る。chsh終了時に変更したuserのpasswordを尋ねられる場合もある。logoutしてloginすればshellが変更されている筈。

pkgコマンドでinstallされたpackageのupgrade

pkgコマンドでinstallされた全てのpackageが一発で全てupgradeされる。久しぶりに実行すると時間がかかる場合が多いので注意。

sudoの導入(pkgコマンド経由)と設定

今までinstallや設定変更は全てsuコマンドでroot権限になって行ってきましたが、sudoコマンドを導入することでwheelグループに加入済みの一般userのままでroot権限でないとできないことができるようになります。

FreeBSDではsudoコマンドがdefaultで入れられていないので、pkgコマンド経由でinstallします。
pkg_sudo_01

sudoを入れただけで一般userでsudoコマンドを実行しようとすると…怒られます。visudoコマンドを使って誰がどのようにsudoコマンドを使えるか示したファイルを編集しなければいけません。

pkg_sudo_02

pkgでsudoコマンドをinstallするとvisudoコマンドもinstallされます。

誰にどのようにsudoコマンドの使用を許可するかの設定ファイル”/usr/local/etc/sudoers”もinstallされるのですが、これはたとえroot権限であっても普通のテキストエディタで編集は許可されておらず、特殊なvisudoというプログラムによって編集しなければなりません。

“/usr/local/etc/sudoers”のバックアップを取ったうえで、visudoコマンドを実行します。

システム標準のテキストエディタを変更していなければvisudoコマンドがviを呼び出して編集することになります。
とりあえず、グループwheelに加入しているuserであればだれでもsudoコマンドを使用できるようにしたいので、下記のようにコメントアウトします。

passwordなしでsudoコマンドを実行できるようにも設定できますが、危険なので止めておきましょう。
早速wheelグループに加入しているuserでsudoコマンドでroot権限でzshをinstallしてみます。

suとsudoの注意点

suコマンドは引数をいろいろ指定すればroot以外のuser権限になることもできますが、ここでは引数なしで使用してrootになる用法のみを考えます。
unixを使ったことのある人には当たり前の話ですが、

一般userがsuでrootになる場合は、root userのpasswordを入力

su_sudo_01

visudoerで許可されている一般userがsudoコマンドでrootの権限でコマンドを実行する場合には当該するuserのpasswordを入力

su_sudo_02

次回予告その他

当初はportsを使うための環境整備も第二回に含めるつもりでしたが、ページがあまりに長くなりすぎたので、portsの環境整備は次回にします。
X-windowの環境構築もまだまだ残ってます。gcc5も入れてません。

第3回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [X-Windowを入れるついでにportsの環境整備]
に続きます。

その1 「Installガイドっぽい何か : Windows 8.1上で動くVirtualBoxでFreeBSD 10.1 を Guestで動かす。その1[最低限編] 」もお読みください。

参考文献・参考URL

広告エリア

入門vi 第6版 実践Vim 思考のスピードで編集しよう!

PC用四角形1

PC用四角形1

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PC用四角形1

PAGE TOP ↑