वर्चुअल बॉक्स (उबंटू गेस्ट, विंडोज होस्ट) के तहत साझा किए गए फ़ोल्डरों के साथ फ़ाइल अनुमति मुद्दे


102

मैं वर्चुअल बॉक्स पर उबंटू का उपयोग कर रहा हूं और मेरे पास एक फ़ोल्डर है जो होस्ट (विंडोज) और वीएम (उबंटू) के बीच साझा किया गया है। जब मैं उबंटू में शेयर फ़ोल्डर में कोई फ़ाइल खोलता हूं, तो मैं इसे बदल नहीं सकता क्योंकि इसका मालिक रूट पर सेट है।

मैं खुद को स्वामित्व कैसे बदल सकता हूं?

यहाँ का उत्पादन है 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

वीएम में विकल्प स्वचालित है और रीडोली की जांच नहीं की जाती है।

उपयोग करने की कोशिश की /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)

आपने साझा फ़ोल्डर को कैसे माउंट किया? क्या आप इसे वर्चुअलबॉक्स अतिथि बर्तन (यानी / मीडिया / sf_something) द्वारा स्वचालित किया जा रहा है या आपने इसे माउंट कमांड का उपयोग करके मैन्युअल रूप से माउंट किया है?
EightBitTony

इसके अलावा, क्या आप बता सकते हैं कि आपने विंडोज में वर्चुअलबॉक्स के तहत शेयर को कैसे कॉन्फ़िगर किया है? शेयर के लिए तीन विकल्प हैं, केवल पढ़ें, ऑटोमाउंट और स्थायी, आपने किन विकल्पों पर टिक किया है।
आठ

कृपया अपने प्रश्न को अपडेट करें - टिप्पणियों के रूप में नहीं। कृपया उस आउटपुट dfऔर कमांड को शामिल करें जिसका उपयोग आपने फाइल सिस्टम को मैन्युअल रूप से माउंट करने के लिए किया था।
एइटबिटोनी

धन्यवाद - आप देखेंगे कि एक / मीडिया / sf_Ubuntu फाइल सिस्टम है। यह आपका साझा फ़ोल्डर है, आपको इसे मैन्युअल रूप से माउंट करने की आवश्यकता नहीं है। मैं आपको सुझाव देता हूं कि आप / होम / मी / डेस्कटॉप चीज़ को umount करें और नीचे दिए गए मेरे उत्तर के अनुसार / मीडिया / sf_Ubuntu का उपयोग करें।
एइटबिटोनी

@ टोनी: मैं इस फ़ोल्डर तक नहीं पहुँच सकता। कृपया मेरा मूल प्रश्न देखें जिसे मैं अधिक जानकारी जोड़ता हूँ
user654019

जवाबों:


159

अब फ़ाइलों तक पहुंचने का नियमित तरीका है, वर्चुअलबॉक्स को साझा फ़ोल्डर को स्वचालित करने की अनुमति देना (जो इसे नीचे दिखाएगा /media/sf_directory_name) और फिर vboxsfसमूह में अपने नियमित उबंटू उपयोगकर्ता को जोड़ने के लिए (रूट के रूप में #)।

# usermod -aG vboxsf <youruser>

डिफ़ॉल्ट रूप से, मैन्युअल कार्रवाई के बिना, आरोह इस तरह दिखते हैं,

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

इसलिए vboxsfसमूह की पूरी पहुंच है। अपने उपयोगकर्ता को उस समूह में जोड़कर, आप पूर्ण पहुँच प्राप्त करते हैं। इसलिए आप उनकी अनुमतियों (जो कि विंडोज होस्ट पर कोई मतलब नहीं है) को बदलने के बारे में चिंता नहीं करेंगे, आप बस खुद को एक्सेस देंगे।

इस विशिष्ट मामले में, यह स्वचालित साझा फ़ोल्डर है,

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) के साथ सेट करने के लिए प्रासंगिक विकल्पों का उपयोग करने की आवश्यकता है । ऐसा इसलिए है क्योंकि होस्ट ओएस लिनक्स की तरह ही अनुमति प्रणाली का समर्थन नहीं करता है, इसलिए वर्चुअलबॉक्स के पास यह जानने का कोई तरीका नहीं है कि फाइलों का मालिक कौन होना चाहिए।

