第2回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [hostからssh可能にしてbash入れてsudoを入れた]
公開日:
:
最終更新日:2015/07/09
FreeBSD, unix, VirtualBox install, インストール
第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や設定が未経験のタコ様(昔は初心者のことをタコと言ったのです)でもできるように書いたつもりですが、出来は微妙かもしれません。
- 書いている本人に当たり前過ぎることを問題意識を持って解説するのはとても難しいのです。
Contents
システム標準のテキストエディタを変更したい人は変更する
viはBill Joy氏がUNIXの黎明期でラインエディタしかなかった時代に開発したテキストエディタで、本当はもっと高機能でinterfaceも強化したものも開発途中だったがテープドライブがぶっ飛んでおじゃんになったという話が有名です。
viは慣れれば使う人間が訓練されることによって生産性を引き出されるtoolですが、使い方がわからない人には地獄のエディタと言われています。ようは勉強・訓練しなきゃ使えないテキストエディタってことです。
個人的に、viでC言語やPHPやPythonなどのソースコードを編集できるようになる必要はないけれども、ちょっとした設定ファイルくらいはviを使ってできるようになっておくにこしたことはないです。
それでもどうしてもviは嫌、という人のためにchshコマンドやvisudoerコマンドなどから呼び出されるシステム標準のテキストエディタの変更方法を示します。
システム標準のテキストエディタはshellの環境変数で決まります。ですので、「ある程度鍛えられている人でないと使えないエディタ」のviから「まったく鍛えていない人でも使えるエディタ」のeeに変えたい場合、
sh,bashなどを使っている場合は”~/.profile”を変更します。
1 |
EDITOR=ee; export EDITOR |
cshなどを使っている場合は”~/.cshrc”を変更します。
1 |
setenv EDITOR ee |
cshの場合rehashすること
1 |
# rehash |
何度もしつこいですが、設定ファイルを編集するくらいのviの使い方は、そう難しくないのでお勉強したほうが良いでしょう。
まあviの練習だけやるというのは結構飽きるしキツイものがあるので、よっぽど腰を据えてviに取り組みたい人以外は上記の本はお勧めしません。今から始めるならvimの本を買って最初からvimを覚えた方が良いかも。
/etc/motd を編集
起動時に毎回毎回公式の情報を参照しましょう、等言われます。それは正しいのですが毎回言われるのもアレなので/etc/motdを編集します。
1 2 3 |
# cp /etc/motd /etc/motd.backup # vi /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)をやってみると、
みたいな感じになります。
一度仮想マシンの電源を落としましょう。root権限で”shutdown -p now”して電源を落としてください。
1 |
# shutdown -p now |
Oracle VM Virtualboxマネジャーから、[ファイル] => [環境設定] を選び、
“ネットワーク”の項目を選択し、[ホストオンリーネットワーク(H)]のタブを選択し、”+”の画像アイコン部分を押します。
ホストオンリーネットワークアダプターがもう一つ追加される筈。
DHCPサーバをVirtualBOX側が仮想的に立ててくれてipを割り振ってくれる仕様にしたい場合、[DHCPサーバー(D)]タブをクリックします。
DHCPに関する詳細設定を行います。
今度はVirtualBOX全体の環境設定ではなく、仮想マシンの個別の環境設定をいじります。
ネットワーク項目の[ アダプター 2 ]タブを開いて、ネットワークアダプターを有効化というcheck boxにcheckを入れます。
割り当て(A)を[ホストオンリーアダプター]に設定します。
仮想マシンを起動してFreeBSDを立ち上げます。
rootの権限でbsdconfigコマンドを実行し、
1 |
# bsdconfig |
Main Menuから”[A] Networking Management”を選びます。
後から追加したem1の方を選びます。
DHCPを有効化します。
bsdconfigを終了したら、ifconfigコマンドでem1のIPv4アドレスに”192.168.*.*”が割り振られているか確認します。
HostOS(今回はwindows)からsshを試みます。私の場合はWindows環境にcygwinを入れているので、cygwinのsshコマンドを使います。
鍵だのいろいろ作っていないので、怒られますがssh daemonが正常に起動していれば大丈夫な筈です。
ここまでの設定を反映すると”/etc/rc.conf”は以下のようになる筈です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
hostname="hogehoge" keymap="jp.106.kbd" ifconfig_em0="DHCP" sshd_enable="YES" moused_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" ifconfig_em1="DHCP" defaultrouter="10.0.2.2" |
sendmailを無効化する
参考: http://mimosa-pudica.net/freebsd-sendmail.html
FreeBSDではデフォルトでsendmailが有効になっているようです。あまりDesktop環境で使う人間が居ないということなのでしょうか…。
server用途で使うとしてもApache + MySQL + PHP環境の練習程度で、外部に公開するserver用途で使うことはないと思うので、sendmailの息の根を止めましょう。
(使うことになったらその時にまたやり直せばよいです。)
/etc/rc.conf に以下を追記します。
1 2 3 4 5 6 7 8 9 10 11 |
# sendmail off sendmail_enable=NO sendmail_submit_enable=NO sendmail_outbound_enable=NO sendmail_msp_queue_enable=NO virecover_enable=NO |
sendmailはFreeBSDにおいては、securityの報告書をroot宛にメールで送りつける役割も果たしているので、securityの報告書をファイル出力にする方式に切り替えます。ついでに毎日のセキュリティチェックも必要ないので止めます。
/etc/crontab を編集します。
1 |
MAILTO="" |
/etc/defaults/periodic.conf を /etc/periodic.conf にcopyして編集します。
1 2 3 4 5 |
# cp /etc/defaults/periodic.conf /etc/periodic.conf # chmod 744 /etc/periodic.conf # vi /etc/periodic.conf |
30~35行前後
1 |
daily_output="/var/log/daily.log" # user or /file |
130行前後
1 2 3 4 5 6 7 8 9 |
# 450.status-security daily_status_security_enable="YES" # Security check # See also "Security options" below for more options daily_status_security_inline="NO" # Run inline ? daily_status_security_output="/var/log/security" # user or /file |
163~168行前後
1 |
weekly_output="/var/log/weekly.log" # user or /file |
200行前後
1 |
monthly_output="/var/log/monthly.log" # user or /file |
FreeBSD UpdateでCDやDVDに収録されているものよりも新しいシステムにする
より新しいものにしておくにこしたことはないです。
1 2 3 |
# freebsd-update fetch # freebsd-update install |
仮想consoleのvideo mode変更
これはHost側のterminalから実行するのではなく、直接VirtualBOXの仮想consoleから行ってください。
1 |
# vidcontrol -i mode |
画面に収まりきれないときはpipe経由でlessコマンドに流し込めばよい。(“q”を押せばlessは終了する)
1 |
# vidcontrol -i mode | less |
とりあえず332番に設定する場合は
1 |
# vidcontrol MODE_332 |
これだとシステムを再起動すると元に戻ってしまうので、ずっとこの設定にするにはやはり”/etc/rc.conf”を編集する
1 |
allscreens_flags="MODE_332" |
bashの導入(pkgコマンド経由)と設定
whichコマンドでpkgが入っているか確認しよう。
1 |
# which pkg |
まあデフォルトで入っているので、
と表示されるはずである。
“pkg install [入れたいコマンド名]”でも単に”pkg”だけでも初回起動の際には「実はまだ入ってないのでファイルを取ってきてinstallするか?」と訊かれる。
特に断る理由もないので”y”を入力してinstallする。
1 |
# pkg install bash |
bashを入れるのに必要な別のpackageや、installに必要な総disk spaceなどが表示される。良ければ”y”を入力すればinstallされる。
install後に何か色々言われるのでその通りにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Message for bash-4.3.39: ====================================================================== bash requires fdescfs(5) mounted on /dev/fd If you have not done it yet, please do the following: mount -t fdescfs fdesc /dev/fd To make it permanent, you need the following lines in /etc/fstab: fdesc /dev/fd fdescfs rw 0 0 ====================================================================== |
/etc/fstabを編集する。
1 |
fdesc /dev/fd fdescfs rw 0 0 |
再起動せずにすぐにmountしたい場合は
1 |
# mount -t fdescfs fdesc /dev/fd |
当たり前だが、bashをinstallしただけでは使えない。とりあえず現在のshellを何を使っているか確認する。
defaultだとrootはcshで、一般userはshを使っている。
次に、bashのinstallされたpathを確認する。
1 2 3 |
# which bash /usr/local/bin/bash |
“/usr/local/bin/bash”だと思うので、控えておく。
そしてchshコマンドで今現在のuserのshellを変更する。当然だがユーザー毎にやる必要がある。
1 |
# chsh |
システムデフォルトのテキストエディタ(変えていなければvi)が起動するのでShell:という項目を /usr/local/bin/bash と変えてやる。
1 |
Shell: /usr/local/bin/bash |
あとは保存して終了すればよい。chsh: user information updated とか何とか標準出力に出る。chsh終了時に変更したuserのpasswordを尋ねられる場合もある。logoutしてloginすればshellが変更されている筈。
pkgコマンドでinstallされたpackageのupgrade
pkgコマンドでinstallされた全てのpackageが一発で全てupgradeされる。久しぶりに実行すると時間がかかる場合が多いので注意。
1 |
# pkg upgrade |
sudoの導入(pkgコマンド経由)と設定
今までinstallや設定変更は全てsuコマンドでroot権限になって行ってきましたが、sudoコマンドを導入することでwheelグループに加入済みの一般userのままでroot権限でないとできないことができるようになります。
1 |
# pkg install sudo |
FreeBSDではsudoコマンドがdefaultで入れられていないので、pkgコマンド経由でinstallします。
sudoを入れただけで一般userでsudoコマンドを実行しようとすると…怒られます。visudoコマンドを使って誰がどのようにsudoコマンドを使えるか示したファイルを編集しなければいけません。
pkgでsudoコマンドをinstallするとvisudoコマンドもinstallされます。
誰にどのようにsudoコマンドの使用を許可するかの設定ファイル”/usr/local/etc/sudoers”もinstallされるのですが、これはたとえroot権限であっても普通のテキストエディタで編集は許可されておらず、特殊なvisudoというプログラムによって編集しなければなりません。
“/usr/local/etc/sudoers”のバックアップを取ったうえで、visudoコマンドを実行します。
1 2 3 |
# cp /usr/local/etc/sudoers /usr/local/etc/sudoers.backup # visudo |
システム標準のテキストエディタを変更していなければvisudoコマンドがviを呼び出して編集することになります。
とりあえず、グループwheelに加入しているuserであればだれでもsudoコマンドを使用できるようにしたいので、下記のようにコメントアウトします。
1 2 3 4 5 6 7 8 9 |
## Uncomment to allow members of group wheel to execute any command %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL |
passwordなしでsudoコマンドを実行できるようにも設定できますが、危険なので止めておきましょう。
早速wheelグループに加入しているuserでsudoコマンドでroot権限でzshをinstallしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
[imasara@hogehoge ~]$ sudo pkg install zsh Password: Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. The following 1 package(s) will be affected (of 0 checked): New packages to be INSTALLED: zsh: 5.0.8_2 The process will require 14 MiB more space. 4 MiB to be downloaded. Proceed with this action? [y/N]: y Fetching zsh-5.0.8_2.txz: 100% 4 MiB 200.9kB/s 00:19 Checking integrity... done (0 conflicting) [1/1] Installing zsh-5.0.8_2... [1/1] Extracting zsh-5.0.8_2: 100% |
suとsudoの注意点
suコマンドは引数をいろいろ指定すればroot以外のuser権限になることもできますが、ここでは引数なしで使用してrootになる用法のみを考えます。
unixを使ったことのある人には当たり前の話ですが、
一般userがsuでrootになる場合は、root userのpasswordを入力
visudoerで許可されている一般userがsudoコマンドでrootの権限でコマンドを実行する場合には当該するuserのpasswordを入力
次回予告その他
当初は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
- mimosa-pudica.net sendmail on FreeBSD の息の根を止める
- FreeBSDのsendmailの息の根を止めるには。
- FreeBSDセットアップメモ コンピュータ/ソフトウェア関連Tips
広告エリア
![]() |
![]() |
PC用四角形1
関連記事
-
-
第3回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [X-Windowを入れるついでにportsの環境整備]
VirtualBoxのGuestとして動かしている"FreeBSD 10.1"で、X-Windowの
-
-
第4回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [soundの有効化とfirefoxでの動画視聴:艦これはできません]
Linux emulator (CentOS6ベースの方)を入れて設定して、flashplayer
-
-
第1回 Windows 8.1上で動くVirtualBoxでFreeBSD 10.1 を Guestで動かす。 : [Installガイドっぽい何か]
FreeBSD上の仮想環境でWindows 8.1を動かすのではありません。その逆です。 Wind
-
-
第5回 Windows8.1上で動くVirtualBoxでFreeBSD 10.1をGuestで動かす : [リモートログインした非X環境での日本語環境を快適に]
UTF-8化して、vimを入れて、jman(日本語マニュアルページ)を入れます。 非X環境の日本語
-
-
ネ申はLinuxのNPAPI版flashを見捨てた。だがPC-Unixでも艦これをやりたいので試行錯誤し続ける
背景 2015年春の時点で配布している艦これ専用ブラウザを試してみた で、かつては何本かLinux