আমার dbaগ্রুপের ব্যবহারকারীদের database@পরিষেবাগুলি নিয়ন্ত্রণ করার অনুমতি দেওয়া দরকার । এই সম্পর্কিত প্রশ্নের উত্তরটি হ'ল কেবলমাত্র systemctl"ক্রিয়াগুলি" তালিকাভুক্ত করা যা আমি sudoersফাইলে অনুমতি দিতে চাই , তবে তা আমার ক্ষেত্রে প্রযোজ্য না কারণ সিস্টেমে কোন ডাটাবেস থাকতে পারে তা আমি আগেই জানি না। উদাহরণস্বরূপ, যদি আমি তালিকা করি
%dba = /usr/bin/systemctl start database@awsesomeapp
%dba = /usr/bin/systemctl start database@anotherawsesomeapp
%dba = /usr/bin/systemctl start database@yetanotherawsesomeapp
%dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp
# ... other "verbs" omitted for brevity
এটি ভবিষ্যতে যে দৃষ্টান্তগুলি থাকতে পারে তা কভার করে না এবং একটি ডিবিএ সক্ষম হবে না
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
যাইহোক, আমি একটি নির্দিষ্ট সিস্টেমের সাথে ফিডিংয়ের চেয়ে প্যাকেজিংয়ের ক্ষেত্রে আরও বেশি চিন্তা করছি।
মনে রাখবেন, অন্য সম্পর্কিত প্রশ্নের এই আশ্চর্যজনক উত্তরে যেমন দেখানো হয়েছে , এর জন্য sudo গ্লোব ব্যবহার করা চূড়ান্তভাবে নিরাপত্তাহীন:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
অনুমতি দেয় না
$ sudo systemctl start database@awsesomeapp unrelatedservice
আমার সন্দেহ হয় ব্যবহার sudoকরা আমার সমস্যার সমাধান করবে না (যদিও আমি নিশ্চিত আশা করি আমি ভুল করছি)। রুটবিহীন ব্যবহারকারীদের systemdপরিষেবা নিয়ন্ত্রণ করতে অন্য কোনও উপায় আছে কি ?
এটির মূল্যের জন্য, ভবিষ্যতে একটি CentOS 7 সিস্টেম এবং RHEL7 সিস্টেমে এটি করা আমার দরকার। আর্ক লিনাক্সে কাজ করা সমাধানগুলিতেও আমি আগ্রহী।