हालाँकि, मैं केवल साझा किए गए फ़ोल्डर को ऑटो-माउंटेड करने के लिए दृढ़ता से सलाह देता हूं (यह वर्चुअलबॉक्स में साझा फ़ोल्डर कॉन्फ़िगरेशन पर एक सेटिंग है)।


संदेह से बचने के लिए, मुझे विश्वास नहीं है कि आप सामान्य रूप से वैसे भी अनुमति बदल सकते हैं, उस फाइल सिस्टम पर अगर यह नियमित रूप से मुहिम की जाती है,

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_sared/test.tst अनपेक्षित त्रुटि को सहेज नहीं सका: अस्थायी फ़ाइल का नाम बदलने में त्रुटि: पाठ फ़ाइल व्यस्त।
user654019

यह एक अलग समस्या है, संभवतः अनुमतियों के कारण नहीं। क्या आप एक नई फ़ाइल बना सकते हैं, या एक अलग फ़ाइल को संशोधित कर सकते हैं। Hang on - / home / m / Desktop / vbox_sared? क्या आपने मैन्युअल रूप से साझा फ़ोल्डर को माउंट किया है? वह डिफ़ॉल्ट पथ नहीं है।
EightBitTony

जाँच प्रणाली, मैंने पाया कि मुझे केवल फ़ाइलें बनाने या हटाने की अनुमति है और परमिट पढ़ने / लिखने की नहीं। मैं इसे खुद को कैसे दे सकता हूं?
14:65 पर user654019

9
इसे प्रभावी बनाने के लिए रीबूट की आवश्यकता होती है।
एरिक वांग

3
आप इस उत्तर के लिए एक बियर की इच्छा रखते हैं !!! जब तक मैं इस पार नहीं आया, मुझे यह काम करने के लिए नहीं मिला। विश्वास नहीं कर सकता यह वहाँ और अधिक नहीं है। काश मैं इसे एक से अधिक बार उत्थान कर पाता !!
तेंसिघ

3

मेरे विन-उबंटू साझा किए गए फ़ोल्डर के साथ मुझे बस यही समस्या थी, और जिस तरह से मैंने इसे हल किया वह मेरे उपयोगकर्ता को 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
आपको कभी भी सीधे / / समूह को संपादित नहीं करना चाहिए, इस नौकरी के लिए उपयुक्त उपकरण का उपयोग करें (इस मामले में usermod -aG <group> <user>)।
उभारें

मुख्य, यदि नहीं, केवल यही कारण है कि इसकी सिफारिश की जाती है क्योंकि यदि आप गलती से मैन्युअल रूप से फ़ाइल को अपडेट कर रहे हैं जैसे कि / etc / group, तो यह DB को अमान्य कर सकता है और अनिवार्य रूप से आपको लॉक कर सकता है।
स्पेंसर विलियम्स 20

2

मुझे वही समस्या थी और मैंने वर्चुअलबॉक्स अतिथि परिवर्धन के नवीनतम संस्करण को स्थापित करने का हल किया ; मेरे मामले में 4.3.8 से 4.3.10 तक अपग्रेड हो रहा था।

जब स्थापना समाप्त हो गई थी, तब / मीडिया / sf_name फ़ोल्डर में समूह स्वामी के रूप में कोई और "रूट" नहीं था, लेकिन "vboxsf" सही था।


1

क्या तुमने सुडोल कोशिश की है?

$sudo chown username filename

मुझे विश्वास नहीं है कि यह वर्चुअलबॉक्स साझा फ़ोल्डर पर काम करता है।
आठबेटी

सुडोल हर जगह काम करता है! : P लिंक
Extn3389

12
मुझे यकीन नहीं है कि आप गंभीर हैं, लेकिन मैं आपको मज़ाक करूँगा। माउंटेड शेयर्ड फोल्डर एक vboxfsप्रकार का फाइल सिस्टम है, यह सम्मान नहीं करता है chown
आठबेटटोनी

मुझे खेद है कि मुझे लगा कि यह काम कर सकता है।
Extn3389

