পাথ ওয়াইল্ডকার্ড সহ sudoers কীভাবে কনফিগার করবেন?


4

একটি নির্দিষ্ট অঞ্চলের অধীনে যে কোনও পথের জন্য আমার কমান্ডের জন্য সুডো দরকার। উদাহরণ:

sudo mycommand /opt/apps/myapp/...

/ অপ্ট / অ্যাপস / মাই্যাপের অধীনে যে কোনও পথে এই কমান্ডটি চালানোর অনুমতি দেওয়ার জন্য sudoers সিনট্যাক্স কী? এটি সোলারিস 10 সুডো।


আপনার জবাবের জন্য আপনাকে ধন্যবাদ, তবে কমান্ডগুলির পথে যাওয়ার জন্য আমার ওয়াইল্ডকার্ডের দরকার নেই, তবে কমান্ডগুলির পক্ষে যুক্তির জন্য ওয়াইল্ডকার্ডগুলির প্রয়োজন।

উদাহরণস্বরূপ, আমরা এর মতো কিছু করতে চাই ...

sudo mycmd /opt/userarea/area1
sudo mycmd /opt/userarea/area1/area2
sudo mycmd /opt/userarea/area1/area2/area3

এখনও অবধি, sudoers মধ্যে আর্গুমেন্ট জন্য ওয়াইল্ডকার্ড ব্যবহার করে এটি দেখতে:

/opt/userarea/*
/opt/userarea/*/*

এবং দেখে মনে হচ্ছে আমরা যদি N স্তরের ডিরেক্টরি পেতে চাই তবে আমাদের suoers এ এন লাইন দরকার! সমস্ত এন স্তরগুলিকে একটি লাইনে sudoers এ অন্তর্ভুক্ত করার জন্য আরও ভাল উপায় কী? ধন্যবাদ।


1
@ কুলি: আপনাকে এখানে সুপার ইউজারে একটি অ্যাকাউন্ট নিবন্ধন করতে হবে, তারপরে আপনার স্ট্যাক ওভারফ্লো অ্যাকাউন্টটি আপনার প্রোফাইল -> অ্যাকাউন্ট ট্যাবের মাধ্যমে যুক্ত করতে হবে। আপনার সহায়তার দরকার হলে Team@superuser.com ইমেল করুন।
কোয়েট কুইসোট

উত্তর:


1

সুডো ফাইল দ্বারা নিয়ন্ত্রিত হয় /etc/sudoersযা এটি যা করতে পারে এবং কী করতে পারে তা তা বলে। আমি জানি না যে আপনি নীচে উল্লিখিত খুব কারণের কারণে আপনি যা চান তা অর্জন করতে পারবেন কিনা তবে আপনি এই জাতীয় আদেশের একটি গ্রুপ তৈরি করতে পারেন:

Cmnd_Alias TESTAPPS = /opt/dev/myapp/myapp1, /opt/dev/myapp/myapp2

এরপরে আপনি নির্দিষ্ট গোষ্ঠীগুলিকে কেবল এই কমান্ড ব্যবহার করে সুডো চালানোর অনুমতি দিতে পারেন। আমার এই সেটটি আছে:

root    ALL=(ALL)       ALL
%wheel  ALL=(ALL)       ALL

আপনি এতে যোগ করতে পারেন:

%development    ALL=(TESTAPPS)   ALL

বিভ্রান্তিমূলকভাবে, প্রথম ক্ষেত্রে সমস্ত আপনি যে সমস্ত হোস্ট থেকে লগ ইন করছেন তা ইঙ্গিত করে, তাই আপনি নির্দিষ্ট হোস্ট থেকে সুডো চালানো আটকাতে পারেন।

কেবলমাত্র একটি দ্রুত সতর্কতা - আপনি যদি এই কাজটি করেন এবং এই অঞ্চলে লেখার অ্যাক্সেস সক্ষম করেন তবে ব্যবহারকারী কেবল / বিন, / ইউএসআর / বিন বা যে কোনও কিছু থেকে আদেশগুলি অনুলিপি করতে পারে এবং যা তারা রুট হিসাবে পছন্দ করে তা চালাতে পারে। সুতরাং আমি চালাতে পারি sudo /opt/apps/myapp/rm -rf /এবং এটি কাজ করবে। এই কমান্ডগুলি চালাতে পারে সেখানে আপনাকেও সীমাবদ্ধ করতে হবে।


0

আমি একই জিনিসটি করতে চেয়েছিলাম এবং এটি পেয়েছি (স্বীকার করা পুরানো) প্রশ্নটি ...

আমি আরও গবেষণা করার সময় আমি দেখতে পেলাম যে sudoers ম্যান পৃষ্ঠাটি এটি স্পষ্ট করে দিয়েছে যে এটি কোনও আদেশ / পথের নামের জন্য ওয়াইল্ডকার্ডের ম্যাচে স্ল্যাশগুলির সাথে মেলে না। Sudoers (5) থেকে ("ওয়াইল্ডকার্ডস" বিভাগে):

দ্রষ্টব্য যে একটি ফরোয়ার্ড স্ল্যাশ ('/') পথের নামের সাথে ব্যবহৃত ওয়াইল্ডকার্ডগুলির সাথে মিলবে না।

এটি ম্যান পেজে এটি বলে না তবে আমার মনে হয় যে কমান্ড চালানোর জন্য কাউকে /opt/userarea/*এমন কিছু চালানোর চেষ্টা করা উচিত /opt/userarea/../../bin/shযা স্পষ্টতই খারাপ হবে ...

সুতরাং না, এটি আপনার পছন্দ মতো কাজ করবে না (এবং যেমনটি আমি চেয়েছিলাম) - ডিজাইন দ্বারা।


আপনার এই উত্তরটি মুছে ফেলা উচিত যাতে কাউকে বিভ্রান্ত না করে। আসল প্রশ্নটি আর্গুমেন্টে ওয়াইল্ডকার্ড সম্পর্কে ছিল, কমান্ডের মধ্যে নয়। ম্যান পৃষ্ঠাটি যেমন বলেছে: নোট করুন যে কোনও ফরোয়ার্ড স্ল্যাশ ('/') পাথের নামটিতে ব্যবহৃত ওয়াইল্ডকার্ডগুলির সাথে মিলবে না। কমান্ড লাইন আর্গুমেন্টের সাথে মিলে যাওয়ার পরে, ওয়াইল্ডকার্ডগুলির সাথে স্ল্যাশ মিলছে। এটি এমন একটি পথ তৈরি করার জন্য: /usr/bin/*মিলছে /usr/bin/whoতবে নয় /usr/bin/X11/xterm
miken32
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.