저는 Virtual Box에서 Ubuntu를 사용하고 있으며 호스트(Windows)와 VM(Ubuntu) 간에 폴더를 공유하고 있습니다. Ubuntu의 공유 폴더에 있는 파일을 열면 소유자가 루트로 설정되어 있으므로 파일을 변경할 수 없습니다.
소유권을 나 자신으로 변경하려면 어떻게 해야 하나요?
출력은 다음과 같습니다 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
그룹에 루트로 추가하는 것 #
입니다.
# 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
루트가 아닌 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