私は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のオプションは自動マウントであり、これは読み取り専用で選択解除されています。
を試しましたが、/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)
答え1
これでファイルにアクセスする一般的な方法は、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
これらの変更を適用するには、仮想マシンを再起動する必要があります。
共有フォルダを手動でマウントする場合は、コマンドの関連オプション(つまり、gid、uid、およびumaskオプション)を使用してmount
フォルダの正しい所有権を設定する必要があります。mount
これは、ホストオペレーティングシステムが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
root 以外の 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. ゲストの追加に必要なコンポーネントをインストールします。
次のコマンドを実行して、ゲスト追加の前提条件をインストールします。
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. 起動時に共有を自動的にマウントします。
/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. 再起動と確認
仮想マシンを再起動し、SSH経由でログインしてファイル共有を確認します。
# ssh to the vm
ssh you@host-name
# check as yourself that you have access
find /vagrant
答え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:
ルイザ。
答え4
sudoを使ってみましたか?
$sudo chown username filename