Virtual Box(Ubuntu Guest、Windows Host)の下の共有フォルダーのファイル許可の問題


103

Virtual BoxでUbuntuを使用していますが、ホスト(Windows)とVM(Ubuntu)の間で共有されるフォルダーがあります。Ubuntuの共有フォルダーにあるファイルを開くと、その所有者がrootに設定されているため変更できません。

所有権を自分に変更するにはどうすればよいですか?

出力はls -l次のとおりです。

-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt

出力dfは次のとおりです。

m@m-Linux:~/Desktop/vbox_shared$ df
Filesystem   1K-blocks      Used Available Use% Mounted on
/dev/sda1     29640780  10209652  17925440  37% /
none            509032       260    508772   1% /dev
none            513252       168    513084   1% /dev/shm
none            513252        88    513164   1% /var/run
none            513252         0    513252   0% /var/lock
none            513252         0    513252   0% /lib/init/rw
Ubuntu       214153212  31893804 182259408  15% /media/sf_Ubuntu
/dev/sr0         53914     53914         0 100% /media/VBOXADDITIONS_4.2.0_80737
Ubuntu       214153212  31893804 182259408  15% /home/m/Desktop/vbox_shared

VMのオプションは自動マウントであり、readolyはチェックされません。

を使用しようとしました/media/sf_Ubuntuが、許可エラーが発生しました:

m@m-Linux:/media$ ls -l 
total 10
drwxrwx--- 1 root vboxsf 4096 2012-10-23 15:35 sf_Ubuntu
drwxrwx--- 2 root vboxsf 4096 2012-10-21 23:41 sf_vbox_shared
dr-xr-xr-x 6 m    m      2048 2012-09-13 07:19 VBOXADDITIONS_4.2.0_80737
m@m-Linux:/media$ cd sf_Ubuntu/
bash: cd: sf_Ubuntu/: Permission denied
m@m-Linux:/media$ cd sf_vbox_shared/
bash: cd: sf_vbox_shared/: Permission denied

私はグループにいることに注意してくださいvboxsf

m@m-Linux:~$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)

共有フォルダーをどのようにマウントしましたか?VirtualBoxのゲストユーティリティ(つまり、/ media / sf_something)によって自動マウントされるようにしましたか、またはmountコマンドを使用して手動でマウントしましたか?
EightBitTony

また、WindowsのVirtualBoxで共有を構成した方法を説明できますか?共有には、読み取り専用、自動マウント、および永続の3つのオプションがあり、これらのオプションにチェックを入れています。
EightBitTony

コメントではなく、質問の更新を投稿してください。dfファイルシステムを手動でマウントするために使用したコマンドと出力を含めてください。
EightBitTony

ありがとう-あなたは/ media / sf_Ubuntuファイルシステムがあるのがわかるでしょう。これが共有フォルダです。手動でマウントする必要はありません。/ home / m / Desktopをアンマウントし、以下の私の答えに従って動作する/ media / sf_Ubuntuを使用することをお勧めします。
EightBitTony

@Tony:このフォルダーにアクセスできません。詳細を追加する元の質問を参照してください
-user654019

回答:


159

