লগইন পাসওয়ার্ড থেকে আলাদাভাবে sudo পাসওয়ার্ড সেট করুন


29

একটি সুবিধাভোগী ব্যবহারকারী হিসাবে আমি sudoলগইনে ব্যবহৃত পাসওয়ার্ডটি অন্যটিতে পাসওয়ার্ড সেট করার চেষ্টা করছি ।

আমি কিছু গবেষণা করেছি কিন্তু উত্তর খুঁজে পাইনি। কি sudoযে কনফিগারেশন ধরনের সমর্থন করে?

আপনি যদি কখনও নিজের পাসওয়ার্ডটি হারিয়ে ফেলেন তবে আপনি সমস্ত কিছু হারাবেন। কেউ rootএকই পাসওয়ার্ড দিয়ে লগ ইন করতে এবং নিজেকে প্রচার করতে পারে ।

sudorootআমন্ত্রণযুক্ত ব্যবহারকারীর পাসওয়ার্ডের পরিবর্তে পাসওয়ার্ড জিজ্ঞাসা করার একটি বিকল্প রয়েছে , ( rootpw) তবে rootপাসওয়ার্ড ভাগ করে নেওয়ার বিষয়টি অবশ্যই কোনও বিকল্প নয়, এজন্যই আমরা সেট আপ করি sudo

আমি config 2FAঅতীতে করেছি, এটি দুর্দান্ত কাজ করেছে, তবে অটোমেশনের উদ্দেশ্যকেও হারায়। উদাহরণস্বরূপ, যদি আপনি কোনও expectস্ক্রিপ্ট সহ কয়েক ডজন সার্ভার জুড়ে কোনও অধিকারযুক্ত কমান্ড কার্যকর করতে চান , যোগ 2FAকরে আপনাকে এটি করার অনুমতি দেয় না।

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


1
আপনার এই ঠিক কেন দরকার? সমস্যাটি অন্য কোথাও হতে পারে। কোনও সুবিধাযুক্ত অ্যাকাউন্টে সিস্টেমে লগ ইন করার জন্য ডুয়াল-ফ্যাক্টর প্রমাণীকরণ রাখা এবং তারপরে 'NOPASSWD' থাকা ভাল না, যাতে সুডো পাসওয়ার্ড না জিজ্ঞাসা করে? তারপরে অবশ্যই নেটওয়ার্কটি ডাউন থাকাকালীন লগইন করতে সক্ষম হওয়ার জন্য শক্তিশালী পাসওয়ার্ড সহ অবশ্যই একটি পৃথক জরুরি স্থানীয় অ্যাকাউন্ট থাকা উচিত (কোনও এসএসএস অ্যাক্সেস নেই)।
jirib

উত্তর:


30

আপনি যদি ব্যবহারকারীর পাসওয়ার্ডের বিপরীতে রুট পাসওয়ার্ড জানতে চান তবে এমন বিকল্প রয়েছে যা আপনি রাখতে পারেন /etc/sudoersrootpwবিশেষত এটি রুট পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে। আছে runaspwএবং targetpwপাশাপাশি; বিশদগুলির জন্য sudoers (5) ম্যানপেজ দেখুন।

এগুলি ছাড়াও সুডো পিএএম এর মাধ্যমে তার প্রমাণীকরণ (অন্যান্য কিছুর মতো) করে। পিএএম প্রতি অ্যাপ্লিকেশন কনফিগারেশন সমর্থন করে। সুডোর কনফিগারেশনটি অন্ততঃ আমার দেবিয়ান সিস্টেমে রয়েছে /etc/pam.d/sudoএবং এটি দেখতে দেখতে:

$ cat sudo 
#%PAM-1.0

@include common-auth
@include common-account
@include common-session-noninteractive

অন্য কথায়, ডিফল্টরূপে, এটি সিস্টেমের সমস্ত কিছুর মতো প্রমাণীকরণ করে। আপনি সেই @include common-authলাইনটি পরিবর্তন করতে পারেন এবং পাম (এবং এইভাবে sudo) একটি বিকল্প পাসওয়ার্ড উত্স ব্যবহার করতে পারেন। সাধারণ-প্রমাণীকরণে অ-মন্তব্য করা-না হওয়া লাইনগুলি দেখতে এমন কিছু দেখতে (ডিফল্টরূপে, আপনি যেমন, এলডিএপি ব্যবহার করছেন তবে এটি ভিন্ন হবে):

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

