আলপাইন ভিত্তিক ডকারে মাউন্ট করা ভলিউমের জন্য অনুমতিগুলি পরিচালনা করার জন্য একটি নির্দেশমূলক উপায় কী?


3

আপনি যখন কোনও চিত্র তৈরি করেন আপনি নিজের মালিকানা ( chown) নির্ধারণ করতে পারবেন এবং chmodচিত্রের মধ্যে অনুমতিগুলির ( ) অনুমতি পরিবর্তন করতে পারেন । তবে, হোস্ট বা অন্য কোনও ধারক থেকে যখন কোনও ভলিউম মাউন্ট করা হয় তখন volume ভলিউমের অনুমতিগুলি উপস্থিত থাকে, সম্ভাব্যভাবে কোনও ব্যবহারকারী / গোষ্ঠীর সাথে পরিচিত পাত্রে এটি অজানা থাকে it

হোস্ট মাউন্ট এবং ধারক মাউন্ট উভয় ভলিউমের জন্য আলপাইন ডকার চিত্রের অধীনে ব্যবহারকারীদের জন্য অনুমতিগুলি পরিচালনা করতে আমি একটি প্রেসক্রিপটিভ পদ্ধতিতে (যদি এটি উপস্থিত থাকে) আগ্রহী।

দুটি সম্ভাব্য বিকল্প যা আমি ভাবতে পারি সেগুলি হ'ল:

  1. ধারক এবং মাউন্ট করা ভলিউমের মধ্যে একই ব্যবহারকারী এবং গোষ্ঠীটি ব্যবহার করুন।
  2. অনুমতিগুলি নিয়ন্ত্রণ করতে এসিএলগুলি ব্যবহার করুন।

মাউন্টযুক্ত ভলিউমের জন্য অনুমতি ইস্যুগুলি মোকাবিলার জন্য কি কোনও প্রস্তাবিত পদ্ধতি রয়েছে, বিশেষত যখন মালিকদের ইউআইডি / গিড কোনও ধারকের ভিতরে ব্যবহারকারী / গোষ্ঠীর সাথে মেলে না? যেমন

আমার আলপাইন ডকার ইমেজের মধ্যে আমার www-dataব্যবহারকারীর একটি ইউআইডি / জিড 82 রয়েছে (দেখুন: এনগিনেক্স www-ডেটা ব্যবহারকারী আইডি ), যদি আমি অন্য ধারক বা হোস্টের যেখানে 1001ভয়েম 1001মালিকানাধীন কোনও হোস্টের থেকে ভলিউম মাউন্ট করি , কিভাবে করবেন আমি মালিকানা এবং অনুমতি মধ্যে বৈষম্য মোকাবেলা?


এনবি: কিছু অ্যাপ্লিকেশন ফ্রেমওয়ার্ক (যেমন সিমফনি ) অনুমতিগুলি পরিচালনা করতে setfacl[ 1 ] এর মতো কিছু ব্যবহার করার পরামর্শ দেয় তবে এটি এএফএসের সাথে আলপাইন ডকার চিত্রের অধীনে সম্ভব বলে মনে হয় না কারণ অপারেশনটি "সমর্থিত নয়"।

এসিএলগুলি কী ডকারে একটি অ্যান্টি-প্যাটার্ন ব্যবহার করছে?

উত্তর:


2

এনবি: স্ট্যাকওভারফ্লোতে নিম্নলিখিত প্রশ্ন রয়েছে: ডকার শেয়ার্ড ভলিউমের জন্য অনুমতিগুলি পরিচালনা করার সর্বোত্তম উপায় কী? যা প্রচলিত উত্তর এই হচ্ছে, উপরোক্ত এবং অসংখ্য উত্তর অনুরূপ এক

প্রেসক্রিপটিভ উত্তর বা সাধারণ প্যাটার্নের সন্ধান করে অসংখ্য উত্স পরীক্ষা এবং পড়া থেকে আমি নিম্নলিখিতগুলি সনাক্ত করেছি:

