ব্যবহারকারীকে পাসওয়ার্ড ছাড়াই systemctl / systemd পরিষেবা চালানোর অনুমতি দেয়


25

আমি ডিফল্ট ব্যবহারকারী, ubuntuপাসওয়ার্ডের জন্য অনুরোধ না করে একটি নির্দিষ্ট পরিষেবা চালাতে সক্ষম হওয়া চাই।

বিশেষ করে systemctl restart unicorn_my_app.service।

নতুন তৈরি করা গোষ্ঠীতে ব্যবহারকারী যুক্ত করতে এখানে নির্দেশাবলী অনুসরণ করেছেন , যা এর সাথে নিশ্চিত হয়েছে:ubuntuLimitedAdmins

$ getent group LimitedAdmins
LimitedAdmins:x:1001:ubuntu

নিম্নলিখিত পাঠ্যটি সহ ডিরেক্টরিতে একটি নতুন ফাইল তৈরি করা হয়েছে limitedadmins(ব্যবহার করে sudo vim) /etc/sudoers.d:

%LimitedAdmins ALL=NOPASSWD: /etc/init.d/unicorn_ofn_america restart, /etc/init.d/unicorn_ofn_america start

আমি চেষ্টাও করেছি:

%LimitedAdmins ALL=NOPASSWD: /bin/systemctl/unicorn_ofn_america restart, /bin/systemctl/unicorn_ofn_america start

(এবং /bin/systemd)

বিষয়বস্তু /etc/sudoers/ডিফল্ট সঙ্গে নিশ্চিত হয় sudo visudo(অথবা sudo cat /etc/sudoers):

    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # Please consider adding local content in /etc/sudoers.d/ instead of
    # directly modifying this file.
    #
    # See the man page for details on how to write a sudoers file.
    #
    Defaults    env_reset
    Defaults    mail_badpass
    Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specification
    root    ALL=(ALL:ALL) ALL

    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL

    # See sudoers(5) for more information on "#include" directives:

    #includedir /etc/sudoers.d

(হ্যাশ সাইন ইন #includedirএকটি মন্তব্য নয়, তবে # অন্তর্ভুক্ত নির্দেশিক সিনট্যাক্সের অংশ )।

তবে এখনও চলছে একটি পাসওয়ার্ড প্রম্পট systemctl restart unicorn_my_app.service

ডিরেক্টরিটিতে পরিষেবা রয়েছে init.d:

$ ls -l /etc/init.d | grep unicorn
-rwxr--r-- 1 ubuntu ubuntu 1874 Oct 29 06:47 unicorn_my_app

755অ্যাপ্লিকেশনটিতে চোমডিংয়ের চেষ্টা করা হয়েছে , তবে যে ubuntuকোনও উপায়ে এটির মালিক হওয়ার কারণে কোনও পার্থক্য হওয়া উচিত বলে মনে করবেন না ।

এমনকি কোনও পার্থক্য ছাড়াই সিস্টেমটি রিবুট করার চেষ্টা করেছিল। আমি কি পুনরায় চালু / পুনরায় লোডের মতো একটি পদক্ষেপ মিস করছি? কিছু ভুল কনফিগার করছেন?

আমার আরও উল্লেখ করা উচিত যে আমি vimনতুন ফাইলটি তৈরি করতে ব্যবহার করেছি /etc/sudoers.d, কারণ মনে হয় visudoকমান্ডটি কেবল সম্পাদনার জন্য /etc/sudoers।


এছাড়াও unix.stackex
— بدل.

উত্তর:


38

সুডোর ফাইলটি বেশ নমনীয় এবং এর সাথে জটিলতা আসে। আপনি এখানে যা চান তা হ'ল /bin/systemctlনির্দিষ্ট পরামিতি সহ কমান্ডটি অ্যাক্সেসের অনুমতি দেওয়া :

%LimitedAdmins ALL=NOPASSWD: /bin/systemctl restart unicorn_my_app.service

মূলত আপনি ঠিক যে কমান্ড লাইনটি টাইপ করবেন সেটি গ্রহণ করুন, সুরক্ষার স্বার্থে পাথের নামটি হার্ড-কোড করুন এবং এটি আপনার sudoers ফাইলে (বা /etc/sudoers.d) রাখবেন। এবং লক্ষ করুন যে সুডোর সাথে সম্পর্কিত হিসাবে 'স্টার্ট' এবং 'পুনঃসূচনা' সম্পূর্ণ আলাদা; একজনকে অনুমতি দিলে অন্যের অ্যাক্সেস মঞ্জুর হয় না।


1
কাজ করছে বলে মনে হচ্ছে না। আমি ফাইলটি /bin/systemctl restart unicorn_my_app.serviceথেকে সরাসরি অনুলিপি করতে /etc/sudoers.d/limitedadminsপারি এবং এটি সিএলআইতে চালাতে পারি এবং পাসওয়ার্ডের জন্য অনুরোধ জানানো হয়। ব্যবহারকারীর কি ubuntuকোথাও টিপি নির্দিষ্ট করা দরকার বা ALLএটি সমস্ত ডোমেনের জন্য সমস্ত ব্যবহারকারীদের জন্য উন্মুক্ত করে?
— মাইকিএলএল

5
আপনি দৌড়াবেন sudo /bin/systemctl restart unicorn_my_app.serviceএবং এটি পাসওয়ার্ড ছাড়াই চালানো উচিত। (পিএসওপসের উত্তরটি এর থেকে আলাদা করা হলে মন্তব্য হিসাবে পোস্ট করা)
— রোজুয়াভ

1
@ আরসুয়াভ এমন কোনও উপায় আছে যাতে আমরা systemctl restart myapp.serviceএটি ব্যবহার না করে সরাসরি চালাতে পারি sudo।
— কবিরবিধ্যা

আসলেই নয়, তবে আপনি কমান্ডটি কোনও স্ক্রিপ্টে রাখতে পারেন (সুডো উপসর্গ দিয়ে সম্পূর্ণ) এবং তারপরে সেই স্ক্রিপ্টটিকে $ PATH এ স্থাপন করতে পারেন। অথবা এটি একটি শেল ওরফে তৈরি করুন।
— রসুয়াভ

3
মনোযোগ দিন: অন্যান্য ডিস্ট্রোগুলিতে systemctl রয়েছে /usr/bin:-(।
— গেটলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.