নীচে আমি আমার হোস্ট ডিরেক্টরিটির একটি ধারকটিতে মাউন্ট করতে যা করেছি। এটি যতটা শোনার চেয়ে কৌশলযুক্ত কারণ আমরা তা অর্জন করতে চাই
- ধারকটির ভিতরে আমাদের ডিরেক্টরিতে লিখতে সক্ষম হওয়া উচিত।
- ধারকতার বাইরে আমাদের ধারকটির ভিতরে তৈরি ফাইল এবং ডিরেক্টরিতে লিখতে সক্ষম হওয়া উচিত।
অনলাইনে বিভিন্ন নিবন্ধ পড়ার পরে (সবচেয়ে সহায়ক হ'ল এটি গিথুব ইস্যু ), আমি এখানে এটি কীভাবে সমাধান করব তা এখানে। কৌশলটি হ'ল ব্যবহারকারীর ইউআইডি এবং গিডটি মানচিত্রটি কনটেইনারটির ভিতরে থাকা ব্যবহারকারীর ইউআইডি এবং গিডে ম্যাপ করা।
মনে করুন আমি ধারকটিতে /home/breakds/projects
ঠিক একই জায়গায় যাচ্ছি । বাইরের ডিরেক্টরিটি ব্যবহারকারীর মালিকানাধীন breakds
, যার ইউআইডি এবং গিড 1000
।
তারপরে আমি debian
ধারকটিতে একটি ব্যবহারকারী তৈরি করেছি , যার ইউআইডি এবং গিডটি 1000
একই সাথে হয়েছে (কারণ এটি প্রথম নন-রুট ব্যবহারকারী)। তারপরে আমি হোস্টের দ্বারা একটি (lxc) প্রোফাই তৈরি করব
lxc profile edit breakds
এবং নীচে প্রোফাইলের সামগ্রী রয়েছে (আমি বিশ্বাস করি এটি ইয়ামাল ফর্ম্যাটে রয়েছে):
name: breakds
config:
raw.lxc: |
lxc.id_map =
lxc.id_map = u 0 165536 999
lxc.id_map = g 0 165536 999
lxc.id_map = u 1000 1000 1
lxc.id_map = g 1000 1000 1
lxc.id_map = u 1001 166537 64535
lxc.id_map = g 1001 166537 64535
user.vendor-data: |
packages:
- bash
description: allow home dir mounting for breakds
devices:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
projects:
path: /home/breakds/projects
source: /home/debian/projects
type: disk
তারপরে, স্থায়ীভাবে এই ধারকটিতে এই প্রোফাইলটি প্রয়োগ করুন:
$ lxc profile apply <my container> breakds
এই কৌতুক করতে হবে।
দ্রষ্টব্য : দয়া করে নোট করুন যে এই প্রোফাইলে স্যুইচ করার আগে, নিশ্চিত হয়ে নিন যে সমস্ত ডিরেক্টরি বা ফাইলগুলি যার মালিক / গ্রুপ ডেবিয়ান সেগুলি মুছে ফেলা উচিত (এবং সম্ভবত স্যুইচের পরে পুনরায় তৈরি করা)। এটি কারণ uid এবং গিড ম্যাপিংয়ের পরে, তাদের মালিকানা অবৈধ হয়ে যাবে। আমি মূলত ভেবেছিলাম যেহেতু আমি মাত্র 1000 থেকে 1000 ম্যাপিং করছি সবকিছু ঠিক করা উচিত, তবে আমি মনে করি যে আমি এখানে কিছু মিস করেছি এবং হ্যাক ছাড়াই কেউ কীভাবে এটি সমাধান করতে পারে সে সম্পর্কে কেউ পরামর্শ দিতে পারলে এটি দুর্দান্ত হবে।