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_directory_name
표시됨) 한 다음 일반 우분투 사용자를 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$
답변
방금 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:
루이사.
답변
나는 같은 문제가 있었고 최신 버전의 VirtualBox Guest Additions 설치를 해결했습니다 . 제 경우에는 4.3.8에서 4.3.10으로 업그레이드했습니다.
설치가 완료되면 / media / sf_name 폴더에는 더 이상 “루트”가 그룹 소유자가 아닌 “vboxsf”가 있습니다.
답변
sudo를 사용해 보셨습니까?
$sudo chown username filename
답변
마운트 명령에 대한 옵션을 제어 할 수있는 고급 기능이있는 경우 (예 : 수동으로 마운트하거나을 /etc/fstab
사용하는 경우) -o uid=771
옵션을 마운트 명령에 사용할 수 있습니다 .
의 항목 /etc/fstab
은 다음과 같습니다
scanresults /data/scanresults vboxsf uid=771 0 0
답변
루트가 아닌 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. 게스트 추가 필수 구성 요소 설치
다음 명령을 실행하여 게스트 추가 전제 조건을 설치하십시오.
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 마운트 -a
sudo usermod -G vboxsf -a you
5. 재부팅 및 확인
vm을 재부팅하고 ssh를 통해 로그인하여 파일 공유를 확인하십시오. # ssh를 vm ssh you @ host-name으로
# check as yourself that you have
find /vagrant
답변
게스트 시스템을 업그레이드 한 후 가상 상자 추가를 다시 설치해야합니다. 문제는 우분투에서 일부 구성 요소를 업그레이드 할 때 vb-additions를 설치 한 후 일부 구성 요소가 변경되어 sf_forlder_name에 액세스 할 수 있다고 생각합니다. 이 방법으로 내 문제가 해결되었습니다. Pisu의 솔루션이 작동합니다.