ডকার চলার সময় ডকার-বাইরে-ডকার (ডুডি) হোস্ট ডেটা ভলিউম অন্তর্নিহিত হোস্ট থেকে মাউন্ট করা হয়। আমি মনে করি একটি ব্লগ পোস্টে এর কিছু উল্লেখ জুড়ে হোঁচট খেয়েছি, তবে আমার জীবনের জন্য আমি এখনই এটি খুঁজে পাচ্ছি না (যদি / কখন করি, আমি এই উত্তরটি আপডেট করব)। এর দীর্ঘ এবং সংক্ষিপ্ততাটি হ'ল: আপনি যখন docker.sockকোনও পাত্রে কোনও ভাগ করে দিয়ে ডকার চালাচ্ছেন , ডকার অন্তর্নিহিত হোস্ট থেকে ভলিউম মাউন্ট করার চেষ্টা করতে যাচ্ছেন । আপনি যদি অন্য ধারক থেকে ভলিউম (গুলি) মাউন্ট করেন তবে আপনার সমস্যা নেই have

অনুমতি এবং মালিকানা নির্ধারণ করা। আমি উপরে উল্লিখিত ইস্যুটি ( setfaclকাজ না করে) কোনও ব্যবহারকারী সমস্যা বলে মনে হচ্ছে। আমি অবশ্যই এটি অ-রুট ব্যবহারকারীর অনুমতি অনুসারে বা আমার ব্যবহারকারীর মালিকানাধীন কোনও ডিরেক্টরিের বিরুদ্ধে চালানোর চেষ্টা করে যাচ্ছি। মালিকানা সম্পর্কিত সমস্যাগুলি পেতে আপনি এমন docker-entrypoint.shস্ক্রিপ্ট ব্যবহার করতে পারেন যা চিত্রটির ব্যবহারকারী হিসাবে কমান্ড চালানোর আগে chownবা setfaclমূল ব্যবহারকারী হিসাবে ব্যবহার করবে। এখনও হিসাবে আমি মালিকানা এবং অনুমতি সংক্রান্ত সমস্যাগুলি পরিচালনা করতে দুটি সম্ভাব্য বিকল্প চিহ্নিত করেছি:

  • sudoমালিকানা পরিবর্তন করতে বা অ্যাক্সেস নিয়ন্ত্রণের তালিকা সেট করতে ব্যবহার করুন ।
  • আপনার ধারকটিকেroot ব্যবহারকারীর সাহায্যে চালানোর অনুমতি দিন এবং তারপরে gosu বা su-exec ব্যবহার করে আদেশটি কার্যকর করতে অন্য ব্যবহারকারীর কাছে নামুন

আমি আমার স্ব-প্রেসক্রিপটিভ পদ্ধতির জন্য উপরের দুটি পর্যবেক্ষণ একত্রিত করেছি, তাই ...

  1. যখনই কোনও ডকার পাত্রে হোস্টের ভলিউম মাউন্ট হবে যা হোস্টের docker.sockসাথে ভাগ করে নেবে, এটি পরামর্শ দেওয়া হয় যে ডিরেক্টরিগুলি মেলাতে হবে। উদাহরণস্বরূপ, যদি ডকফাইফিলের ভলিউম মাউন্টটিকে ঘোষনা করা হয় /var/dataতবে /var/dataহোস্ট থেকে মাউন্ট হিসাবে (যেমন -v /var/data:/var/data)। এটি বিশেষত যদি আপনার কাছে ফাইল বা ডিরেক্টরি থাকে যার অধীনে /var/dataআপনি ধারকটির মধ্যে থেকে একটি নতুন ধারক থেকে মাউন্ট করতে চান।
  2. অনুমতি সম্পর্কে সক্রিয় থাকুন, সর্বদা একটি docker-entrypoint.shফাইল অন্তর্ভুক্ত করুন যা খুব কমপক্ষে একটি মাউন্টড ডিরেক্টরিতে মালিকানা বা অ্যাক্সেস নিয়ন্ত্রণ আপডেট করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.