ব্যবহারকারীকে পাসওয়ার্ড ছাড়াই 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.