現在、ファイルにアクセスするための通常の方法は、VirtualBoxが共有フォルダーを自動マウントできるようにし(これがの下に表示されます/media/sf_directory_name)、通常のUbuntuユーザーをvboxsfグループに(rootとして#)追加することです。

# usermod -aG vboxsf <youruser>

デフォルトでは、手動操作なしで、マウントは次のようになります。

drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>

そのため、vboxsfグループにはフルアクセスがあります。そのグループにユーザーを追加することにより、フルアクセスが可能になります。そのため、アクセス許可(Windowsホストでは意味がありません)の変更について心配する必要はありません。自分にアクセス権を与えるだけです。

この特定の場合、これは自動マウントされた共有フォルダーです。

Ubuntu               214153212  31893804 182259408  15% /media/sf_Ubuntu

そして、ローカルユーザーをvboxsfグループに入れて、共有フォルダーへのアクセスに使用する必要があるのはそのディレクトリです。ユーザーのホームディレクトリの下に「より良い」リンクが必要な場合は、常にシンボリックリンクを作成できます。

ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared

これらの変更を有効にするには、VMを再起動する必要があります

共有フォルダーを手動でマウントする場合は、mountコマンドの関連オプションを使用して、正しい所有権を持つフォルダーを設定する必要があります(つまり、gid、uid、およびumaskオプションmount)。これは、ホストOSがLinuxと同じ許可システムをサポートしていないため、VirtualBoxがファイルの所有者を知る方法がないためです。

ただし、共有フォルダーを自動マウントするように構成することを強くお勧めします(VirtualBox自体の共有フォルダー構成の設定です)。


誤解を避けるために、とにかく通常の方法でマウントされている場合、そのファイルシステムのアクセス権を通常どおり変更できるとは思わない。

tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ sudo chown tony tst.txt
[sudo] password for tony: 
tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ 

2
これを試してみると、ユーザーがグループ内にいるというメッセージが表示されますが、共有フォルダーのファイルを変更しようとすると、保存するときにエラーが発生します。エラー:ファイルを保存できませんでした/home/m/Desktop/vbox_shared/test.tst予期しないエラー:一時ファイルの名前変更エラー:テキストファイルがビジーです。
user654019

これは別の問題であり、許可による可能性はありません。新しいファイルを作成したり、別のファイルを変更したりできますか。ちょっと待って-/ home / m / Desktop / vbox_shared?共有フォルダーを手動でマウントしましたか?これはデフォルトのパスではありません。
EightBitTony

システムをチェックすると、ファイルを作成または削除する権限のみがあり、読み取り/書き込み権限はありません。どうすれば自分に与えることができますか?
user654019

9
有効にするには再起動が必要と思われます。
エリックワン

3
あなたはこの答えにビールに値する!!! これに出会うまで、私はこれをまったく動作させることができませんでした。これがこれ以上ないことは信じられません。二度以上賛成できたらいいのに!
-Tensigh

3

Win-Ubuntu共有フォルダーで同じ問題が発生しましたが、それを解決する方法は、ユーザーをvboxsfグループに追加し、/ etc / groupファイルを編集することでした。これがあなたのために働くことを願っています。ここで、ファイルの編集方法の短いスキームを見つけることができます

(edit /etc/group)
...
...
...
pulse:x:119:
pulse-access:x:120:
utempter:x:121:
rtkit:x:122:
saned:x:123:
openquake:x:1000:
sambashare:x:124:openquake,luisa
vboxsf:x:999:openquake,luisa   ##This is the line I add my user
postgres:x:125:
rabbitmq:x:126:
celery:x:500:
luisa:x:1001:

ルイサ。


2
/ etc / groupを直接編集しないでくださいusermod -aG <group> <user>。このジョブに適したツールを使用してください(この場合)。
raimue

これが推奨される主な理由は、それだけではありませんが、/ etc / groupなどのファイルを誤って手動で更新すると、DBが無効になり、本質的にロックアウトされる可能性があるためです。
スペンサーウィリアムズ

2

同じ問題が発生し、VirtualBox Guest Additionsの最新バージョンのインストールを解決しました。私の場合、4.3.8から4.3.10にアップグレードしていました。

インストールが終了すると、/ media / sf_nameフォルダーにはグループ所有者としての「ルート」はなくなりましたが、「vboxsf」は正しいものになりました。


1

sudoを試しましたか?

$sudo chown username filename

これがVirtualBoxの共有フォルダーで機能するとは思わない。
EightBitTony

sudoはどこでも動作します!:P リンク
-Extn3389

12
あなたが真面目かどうかはわかりませんが、ユーモアをあげます マウントされた共有フォルダーはvboxfsタイプファイルシステムであり、を尊重しませんchown
EightBitTony

すみません、これがうまくいくと思っただけです。
Extn3389

1
はい。ただし、所有者は変更されませんでした。ターミナルでファイルのtisコマンドを実行し、ファイルの所有者を見ると、それはまだrootに属します。
user654019

1

マウントコマンドのオプションを制御する余裕がある場合(たとえば、手動でマウントする場合やを/etc/fstab使用する-o uid=771場合)、マウントコマンドのオプションを使用できます。

のエントリは次の/etc/fstabようになります

scanresults    /data/scanresults    vboxsf    uid=771    0 0

1

非ルートLinuxユーザーのUbuntuゲストからWindowsホスト上の共有フォルダーへの完全な読み取り、書き込みアクセスを有効にします

この手順により、Linuxゲスト端末からWindowsホストマシン上の特定のディレクトリにアクセスできます。この例では、OVBパースペクティブからの共有の名前はvshare(デフォルト)になり、Windows OS(ホストOS)への完全なdirパスは "C:\ var \"になり、ファイルへの完全なパスはゲストvmからのアクセスは「/ vagrant」になり、最終的に完全なrea / writeアクセスを有効にするユーザーの名前は「you」になります。

 # how-to add a shared folder on the host
 VBoxManage sharedfolder add "host-name" -name "vshare" -hostpath "C:\var" -automount

1. Guest Additionsの前提条件をインストールする

次のコマンドを発行して、Guest Additionsの前提条件をインストールします。

 sudo apt-get install -y build-essential make gcc  linux-headers-$(uname -r) 
 linux-headers-generic make linux-source  linux-generic linux-signed-generic

2.ゲスト追加機能をインストールする

.isoファイルを使用してそこからインストーラーをダウンロードしないでください-それは単に動作しません!!!

sudo apt-get install virtualbox-guest-dkms 

3. vmブートで共有ディレクトリを自動マウントするように変更します

次の行をfstabファイルの最後に追加して、共有ディレクトリをvmブートで自動マウントするように変更します(「vshare」confおよびuid = 10001に注意してください)。

/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab 

4.自分をvboxsfグループに追加します

ホストマシン上のファイルをvmから非ルートとして編集できるようにするには、vboxsfグループに自分自身を追加する必要があります。#sudo mount -aをマウント

sudo usermod -G vboxsf -a you 

5.再起動して確認する

vmを再起動し、ssh経由でログインして、ファイル共有を確認します。#sshからvm ssh you @ host-name

# check as yourself that you have 
find /vagrant

0

ゲストシステムをアップグレードした後、仮想ボックスの追加を再度インストールする必要があります。問題は、ubuntuの一部のコンポーネントをアップグレードすると、一部のコンポーネントが変更され、vb-additionsをインストールした後、sf_forlder_nameにアクセスできるようになることだと思います。この方法で私の問題は解決しました。Pisuのソリューションは機能します。


私の経験では、Virtual Boxゲストの追加は、ホストVirtualBoxシステムがアップグレードされたときにのみアップグレードする必要があります。クライアント上のソフトウェアが変更されたときではありません。これを必要とするために、クライアント上のどのソフトウェアをアップグレードしましたか?
アントン

1
いいえ、ニッキーは正しいです。ゲストOSカーネルを更新する場合、Guest Additionsを再インストールする必要があります。
スペンサーウィリアムズ

-2
  • 共有をアンマウントします root
  • chownおよびで必要な変更を行いますchmod
  • 再起動してチェックアウトすると、共有は適切な権限を持ちます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.