VirtualBoxのファイル共有機能でホストOSとゲストOS間のファイルを共有する【Kali Linux】

## 本内容
* ホストOSとゲストOSと間でファイル共有するための共有フォルダを作成します。
* Kali Linux上に作成されたsf_shareに、ユーザー権限のkaliアカウントでアクセスできるようにします。

## 0. 今回の環境
今回は以下で検証しています。

* ホストOS：Windows10 Pro
  * CPU:Intel Core i7(64bit)
  * memory:16 Gbyte
* ゲストOS：Kali Linux 2020.1
* VirtualBox v6.1.2(r135662)

## 1. ホストOSの設定

### 共有するフォルダの作成
ホストOSであるWindows10上で、事前に共有するフォルダを作成します。
渡しの場合は、以下のようなフォルダ構成で作成しました。
> C:\Users\\[ユーザー名]\Workspace\vmshare

また、このフォルダに"hello.txt"というテキストファイルを作成しておきました。これは、後にファイル共有できているかを確認するために用意しました。

### VirtualBoxでの設定
VirtualBoxの設定画面で、「共有フォルダ」を選択します。以下の図のように「＋」アイコンを押下して設定を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/65b99304-df99-3f07-ae8c-588c7b548b87.png)

設定は以下の様にします。
※フォルダーのパスは、上記で作成したフォルダのパスを指定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/ec2aacfe-c8ca-5127-7b2a-130a413f2727.png)

追加した状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/2d82e25f-5a2e-c7f4-1baa-db578946c49f.png)

これでホストOS側での準備は終わりです。
次にゲストOS側で作業します。

## 2. ゲストOSの設定

### Guest Additions CDイメージの挿入
画面上部のメニューバー「デバイス」> 「Guest Additions CDイメージの挿入」を選択します。
少しするとデスクトップにCDのアイコンが表示されますので、ダブルクリックなどで開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/37d845d1-bc98-3d9f-3931-a138a5bed165.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/906a555d-ab87-4cdf-e446-6bb9a094214c.png)

### CD内のファイルをデスクトップにコピー
ダブルクリックなどでCDの中身を開くと、複数のファイルやフォルダが存在していますので、これをKali上の任意のフォルダにコピーします。今回はデスクトップ上に"vshare"というフォルダを作成してコピーしました。

### インストール用のスクリプトを実行する。
Terminalを起動し、vshareフォルダに移動します。その後、インストール用スクリプトに実行権限を与えてから実行します。

> kali@kali:~$ cd Desktop/vshare/
> kali@kali:~/Desktop/vshare$ chmod +x VBoxLinuxAdditions.run 
> kali@kali:~/Desktop/vshare$ sudo sh ./VBoxLinuxAdditions.run

※途中で継続を確認する旨の質問が出ますので、"yes"として継続してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/0b2451f3-c207-0db0-de75-c95a4cf02428.png)

終わったら一旦再起動します。

### Terminal上で共有フォルダの作成を確認する。
共有フォルダ"sf_vmshere"が作成されたかを確認します。このフォルダは現時点でroot権限でないと読み書きできないようなっているため、一旦Terminal上からアクセスします。

> kali@kali:~$ cd /media
> kali@kali:/media$ ls -l
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/169eec5d-cbe8-ddcc-c2c9-49902925074b.png)

sf_vmshareの中身については、sudoをつけて確認します。
> kali@kali:/media$ sudo ls -l sf_vmshare/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/0431148c-d47b-1d73-8dd6-45d2aa46eba7.png)

Kali Linux上から、フォルダとファイルを確認できました。

### GUI上からsf_vmshareにアクセスする。
現状だとユーザー権限のkaliでは、直接ファイラーからsf_vmshareにアクセスできません。なので、これを解決します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/e835e6b0-79f2-559c-f50c-4be138e946c3.png)

次のコマンドを実行して、指定したユーザーをこのフォルダの属するvboxsfグループに追加します。今回はkaliというユーザーを追加します。

> kali@kali:/media$ sudo gpasswd --add kali vboxsf
> Adding user kali to group vboxsf

再起動後、共有フォルダにアクセスできるか確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462467/948def49-7630-4ca2-3e4b-86419ea815e4.png)

無事にできました。

## 3. 最後に

Kaliは昨年の12月以降、root権限をデフォルトで保有するrootアカウントを廃止し、ユーザー権限しかもたないkaliアカウントをデフォルトとしました。そのため、sf_vmshareへのアクセスがちょっと大変になったと感じたので記事にしました。
お役立ちになると幸いです。