1
हां, लेकिन इसने मालिक को नहीं बदला। किसी फ़ाइल के लिए टर्मिनल में tis कमांड चलाने के बाद, और फिर फ़ाइल के मालिक को देखकर, यह अभी भी रूट का है।
user654019

1

यदि आपके पास माउंट कमांड के लिए विकल्पों को नियंत्रित करने की लक्जरी है (उदाहरण के लिए यदि मैन्युअल रूप से बढ़ते या उपयोग कर रहे हैं /etc/fstab) तो आप -o uid=771विकल्प को माउंट कमैंडैंड के लिए उपयोग कर सकते हैं ।

में एक प्रविष्टि की /etc/fstabतरह दिखेगा

scanresults    /data/scanresults    vboxsf    uid=771    0 0

1

एक पूर्ण रूट सक्षम करें, एक गैर-रूट लिनक्स उपयोगकर्ता के लिए उबंटू अतिथि से विंडोज होस्ट पर एक साझा फ़ोल्डर तक पहुंच लिखें

यह कदम आपको लिनक्स गेस्ट टर्मिनल से अपने विंडोज होस्ट मशीन पर एक निश्चित डायर का उपयोग करने में सक्षम करेगा। इस उदाहरण में OVB परिप्रेक्ष्य से शेयर का नाम vshare होगा (जो डिफ़ॉल्ट है), विंडोज ओएस (मेजबान ओएस) के लिए पूर्ण डायर पथ "C: \ var \" और पूर्ण फ़ाइल पथ होगा अतिथि vm से इसे एक्सेस करना "/ योनि" होगा, और अंत में पूर्ण रीम / राइट एक्सेस को सक्षम करने के लिए उपयोगकर्ता का नाम "आप" होगा।

 # 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. शेयर डीआईआर को वीएम बूट पर स्वचालित होने के लिए बदलें

अपने fstab फ़ाइल के अंत में फ़ोलोइंग लाइनों को जोड़कर vm बूट पर ऑटोमैटिक रूप से शेयर की जाने वाली डीआईआर के लिए अपने को बदलें (ध्यान दें "vshare" और यूआईडी = 10001):

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

4. खुद को vboxsf ग्रुप में जोड़ें

आपको अपने होस्ट मशीन पर फ़ाइलों को अपने vm से गैर-रूट के रूप में संपादित करने में सक्षम होने के लिए खुद को vboxsf समूह में जोड़ना होगा। # माउंट सुडो माउंट-ए

sudo usermod -G vboxsf -a you 

5. रिबूट और सत्यापित करें

Vm रिबूट करें और फ़ाइल साझाकरण को सत्यापित करने के लिए ssh के माध्यम से लॉगिन करें। # ssh to vm ssh आप @ मेजबान-नाम

# check as yourself that you have 
find /vagrant

0

वर्चुअल बॉक्स परिवर्धन आपके अतिथि सिस्टम को अपग्रेड करने के बाद फिर से स्थापित किया जाना है। मुझे लगता है कि समस्या यह है कि जब आप ubuntu में कुछ घटकों को अपग्रेड करते हैं, तो कुछ घटक बदल जाते हैं, vb-परिवर्धन स्थापित करने के बाद, sf_forlder_name सुलभ हो जाएगा। इस तरह से मेरी समस्या हल हो गई। पिस्सू का समाधान काम करता है।


मेरे अनुभव में वर्चुअल बॉक्स अतिथि परिवर्धन को केवल तब अपग्रेड किया जाना है जब होस्ट वर्चुअलबॉक्स सिस्टम अपग्रेड किया गया हो। नहीं जब क्लाइंट पर कोई सॉफ़्टवेयर बदलता है। क्लाइंट पर कौन सा सॉफ़्टवेयर आपने इसे आवश्यक बनाने के लिए अपग्रेड किया?
एंथन

1
नहीं, निकी सही है। यदि आप अपने अतिथि OS कर्नेल को अद्यतन करते हैं तो आपको अतिथि परिवर्धन को फिर से स्थापित करना होगा।
स्पेंसर विलियम्स 20

-2
  • के रूप में साझा करें root
  • chownऔर के साथ आवश्यक परिवर्तन करेंchmod
  • रिबूट और चेकआउट शेयर उचित अधिकारों के साथ हैं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.