আপনি তার pam_userdb.soপরিবর্তে উদাহরণস্বরূপ ব্যবহার করতে পারেন pam_unix.soএবং বার্কলে ডিবি ডাটাবেসে আপনার বিকল্প পাসওয়ার্ড সংরক্ষণ করতে পারেন ।

উদাহরণ

আমি ডিরেক্টরি /var/local/sudopass, মালিক / গোষ্ঠী root:shadow, মোড তৈরি করেছি 2750। এর ভিতরে, আমি এগিয়ে গিয়ে একটি পাসওয়ার্ড ডাটাবেস ফাইল তৈরি করেছিলাম db5.1_load(যা দেবিয়ান হুইজির ব্যবহারে বার্কলে ডিবি এর সংস্করণ):

# umask 0027
# db5.1_লোড -h / var / স্থানীয় / সুডোপাস -t হ্যাশ -T passwd.db
এন্থনি
WMaEFvCFEFplI
^D

mkpasswd -m desপাসওয়ার্ড "পাসওয়ার্ড" ব্যবহার করে সেই হ্যাশ তৈরি হয়েছিল । খুব উচ্চ সুরক্ষিত! (দুর্ভাগ্যক্রমে, পাম_উসারডবি প্রাচীন crypt(3)হ্যাশিংয়ের চেয়ে ভাল কিছু সমর্থন করে না বলে মনে হয় )।

এখন, লাইনটি সম্পাদনা করুন /etc/pam.d/sudoএবং সরান @include common-auth, এবং এর পরিবর্তে এটি স্থাপন করুন:

auth    [success=1 default=ignore]      pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

নোট করুন যে pam_userdb .dbপাস করা ডাটাবেসে একটি এক্সটেনশন যুক্ত করে, তাই আপনাকে অবশ্যই এটিকে ছাড়তে হবে .db

মতে dannysauer মধ্যে একটি মন্তব্য , আপনি একই সম্পাদনা করার প্রয়োজন হতে পারে /etc/pam.d/sudo-iহিসাবে ভাল।

এখন, sudo করতে, আমাকে অবশ্যই passwordআমার আসল লগইন পাসওয়ার্ডের পরিবর্তে ব্যবহার করতে হবে:

অ্যান্টনি @ সুডোস্টেস্ট: ~ do সুডো-কে
অ্যান্টনি @ সুডোটেস্ট: ~ $ সুডো ইকো-ই 'worked নিট ওয়ার্ক'
অ্যান্টনির জন্য [sudo] পাসওয়ার্ড: passwordRETURN

এটা কাজ করেছে

"সুডো-আই" কনফিগার করার বিষয়টিও নিশ্চিত করুন, যা সুডোর নতুন সংস্করণগুলি প্রায়শই "sudo -i" এর জন্য ব্যবহার করে (যদি বিক্রেতা কিছু পরিবর্তন না করে)।
ড্যানিসাউয়ার 21

আপনি কি পিএএম কনফিগারেশন pls বিস্তারিত বর্ণনা করতে পারেন?
শিউ শেক

@ শিউশ্যাক আমি পিএএম কনফিগারেশনের পরিবর্তনগুলি সহ একটি উদাহরণ যুক্ত করেছি।
ডার্বোবার্ট

ধন্যবাদ। তবে আমি রেডহাট / সেন্টোস বা উত্সগুলিতে কোথাও db51- ব্যবহারগুলি খুঁজে পাচ্ছি না, এটি কেবলমাত্র দেবিয়ান বৈকল্পিকগুলিতেই পাওয়া যায়?
Shuu Shắc

3
crypt(3)গ্লিবির আধুনিক সংস্করণগুলিতে " প্রাচীন হ্যাশিং" এর শা -512 সমর্থন রয়েছে, যেমন। mkpasswd -m sha-512। pam_userdb.so এগুলি ঠিকঠাকভাবে পরিচালনা করতে পারে।
অ্যান্ড্রু ডোমাসেক

6

রেডহ্যাট / সেন্টোসের জন্য, নিম্নলিখিত পদক্ষেপগুলির সাথে প্রয়োজনীয়তা অর্জন করা যেতে পারে:

কাস্টম ব্যবহারকারী এবং পাস করুন:

# db_load -t hash -T /usr/local/etc/passwd.db
user
pass
^d

Sudo pam.d ফাইলটি এমনভাবে সম্পাদনা করুন যা দেখে মনে হয়:

$ cat /etc/pam.d/sudo

