সুপারভাইজারের সাথে কোনও ব্যবহারকারী পুনরায় আরম্ভ করতে পারে এমন কোন প্রক্রিয়া সীমাবদ্ধ করে?


14

আমি জ্যাঙ্গো সাইট পরিচালনা করে একটি গ্যানিকর্ন প্রক্রিয়া পরিচালনা করতে তত্ত্বাবধায়ক ব্যবহার করেছি, যদিও এই প্রশ্নটি তত্ত্বাবধায়ক দ্বারা পরিচালিত কোনও কিছুর সাথে সম্পর্কিত হতে পারে। পূর্বে আমি আমাদের সার্ভারটি পরিচালনা ও ব্যবহার করতে সক্ষম একমাত্র ব্যক্তি ছিলাম এবং সুপারভাইজার কেবল রুট হিসাবে দৌড়ে যেতাম এবং supervisorctl restart myappপ্রয়োজনে চালানোর জন্য আমি sudo ব্যবহার করতাম ।

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

আমি এই ব্লগ পোস্ট অনুসরণ:

http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/

এবং নন-রুট ব্যবহারকারীদের সুপারভাইসেক্টল ব্যবহার করার অনুমতি দিতে সক্ষম হয়েছিল, তবে এখন যে কেউ অন্য কারও প্রক্রিয়া পুনরায় আরম্ভ করতে পারবেন। এটির চেহারা থেকে, সুপারভাইজারের কাছে প্রতি ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করার কোনও উপায় নেই।

রুট ছাড়াই কেবল ব্যবহারকারীদের নিজস্ব প্রক্রিয়া পুনরায় চালু করার মঞ্জুরি দেওয়ার বিষয়ে কারও কোনও ধারণা রয়েছে?

সম্পাদনা: কিছু জিনিস যা আমরা ভেবেছিলাম সেগুলির মধ্যে রাইডের মালিকানাধীন একটি স্ক্রিপ্ট লিখে সুইড বিট সেটটি অন্তর্ভুক্ত যার মধ্যে কিছুই নেই supervisorctl restart myappএবং এটি ব্যবহারকারীর ডিরেক্টরিতে রেখে দেওয়া উচিত myapp। ইন্টারনেট বলে মনে হচ্ছে যে ভুলভাবে করা গেলে এই জাতীয় স্ক্রিপ্টটি নিরাপত্তাহীন। আমরা একটি কাস্টম ডেমন রচনাও বিবেচনা করেছি যা নির্দিষ্ট ব্যবহারকারীর কাছ থেকে আদেশগুলি শুনে এবং যদি ব্যবহারকারীর অনুমতি থাকে তবে সুপারভাইজার প্রক্রিয়াটি পুনরায় চালু করে ar যদি একটি সহজ সমাধান কাজ করে তবে এই ধারণাটি অতিরিক্ত জটিল বলে মনে হচ্ছে।

উত্তর:


33

sudoএকই জিনিসটি সম্পাদন করতে আপনি আপনার কাস্টম স্ক্রিপ্টের জায়গায় ব্যবহার করতে পারেন । এটি হ'ল, ডিফল্ট supervisordকনফিগারেশন দেওয়া হয়েছে , যার মধ্যে কেবলমাত্র রুট চলতে supervisorctlপারে, আপনি এটিতে এন্ট্রি রাখতে পারেন /etc/sudoers:

alice ALL = (root) NOPASSWD:/usr/bin/supervisorctl restart app1
bob ALL = (root) NOPASSWD:/usr/bin/supervisorctl restart app2

এটি কোনও পাসওয়ার্ড না দিয়ে রুট হিসাবে aliceচালানোর অনুমতি দেয় sudo /usr/bin/supervisorctl restart app1এবং এটি bobপুনরায় আরম্ভ করার অনুমতি দেয় app2


আহ, দুর্দান্ত। আমি ঠিক এই ধরণের জিনিসটি খুঁজছিলাম। আপনার সাহায্যের জন্য ধন্যবাদ!
ডেভিডসক্লাগান

1
মনে রাখবেন যে নিয়মের পরে আপনার এই স্ট্রিংটি যুক্ত করা উচিত%sudo ALL=(ALL:ALL) ALL
Павел Тявин
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.