সমস্যা - vbox / উবুন্টুতে একটি ওএসএক্স ভাগ করা ড্রাইভ অ্যাক্সেসের অনুমতি সম্পর্কিত সমস্যা
joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied
লক্ষ্যটি হ'ল ম্যাক এবং উবুন্টু পরিবেশের মধ্যে ডিরেক্টরি ভাগ করার একটি সহজ উপায়। দুর্ভাগ্যক্রমে আমি এখনও পর্যন্ত যে উদাহরণগুলি দেখেছি সেগুলি প্রকৃত হওয়ার চেয়ে কিছুটা জটিল বলে মনে হচ্ছে এবং প্রকৃত সমস্যাটি কী সমাধান করা দরকার তা সত্যিকারভাবে ব্যাখ্যা করবেন না। আমি এখানে উভয় সমস্যা হ্যান্ডেল করার চেষ্টা করব।
ভার্চুয়াল বক্স ৪.৩.১6 সহ উবুন্টু -১.0.০৪.১ চালিত অতিথি এক্সটেনশনগুলি ইনস্টল করে এখানকার পরিবেশটি ওএসএক্স ১০.৯.৫ চালিত একটি ম্যাক। সেপ্টেম্বর 2014 স্টাফ।
আমি মনে করি যে সমগ্র এখানে সমস্যা হল ইউআইডি উপর ম্যাক ডিরেক্টরি এবং উবান্টু মধ্যে মেলানো - ডিফল্ট gid এর ব্যবহারকারী এবং দলের জন্য বরাদ্দ OSX ও উবুন্টু, এবং যে এর যেখানে কষ্ট মিথ্যা ভিন্ন ভিন্ন।
একটি ফাইল অ্যাক্সেস করতে, একজনকে অবশ্যই এটির মালিক হওয়া উচিত, বা এটির মালিকানাধীন গোষ্ঠীর সদস্য হওয়া উচিত। এবং অ্যাক্সেসটি আসলে গোষ্ঠীর আইডি নম্বরের উপর ভিত্তি করে, গোষ্ঠীর নাম নয়, যা যা প্রয়োজন তা হ'ল উভয় পক্ষের একটি সাধারণ গ্রুপ নম্বর তৈরি করা, যা ব্যবহারকারীদের অন্তর্ভুক্ত।
নীচের সমাধানটি ঠিক তাই করে। যা লেখা হয়েছে তার দৈর্ঘ্যে বিভ্রান্ত হবেন না, এটি আসলে খুব সাধারণ। এখানে যা চলছে তার প্রচুর এবং প্রচুর উদাহরণ রয়েছে।
আমি এই ডক্সের মধ্যে ওএসএক্স এবং ভিবিওক্স কনসোলগুলির (ম্যাক এবং ভার্চুয়াল-বাক্স / উবুন্টু) মধ্যে ফ্লিপ করতে যাচ্ছি - আপনি নিশ্চিত হন যে কোন উইন্ডোটি আপনার মধ্যে রয়েছে।
চূড়ান্ত দ্রষ্টব্য: নীচে প্রদর্শিত সমাধানটি ওএসএক্স এবং উবুন্টু পরিবেশের মধ্যে একটি সাধারণ গ্রুপ আইডি স্থাপনের উপর ভিত্তি করে তৈরি করা হয়েছে, যাতে ফাইল অনুমতিগুলি কাজ করে। অন্যান্য, আরও আধুনিক সমাধান থাকতে পারে। এটি সত্যিই সহজ এবং বোধগম্য এবং খালি হাড়ের বেসিক অলঙ্কৃত ইনস্টলেশনতে চলে।
ওএসএক্স: —————
উল্লেখ্য যে বাক্সটি 10.9.5 ম্যাকের একটি নতুন করে করা হয়েছিল, এতে কোনও কিছুই নেই, কোনও কর্পোরেট নেটওয়ার্কের সাথে সংযুক্ত নেই, স্টক সফ্টওয়্যার ব্যতীত অভিনব কোনও কিছুই চলমান নেই। এটি এটি হিসাবে হিসাবে সহজ।
যখন আমি ম্যাকটিতে ডিফল্ট ইনস্টল করেছি, জো_পাবলিক অ্যাডমিন ব্যবহারকারী এবং তার ইউআইডি 501 তে সেট করা আছে ।
Joes-MacBook-Pro:/ joe_public$ id
uid=501(joe_public) gid=20(staff) groups=20(staff),999(vboxsf),401(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing),399(com.apple.access_ssh)
লক্ষ করুন যে, ইউআইডি হল 501 - এই ওএসএক্স ডিফল্ট প্রথম অ্যাকাউন্ট ID হয় - বিশেষ কিছুই
আমি কয়েকটি ডিরেক্টরি তৈরি করেছি যা আমি ম্যাক দিকে ভাগ করতে চাই - নোট করুন যে আমি ব্যাকআপের কারণে সেগুলি আমার ব্যবহারকারী ডিরেক্টরিতে রাখিনি।
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/shared
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/public
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/images
Joes-MacBook-Pro:vdisk joe_public$ ls -al
total 0
drwxr-xr-x 5 joe_public admin 170 Oct 8 01:08 .
drwxrwxr-t 36 root admin 1292 Oct 6 02:26 ..
drwxrwxrwx 2 joe_public admin 68 Oct 6 01:08 images
drwxr-xr-x 3 joe_public admin 102 Oct 8 01:07 public
drwxrwxrwx 4 joe_public admin 136 Oct 8 00:45 shared
ভিবিক্স: ——————
সাধারণ ডিফল্ট ভার্চুয়াল বাক্স এবং উবুন্টু ইনস্টলেশন - আবার, জো ওপাবলিক আমি ডিফল্ট অ্যাডমিন তৈরি করে যখন আমি উবুন্টু ইনস্টল করি।
দয়া করে আবার লক্ষ করুন, ওএসএক্স এবং উবুন্টুর মধ্যে নামের স্থানটি সম্পূর্ণ আলাদা। এখানে দুটি নামের মধ্যে একেবারেই কোনও সম্পর্ক নেই।
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ id
uid=1000(joe_public) gid=1000(joe_public) groups=1000(joe_public),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)
ভার্চুয়াল বাক্সের সেটিং -> ভাগ করা ফোল্ডার গুলির সাহায্যে তিনটি মাউন্ট পয়েন্ট তৈরি করা হয়েছে ।
Name Path Auto-mount Access
images /vdisk/images Yes Full
public /vdisk/pubic Yes Read-only
shared /vdisk/shared Yes Full
দ্রষ্টব্য: এই সমস্ত মাউন্ট পয়েন্টগুলি সামনে আসার জন্য আমার আসলটি আমার পুনরায় চালু করতে হয়েছিল।
joe_public@joe_public-ubuntu-VirtualBox:~$ mount | grep vboxsf
shared on /media/sf_shared type vboxsf (gid=999,rw)
public on /media/sf_public type vboxsf (gid=999,rw)
images on /media/sf_images type vboxsf (gid=999,rw)
লক্ষ্য করুন যে এর জন্য গিডটি 999 - এটি ভিক্সএসএফ গ্রুপ।
joe_public@joe_public-ubuntu-VirtualBox:~$ grep 999 /etc/group
vboxsf:x:999
এটি আমাদের জন্য ভার্চুয়াল বক্স সংস্করণ 4.3.16 দ্বারা স্বয়ংক্রিয়ভাবে নিয়োগ করা হয়েছিল। কমান্ড লাইনের মাধ্যমে আপনি যদি ম্যানুয়ালি পাথটি মাউন্ট করেন তবে ভোবক্স ডকুমেন্টেশনটি কীভাবে এটি পরিবর্তন করতে পারে তার উপায়গুলি দেখায়, তবে কে মনে রাখতে পারে - জিইউআই আমাদের উপর চাপিয়ে দেওয়া ডিফল্টগুলি সহজভাবে গ্রহণ করবে ..
তবে এটি কার্যকর হয় না (এই মুহুর্তে প্রত্যাশিত - এটিই আমরা সমাধানের চেষ্টা করছি)
joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied
মনে রাখবেন যে এই মুহুর্তে জো_পাবলিক সেই ভিক্সবক্স গ্রুপের সদস্য নয় - এবং আমরা এটি ঠিক না করা পর্যন্ত এটি সমস্যা হতে চলেছে। এফওয়াইআই: এটি তৈরি করা হলে অ্যাকাউন্টে নির্ধারিত ডিফল্ট গোষ্ঠী।
joe_public@joe_public-ubuntu-VirtualBox:/media$ grep joe_public /etc/group
adm:x:4:syslog,joe_public
cdrom:x:24:joe_public
sudo:x:27:joe_public
dip:x:30:joe_public
plugdev:x:46:joe_public
lpadmin:x:108:joe_public
joe_public:x:1000:
sambashare:x:124:joe_public
সুতরাং এই মুহুর্তে আমাদের যা আছে (এটি ঠিক করার জন্য আমরা এখনও কিছু করি নি)
• On mac, joe_public gid is 501
• On linux, joe_public gid is 1000
• On linux, vboxfs gid is 999
• On mac, vboxsf does not exist
ইতিমধ্যে ইনস্টল করা সিস্টেমে গাধাটির ব্যথা হওয়ায় আমরা উভয় দিকে joe_public ব্যবহারকারীর গিড পরিবর্তন করতে চাই না , এবং এটি অন্য ব্যবহারকারীর জন্য সমাধান করে না। সবচেয়ে সহজ সমাধানটি হ'ল ম্যাকের পাশে একটি ম্যাচিং গ্রুপ - vboxsf - তৈরি করা এবং নিশ্চিত করুন যে জো_প্রজাতন্ত্র উভয় পক্ষেরই এর সদস্য।
সুতরাং, এখনও vbox / উবুন্টুতে, জো_প্রজাতিকে 999 ভিবক্সএসএফ গ্রুপের সদস্য করুন
joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
joe_public@joe_public-ubuntu-VirtualBox:/$ grep 999 /etc/group
vboxsf:x:999:joe_public
আমি মনে করি আমি আমার অ্যাকাউন্ট থেকে লগ আউট করেছি এবং আমি এটি করার পরে আবার এখানে ফিরে এসেছি।
ওএসএক্স: —————
এখন আমাদের ম্যাকের উপর একটি vboxsf গ্রুপ তৈরি করতে হবে । আমি সন্দেহ করি যে নামটি এখানে আসলে একটি পার্থক্য তৈরি করে - এটি গুরুত্বপূর্ণ 999 গ্রুপ আইডি। দয়া করে মনে রাখবেন যে হোস্ট এবং ভিএম অপারেটিং সিস্টেমের মধ্যে ডিরেক্টরি সিস্টেমের নামের জায়গাগুলি (পাশাপাশি ব্যবহারকারীর নাম) আলাদা। তবে কেবল জীবনকে জ্ঞানী করে তোলার জন্য , আমরা সকলেই ম্যাকের উপরে এটি vboxsf বলি । উভয় পক্ষেই জো_পাবলিক একটি ব্যবহারকারীর নাম কেন ব্যবহার করা হচ্ছে একই যুক্তি ।
লিনাক্সের মতো ওএসএক্সের একটি সাধারণ অ্যাড গ্রুপ কমান্ড নেই - তাই একাধিক পদক্ষেপে এটি করতে dscl কমান্ডটি ব্যবহার করুন। এই সম্পর্কে আরও তথ্যের জন্য দয়া করে ম্যাক ওএস ডকুমেন্টেশন দেখুন। লক্ষ্য করুন যে আমরা vboxsf গোষ্ঠীটি তৈরি করেছি এবং এখানে group গোষ্ঠীতে জো_পাবলিক যুক্ত করব।
sudo dscl . -create /Groups/vboxsf
sudo dscl . -create /Groups/vboxsf name vboxsf
sudo dscl . -create /Groups/vboxsf passwd "*”
sudo dscl . -create /Groups/vboxsf gid 999
sudo dscl . -create /Groups/vboxsf GroupMembership joe_public
সুতরাং, এই মুহুর্তে, আমাদের থাকা উচিত
• On mac, joe_public gid is 501
• On linux, joe_public gid is 1000
• On linux, vboxfs gid is 999
• On mac, vboxsf gid is 999
• On linux, joe_public is member of vboxsf
• On mac, joe_public is member of vboxsf
এখানে যদি প্রমাণ হয় এটি কাজ করে - তাই এটি পরবর্তী পদক্ষেপ
ভিবিক্স: ——————
আমাদের ডিরেক্টরিতে সিডি করুন এবং একটি ফাইল স্পর্শ করুন
joe_public@joe_public-ubuntu-VirtualBox:/$ cd /media/sf_shared
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ touch foo
পরীক্ষা করুন যে আমরা সফলভাবে একটি ফাইল তৈরি করেছি।
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf 102 Oct 8 00:44 .
drwxr-xr-x 5 root root 4096 Oct 8 00:30 ..
-rwxrwx--- 1 root vboxsf 0 Oct 8 00:44 foo
ওএসএক্স: —————
Joes-MacBook-Pro:shared joe_public$ cd /vdisk/shared
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx 3 joe_public vboxsf 102 Oct 8 00:44 .
drwxr-xr-x 6 joe_public admin 204 Oct 8 00:17 ..
-rw-r--r-- 1 joe_public vboxsf 0 Oct 8 00:44 foo
Joes-MacBook-Pro:shared joe_public$ touch bar
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx 4 joe_public vboxsf 136 Oct 8 00:45 .
drwxr-xr-x 6 joe_public admin 204 Oct 8 00:17 ..
-rw-r--r-- 1 joe_public vboxsf 0 Oct 8 00:45 bar
ভিবিক্স: ——————
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf 136 Oct 8 00:45 .
drwxr-xr-x 5 root root 4096 Oct 8 00:30 ..
-rwxrwx--- 1 root vboxsf 0 Oct 8 00:45 bar
-rwxrwx--- 1 root vboxsf 0 Oct 8 00:44 foo
এটি সমস্ত কাজ করছে বলে মনে হচ্ছে ..
ভিবিক্স: IN শেষ যাচাইকরণ
আমরা এখানে যা যা যাচাই করছি তা হ'ল এই পুরো জিনিসটি ব্যবহারকারী জো_প্রজাতন্ত্রের উপর ভিউক্সএসএফ গ্রুপের সদস্য হওয়ার উপর নির্ভর করে - এবং সবচেয়ে সহজ উপায়টি জো-জনগণকে গ্রুপ থেকে সরিয়ে দিচ্ছে
গোষ্ঠী vboxsf থেকে ব্যবহারকারী জো_পাবলিক অপসারণ করা হচ্ছে
joe_public@joe_public-ubuntu-VirtualBox:~$ sudo gpasswd -d joe_public vboxsf
log out/in ubuntu
আমরা এটি আমাদের ডিরেক্টরি অ্যাক্সেস করতে পারি কিনা তা দেখছি - এবং আমরা পারব না, এবং এটি প্রমাণ করে যে এটি একটি গ্রুপ অনুমতি সমস্যা
joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied
ব্যবহারকারীকে আবার vboxsf এ যুক্ত করুন
joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
log out/in ubuntu
এটি আবার কাজ করে!
joe_public@joe_public-ubuntu-VirtualBox:~$ ls -al /media/sf_shared
total 4
drwxrwx--- 1 root vboxsf 170 Oct 8 01:48 .
drwxr-xr-x 6 root root 4096 Oct 8 01:25 ..
-rwxrwx--- 1 root vboxsf 0 Oct 8 00:45 bar
-rwxrwx--- 1 root vboxsf 0 Oct 8 00:44 foo
ভিবিক্স: - আরও একটি সমস্যা - ভিবক্সে প্রতীকী লিঙ্কগুলি -------
আপনি যদি / মিডিয়া / sf_shared এ যান তবে আপনি দেখতে পাবেন যে ভাগ করা ডিরেক্টরিতে প্রতীকী লিঙ্কগুলি কেবল কাজ করে না। আপনি যদি একটি ভাগ করে নেওয়া ড্রাইভে একটি সম্পূর্ণ লিনাক্স বিকাশ পরিবেশ স্থাপন করার চেষ্টা করছেন তবে এটি সত্যিই বড় সমস্যা।
joe_public@joe_public-ubuntu-VirtualBox:/media$ cd sf_images
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ls
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ mkdir test
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
ln: failed to create symbolic link ‘test2’: Read-only file system
ডিফল্টরূপে, ভার্চুয়াল বক্স শেয়ারগুলিতে প্রতীকী লিঙ্কগুলি সমর্থিত নয়। ব্যাখ্যা জন্য নীচে দেখুন। মূলত আমি এটি বুঝতে পেরেছি, প্রতীকী লিঙ্কগুলি একটি সুরক্ষা গর্ত যা ভার্চুয়াল বাক্সে 4.1.8 টাইম ফ্রেমে (২০১১) সমর্থন সমর্থন করে তাদের ভার্চুয়াল বক্সে "স্থির" করা হয়েছিল। আমি এখানে ৪.৩.১6 চালাচ্ছি ...
https://www.virtualbox.org/ticket/10085
http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/
ভাগ্যক্রমে হোস্টের ভিবক্সম্যানেজ কমান্ডের মাধ্যমে এটি পুনরায় সক্ষম করার জন্য একটি পিছনের দরজা রয়েছে । সর্বদা মত, দয়া করে এখানে সুরক্ষা গর্তগুলি বুঝতে পারেন যে আপনি সম্ভবত খোলার শুরু করছেন। আমি একা একা ডেভলপমেন্ট মেশিনে আছি, সুতরাং এটি কোনও সমস্যা বলে মনে হচ্ছে না।
ওএসএক্স: ------------
Joes-MacBook-Pro:shared pbradstr$ VBoxManage setextradata Ubuntu VBoxInternal2/SharedFoldersEnableSymlinksCreate/shared 1
দ্রষ্টব্য: উবুন্টু আমার ভিএম এর নাম, এবং ভাগ করা ডিরেক্টরিটির নাম শেয়ার করা।
আপনি এইভাবে ভিএম নাম পেতে পারেন:
Joes-MacBook-Pro:shared pbradstr$ VBoxManage list vms
"Ubuntu" {8461045a-1cee-4d44-8148-05920a47cee0}
Joes-MacBook-Pro:shared pbradstr$
এবং ভাগ করা ফোল্ডারগুলির নাম, ভার্চুয়াল বক্স গুই এর মাধ্যমে, বা
Joes-MacBook-Pro:shared pbradstr$ VBoxManage showvminfo Ubuntu | grep -A 5 "Shared folders"
Shared folders:
Name: 'shared', Host path: '/vdisk/shared' (machine mapping), writable
Name: 'public', Host path: '/vdisk/public' (machine mapping), readonly
Name: 'images', Host path: '/vdisk/images' (machine mapping), writable
আমি এখানে পুরো ভার্চুয়াল বক্স সিস্টেমটি পুনরায় বুট করেছি, এটি গ্রহণের সর্বনিম্ন প্রয়োজনীয়তাটি আমি খুঁজে পাইনি।
যাইহোক, এটি পরীক্ষা করতে, আপনার vbox উইন্ডোতে ফিরে যান
ভিবিক্স: ---------
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
কোনও ত্রুটি নেই - এবং যাচাই করার জন্য
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -ald test*
drwxrwx--- 1 root vboxsf 102 Oct 8 11:33 test
lrwxrwx--- 1 root vboxsf 4 Oct 8 13:10 test2 -> test
ওএসএক্স: ----------
এবং ম্যাক দিকে ফিরে - কেবল এটি সমস্ত কাজ প্রমাণ করতে
Joes-MacBook-Pro:shared pbradstr$ ln -s test test3
Joes-MacBook-Pro:shared pbradstr$ ls -ald test*
drwxr-xr-x 4 joe_public admin 136 Oct 8 13:20 test
lrwxr-xr-x 1 joe_public admin 4 Oct 8 13:10 test2 -> test
lrwxr-xr-x 1 joe_public admin 4 Oct 8 13:21 test3 -> test
দয়া করে মনে রাখবেন, আমি এটি কেবল একটি OSX হোস্ট এবং উবুন্টু ভার্চুয়াল বক্স ক্লায়েন্টে পরীক্ষা করেছি tested উপরে উল্লিখিত উল্লেখগুলি দেখে মনে হয়েছিল যে উইন্ডোজ ভিত্তিক হোস্ট চালানোয় কোনও সমস্যা থাকতে পারে।
শিক্ষার্থীর জন্য অনুশীলন বাম
উপরে তালিকাভুক্ত পদ্ধতির সুবিধাটি হ'ল এটি কোনও স্ট্যান্ড-বরাবর মেশিনে চালাতে পারে, কোনও নেটওয়ার্ক অ্যাক্সেস ছাড়াই। তবে আপনি যদি এটির বিষয়ে চিন্তা করেন তবে এই নাম-আয়াত-আইডি ইস্যুটি কোনও ভিন্ন ভিন্ন কম্পিউটারের পরিবেশের মধ্যে একটি সাধারণ সমস্যা হয়ে দাঁড়িয়েছে।
এই সমস্যার সমাধান পাওয়া যায় সেখানে আর কী সমাধান পাওয়া যায়? - অ্যাক্টিভ ডিরেক্টরি (একটি মাইক্রোসফ্ট পণ্য) এর মতো জিনিসগুলি এবং এর মতো বিষয়গুলি এটি সমাধান করতে সক্ষম হতে পারে। এই সমাধানগুলির সংগ্রহ সংগ্রহ করা এবং সেখানে বিভিন্ন বৈশিষ্ট্য এবং ট্রেড অফের তুলনা করা আকর্ষণীয় হবে।
sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src
, যেখানে উমাস্কumask
ব্যবহারকারীর মান হয়id <user>
,src
ইউআইডি এবং গিড আসে, এটি ভিবক্স শেয়ারের নাম এবং/meida/sf_src
পছন্দসই মাউন্ট পয়েন্ট।