auth            required        pam_userdb.so db=/usr/local/etc/passwd
account         required        pam_userdb.so db=/usr/local/etc/passwd
password        include         system-auth

session         optional        pam_keyinit.so revoke
session         required        pam_limits.so

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


পিএএম-এ সম্পূর্ণ অ্যাকশন সিনট্যাক্স সহ এটি করতে সক্ষম হওয়া উচিত। উদাহরণস্বরূপ, [user_unknown=ignore,success=ok,default=bad]... তবে এটি সঠিক করার জন্য আপনাকে তার সাথে খেলতে হবে (এবং পিএএম
ডকসগুলি

এটি pam_succeed_ifব্যবহারকারীগুলির একটির তালিকার একটিতে থাকলে একটি মডিউলটি এড়িয়ে বা দুটি মডিউলটি এড়িয়ে যেতে ব্যবহার না করেও সম্পন্ন করা যেতে পারে ।
ড্যানিসাউয়ার

সুতরাং, সাধারণভাবে এর মতো কিছু: /// অথ [সাফল্য = অগ্রাহ্য করুন ডিফল্ট = 1] প্যান_সুসিডার_আইফ.সু ব্যবহারকারী ড্যানির মধ্যে: স্পষ্ট /// লেখক যথেষ্ট ড্যানি_ফ্রঙ্ক_মডিউল.সো /// লেখক পর্যাপ্ত নয়_ড্যানি_ফ্রঙ্ক.সো
ড্যানিসাউয়ার

3

আমার মনে হয় না সুডো এমন একটি সেটআপ সমর্থন করে। সুডো পাসওয়ার্ড প্রম্পটের উদ্দেশ্য হ'ল সুডো কমান্ড জারি করা ব্যক্তি একই ব্যক্তি যে লগ ইন হয়েছে তা নিশ্চিত করা এবং এটি করার সহজতম উপায় হ'ল বর্তমানে লগ ইন করা ব্যবহারকারীকে তাদের পুনরায় প্রমাণীকরণের জন্য জিজ্ঞাসা করা।

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


3
সুডো (আপনি রুট পাসওয়ার্ড, বা একটি নির্দিষ্ট ব্যবহারকারীর, বা লক্ষ্যবস্তু ব্যবহারকারীর পাসওয়ার্ড জানতে চাওয়ার ক্ষেত্রে ব্যতীত) তা করেন না, তবে পিএএম করে। এবং sudo প্যাম ব্যবহার করে।
ডারোবার্ট

1

আপনার উদ্বেগ হ'ল আপনার অ্যাকাউন্টের পাসওয়ার্ডটি প্রকাশ করা যেতে পারে। সমাধানটি হ'ল লগইন পাসওয়ার্ডটি এমনভাবে ব্যবহার না করা যাতে এটি প্রকাশ করা যায়। Ssh এর সাহায্যে পাসওয়ার্ডটি তারে এনক্রিপ্ট করা থাকে, তাই এটি ঠিক আছে। পাসওয়ার্ড অনুমানের আক্রমণগুলি পাসওয়ার্ডের গোপনীয়তা রক্ষা করতে নয়, লোকে পাসওয়ার্ড প্রমাণীকরণ বন্ধ করে দেয় sh আপনি যদি অন্য কোনও অ্যাকাউন্টের জন্য একই অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করেন তবে নিশ্চিত হয়ে নিন যে আপনি পাসওয়ার্ড সরবরাহ করতে একটি সুরক্ষিত, এনক্রিপ্ট করা চ্যানেল ব্যবহার করছেন। আপনি যদি কোনও কীলগার বা অন্য যে কোনও বিষয়ে উদ্বিগ্ন হন, লগ ইন করতে অবিশ্বস্ত মেশিন ব্যবহার বন্ধ করুন।

যদি কেউ আপনার এসএস পাসওয়ার্ড পেতে পারেন তবে তারা সম্ভবত বিকল্প সুডো পাসওয়ার্ডও পেতে পারেন, তাই কেবলমাত্র আরও সুরক্ষার বিভ্রান্তির জন্য বিষয়গুলিকে আরও জটিল করার চেয়ে আপনার সংযোগগুলি আরও সুরক্ষিত করার জন্য সময় ব্যয় করা ভাল।


0

আমার এমন সিস্টেমে তাত্ক্ষণিকভাবে অ্যাক্সেস নেই যেখানে আমি এটি পরীক্ষা করতে এবং বিশদগুলি নিয়ে কাজ করতে পারি, তবে আমার একটি ধারণা আছে:

  • (ধরে নিন আপনার সাধারণ লগইন অ্যাকাউন্টটি shau।)
  • একটি দ্বিতীয় অ্যাকাউন্ট তৈরি করুন: shau2। (আপনি এটির মতো ইউআইডি রাখবেন কিনা তা আমি নিশ্চিত নই shau।)
  • কনফিগার shau2NOPASSWD সঙ্গে উবুন্টু বিশেষাধিকার আছে।
  • করার জন্য একটি নাম বা একটি শেল স্ক্রিপ্ট সেট আপ করুন su shau2 -c sudo "$@"। এটির shau2পাসওয়ার্ড জিজ্ঞাসা করা উচিত । যে সঠিকভাবে প্রবেশ করানো হয়, তাহলে এটি চালানো হবে sudoযেমন shau2 (যা একটি পাসওয়ার্ড না জিজ্ঞেস করা উচিত)।
  • shauএর সুডোর সুবিধাগুলি সরান ।

দুর্ভাগ্যক্রমে, আপনাকে এমন প্রতিটি ব্যবহারকারীর জন্য পুনরাবৃত্তি করতে হবে যার সুদ সুবিধা রয়েছে।


0

উত্তরের জন্য আপনাকে ধন্যবাদ @ শিউ শুক ! এই সমাধানটি লিনাক্সমিন্ট 17.1 দারুচিনি 32 বিটের জন্যও কাজ করে (আমি চালানোর জন্য কেবল প্যাকেজ ইনস্টল করেছি )।db-utildb_load

তবে আমি ফলাফল passwd.dbফাইলটি নিয়ে খুব বিভ্রান্ত । আমি আপনার উত্তরের মতোই করেছি (তবে ডেভিড এবং জোন ব্যবহার করেছেন , তারা আরও আকর্ষণীয় দেখায়):

# db_load -t hash -T /usr/local/etc/passwd.db
david
jones
^d

তবে প্রবেশ করা শংসাপত্রগুলি হ্যাশ ফাইলের ভিতরে সরল পাঠ্য হিসাবে সংরক্ষণ করা হয়:

# grep 'jones.*david'  /usr/local/etc/passwd.db
Binary file /usr/local/etc/passwd.db matches

আপনি তাও দেখতে পারেন ডেভিড এবং জোনস মাধ্যমে mcedit :

এখানে চিত্র বর্ণনা লিখুন

হ্যাঁ, এর অনুমতিগুলি সীমাবদ্ধ করা সম্ভব /usr/local/etc/passwd.db। তবে যাইহোক, সরল পাঠ্য হিসাবে সঞ্চিত ব্যবহারকারীর নাম এবং পাসওয়ার্ড খারাপ।


এমনকি পৃথক sudo পাসওয়ার্ড সহ কিছু সম্ভাব্য সুরক্ষা গর্ত রয়েছে (ডিফল্ট ডিস্ট্রো সেটআপ দ্বারা)। সুতরাং, su এর জন্য পৃথক পাসওয়ার্ড প্রযোজ্য নয় (সুতরাং রুট সেশন শুরু করা suএবং লগইন পাসওয়ার্ড ব্যবহার করে এটি সম্ভব )। পলিসি কিট দ্বারা পৃথক পাসওয়ার্ডকেও সম্মান করা হয় না ( সাইনাপটিক ব্যবহার করে synaptic-pkexecলগইন পাসওয়ার্ড ব্যবহার করা সম্ভব । তারপর প্যাকেজগুলি মুছুন ...)। কনফিগারেশন ফাইলগুলির অতিরিক্ত সুর করার দ্বারা এই সমস্যাগুলি দূর করা যেতে পারে।

সাধারণভাবে মনে হয় যে সুরক্ষিত পৃথক sudo পাসওয়ার্ড কেবলমাত্র কাস্টম পিএএম মডিউলের সাহায্যে অর্জন করা যেতে পারে (সম্ভবত, এই জাতীয় মডিউল পাসওয়ার্ড এবং SHA-512 হ্যাশ ফাইল থেকে পড়তে পারে) বা SELinux কার্যকারিতা তুলনা করে।

পিএস: দুঃখিত, এটি একটি মন্তব্য করা উচিত। তবে এটি পাঠ্য বিন্যাসের কারণে উত্তর হিসাবে যায়। বোঝার জন্য ধন্যবাদ.

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