Sudoers ফাইল, ব্যবহারকারীর জন্য NOPASSWD সক্ষম, সমস্ত কমান্ড


142

মুখবন্ধ

এটি সুডোয়ার্স ফাইল এবং সাধারণভাবে সুডো কমান্ড সম্পর্কিত মোটামুটি জটিল প্রশ্ন।

দ্রষ্টব্য: আমি উবুন্টু ডেস্কটপ ১৩.০৪ চলমান একটি ডেডিকেটেড মেশিনে এই পরিবর্তনগুলি করেছি, যা আমি শেখার উদ্দেশ্যে বিশুদ্ধভাবে ব্যবহার করি। আমি বুঝতে পারি যে NOPASSWD sudo সক্ষম করার জন্য এটি একটি বিশাল সুরক্ষা ঝুঁকি।

প্রশ্ন

প্রথমদিকে, আমার একমাত্র সূডোর ফাইল (/ 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
nicholsonjf    ALL=NOPASSWD: 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

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

এটি কেন কাজ করেছে কেউ ব্যাখ্যা করতে পারেন?

ব্যবহারকারী 'নিকলসোনজফ' 'অ্যাডমিন' এবং 'সুডো' (সুডোয়ার্স ফাইলে নীচে দেখানো হয়েছে) দুটি গ্রুপ স্পেসিফিকেশন থেকে সুডোর অধিকারগুলি পেয়েছিলেন কারণ তারা 'নিকোলসনজ্ফ' ব্যবহারকারীর স্পেসিফিকেশনটিকে ওভাররাইড করছে কারণ তারা আরও নীচে ছিল কনফিগার ফাইল?


7
দ্রষ্টব্য: ALL = NOPASSWD: ALL কে ALL = (ALL) নোপাএসডাব্লুডি: সব না হয় এটি কাজ করে না ...
আন্দ্রে ভার্ভিজ


উত্তর:


164

আপনি যে লাইনটি যুক্ত করেছেন তা ওভাররাইড করা হয়েছে। থেকে man sudoers:

যখন একাধিক এন্ট্রি কোনও ব্যবহারকারীর সাথে মেলে, সেগুলি ক্রমে প্রয়োগ করা হয়। যেখানে একাধিক ম্যাচ রয়েছে, সর্বশেষ ম্যাচটি ব্যবহৃত হয় (যা সর্বাধিক নির্দিষ্ট ম্যাচটি নয়।

আপনার ক্ষেত্রে nicholsonjfএই গ্রুপের সদস্য ছিলেন sudoতাই তাঁর জন্য এই লাইনটি প্রয়োগ করা হয়েছিল:

%sudo   ALL=(ALL:ALL) ALL

আপনি যদি এন্ট্রিগুলিকে ওভাররাইড করতে চান /etc/sudoersতবে নতুন এন্ট্রিগুলি তাদের পরে রাখুন।

নতুন এন্ট্রি মত দেখতে হবে

myuser ALL=(ALL) NOPASSWD: ALL একক ব্যবহারকারীর জন্য, বা

%sudo ALL=(ALL) NOPASSWD: ALL একটি দলের জন্য।


6
সম্পূর্ণ সমাধানের জন্য আমি NOPASSWDএই উত্তরে কিছু দেখতে চাই ...
ড্যানিয়েল অল্ডার

22
আমি মনে করি, সমাধানটি হওয়া উচিত:%sudo ALL=(ALL) NOPASSWD:ALL
ড্যানিয়েল অল্ডার

3
@ ড্যানিয়েলএল্ডার: প্রশ্ন থেকে স্পেসিফিকেশন লাইনটি nicholsonjf ALL=NOPASSWD: ALLসঠিক। আমি উত্তর হিসাবে ব্যাখ্যা হিসাবে এটি ঠিক একটি ভুল জায়গায় ছিল। ------ Runasস্পেসিফিকেশন - আপনার ক্ষেত্রে (ALL)- isচ্ছিক। আপনি স্পেসিফিকেশন বর্জন আপনি যেমন কমান্ড চালাতে পারেন rootএবং আপনি ব্যবহার করতে পারবেন না -uএবং -gএর অপশন sudo
পাবুক

এটি একাধিক ব্যবহারকারীর পাসওয়ার্ডহীন অ্যাক্সেস দেয়ায় এটি আরও খারাপ সুরক্ষা ঝুঁকি। যদি এটি আপনার ব্যক্তিগত পিসি হয় তবে তা তাত্পর্যপূর্ণ নয় - সম্ভবত। আমি কেবল ব্যক্তিগত লাইনটি সরিয়ে রাখব, শেষ পর্যন্ত।
মার্ক উইলিয়ামস

4
সংশোধন না করে সংশোধন করার পরিবর্তে, কোনও ডেবিয়ান / উবুন্টু ভিত্তিক কিছু ব্যবহার করা হলে (সাধারণত প্রয়োগ করা যেতে পারে, অন্য কোথাও এটি দেখা যায় না) আপনার পরম সর্বোত্তম অনুশীলন বেট হ'ল /etc/sudoers.d/ এ কোনও ফাইলের জন্য কাস্টম কমান্ড যুক্ত করা এবং sudoers ত্যাগ করা নিজেই প্যাকেজ ম্যানেজার দ্বারা পরিচালিত হবে।
অ্যাকুরিওন

119

একটি একক ব্যবহারকারীর জন্য, sudoersব্যবহার করে আপনার ফাইলের শেষে এই লাইনটি যুক্ত করুনsudo visudo

superuser ALL=(ALL) NOPASSWD: ALL

একটি দলের জন্য

%supergroup  ALL=(ALL) NOPASSWD: ALL

8
আমি এই উত্তরটি পড়ার আগে আমি করেছিলাম %sudo ALL=NOPASSWD: ALLএবং এটি কার্যকর হয়। আমি কি কেবলমাত্র একমাত্র বর্ধিত ব্যাকাস-নওর ফর্মটি বুঝতে পারি না?
ভিনস

4
@ আপনার কমান্ডটি ব্যবহার করার পরে আমি sudosudo সুবিধাগুলি ব্যতীত পাসওয়ার্ড ছাড়াই পারি না । যেমন sudo -u root -iকাজ করে, কিন্তু sudo -u git -iহয় না।
নেভারইন্ডিংকিউ

এটি স্বীকৃতের চেয়ে যথেষ্ট সহায়ক জবাব, এটি যখন ওপি-র প্রশ্নের উত্তর দেয়, সম্ভবত গুগলের মাধ্যমে বেশিরভাগ লোক এই পৃষ্ঠায় পৌঁছায় না।
মাহমুদ আল-কুদসি

3

বর্তমান ব্যবহারকারী যখন কখনও ব্যবহারকারীর পাসওয়ার্ডের জন্য অনুরোধ sudoনা করে

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-password

এটি নামক একটি ফাইল তৈরি করবে /etc/sudoers.d/dont-prompt-<YOUR USERNAME>-for-sudo-passwordএবং এর অর্থ হ'ল আপনি যে কমান্ডটি ব্যবহার করেছেন সেই sudoআদেশটি কার্যকর করার সময় তাদের পাসওয়ার্ডের জন্য অনুরোধ করা হবে না । আপনাকে এখনও অন্য প্রসঙ্গে যেমন উবুন্টু সফ্টওয়্যার গ্রাফিকাল অ্যাপ্লিকেশন থেকে স্টাফ ইনস্টল করার জন্য পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে ।

echoকমান্ডের লাইনটি যুক্ত করার মাধ্যমে এটি করার সুবিধাগুলি /etc/sudoersহ'ল sudo visudo(অন্যান্য উত্তরগুলির দ্বারা প্রস্তাবিত)

  1. /etc/sudoersকখনও কখনও সিস্টেম আপডেট দ্বারা সংশোধিত হয়, যখন ফাইলগুলি /etc/sudoers.dহয় না
  2. sudo visudoপদ্ধতি ত্রুটি প্রবণ (যেমন এ প্রশ্নেরই প্রমাণ) হল, যেহেতু কপি / কমান্ড পেস্ট অনেক জগাখিচুড়ি আপ কঠিন

sudo cat /etc/sudoers.d/READMEএই বৈশিষ্ট্য অনুসারে ( /etc/sudoers.dডেবিয়ান ১.7.২.২.১-১- এর পরে ডেবিয়ান ১.7.২.২.১-১ থেকে ডিফল্টরূপে সক্ষম হয়েছে যা 1990 এর দশকের শেষের দিকে প্রকাশিত হয়েছিল (উবুন্টু দেবিয়ার উপর ভিত্তি করে )।


(আপনি যদি আরও ভাল ফাইল নাম দিয়ে আসতে পারেন তবে আমার উত্তর সম্পাদনা করতে নির্দ্বিধায়)
বোরিস

0

হিসাবে ভিন্স করেছে একটি মন্তব্যে উল্লেখ , আপনি এই লাইন ব্যবহার করতে পারেন:

%sudo ALL=NOPASSWD: ALL

(এই দেখানো লাইন থেকে ভিন্ন সেই উত্তর , এবং এটা আমার জন্য সমস্যার সমাধান।)


@ এলিয়া এটি অন্য উত্তরগুলির চেয়ে আলাদা নয়। এটি যা করে তা হ'ল supergroupফেদিরের উত্তরের স্থানধারককে প্রতিস্থাপন করা sudo। এরপরে আর কী, গ্রুপের আরেকজন ব্যবহারকারী wheel? অথবা ব্যবহারকারী যে কোনও গ্রুপ ব্যবহার করছেন?
মুরু

1
@ মুরু "এটি যা যা করে তা হ'লsupergroupsudo ফেদিরের উত্তরের স্থানধারককে প্রতিস্থাপন করে ।" কি? লাইন ফলন supergroupদিয়ে প্রতিস্থাপন , না । sudo%supergroup ALL=(ALL) NOPASSWD:ALL%sudo ALL=(ALL) NOPASSWD:ALL%sudo ALL=NOPASSWD: ALL
এলিয়াহ

যা তর্কতামূলকভাবে আরও খারাপ, যেহেতু এখন NOPASSWD কেবলমাত্র লক্ষ্য ব্যবহারকারী হিসাবে মূলের জন্য। সুতরাং, এটি এমনকি প্রশ্নের সঠিক উত্তর দেয় না!
মুড়ু

@muru কি হয় এমনকি তর্কসাপেক্ষে অবশ্য একটি প্রতিকল্পন হয় supergroupসঙ্গে sudo। এটি তার নিজস্ব উত্তর, ধন্যবাদ পোস্ট বা অন্য উত্তরের অনুলিপি নয়। তবে হ্যাঁ, আমি সম্মত হই: যতক্ষণ না তারা এটির অভিপ্রায় না রাখেন , অন্যান্য উত্তরগুলির পদ্ধতিগুলির মতো এটি বেশিরভাগ ব্যবহারকারীর পক্ষে তত ভাল হবে না। (তবে, বিশেষত এই প্রশ্নটি বিবেচনা করে "সমস্ত কমান্ডগুলি," "সমস্ত লক্ষ্যবস্তু ব্যবহারকারী নয়," বলে আমি মনে করি না যে এটি কার্যকরভাবে জিজ্ঞাসা করা প্রশ্নের উত্তর দেওয়ার চেষ্টাও করছে না।)
এলিয়ায়

এটি আমার পক্ষে কাজ করেছে এবং আমি অন্যান্য ব্যবহারকারীর সাথে ভাগ করতে চেয়েছিলাম :) (যদি ইচ্ছা হয় তবে আমার মন্তব্য সরিয়ে দিন)।
ই ফোর্টস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.