web-dev-qa-db-ja.com

Virtual Boxの下の共有フォルダーに関するファイル権限の問題(Ubuntuゲスト、Windowsホスト)

私は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)
115
user654019

現在ファイルにアクセスする通常の方法は、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$ 
174
EightBitTony

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

この手順により、LinuxゲストターミナルからWindowsホストマシンの特定のディレクトリにアクセスできるようになります。この例では、OVBの観点から見た共有の名前はvshare(デフォルト)であり、Windows OS(ホストOS)への完全なディレクトリパスは "C:\ var \"であり、完全なファイルパスです。ゲストvmからそれにアクセスするには、「/ vagrant」になります。最後に、完全な読み取り/書き込みアクセスを有効にするユーザーの名前は「あなた」になります。

 # 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. Guest Additionsをインストールします

そこからインストーラをダウンロードして実行するために.isoファイルを使用しないでください-それは単に機能しません!!!

Sudo apt-get install virtualbox-guest-dkms 

3.起動時に共有を自動マウントする

/ etc/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グループに自分を追加する

# mount
Sudo mount -a

Sudo usermod -G vboxsf -a you 

5.再起動して確認する

VMを再起動し、ssh経由でログインして、ファイル共有を確認します。

# ssh to the vm
ssh you@Host-name

# check as yourself that you have access
find /vagrant
3
Yordan Georgiev

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:

ルイーザ。

3
LuisaFernanda

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

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

2
Pisu

Sudoを試しましたか?

$Sudo chown username filename
1
Extn3389

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

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

scanresults    /data/scanresults    vboxsf    uid=771    0 0
1
Mutant Bob

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

0
nicky