পাসওয়ার্ড ছাড়াই অন্য ব্যবহারকারীর অ্যাকাউন্টে কীভাবে (su) স্যুইচ করবেন


এই নির্দেশিকায়, আমরা কীভাবে কোনও পাসওয়ার্ডের প্রয়োজন ছাড়াই অন্য কোনও নির্দিষ্ট বা ব্যবহারকারীর অ্যাকাউন্টে স্যুইচ করব তা দেখাব। উদাহরণস্বরূপ, আমাদের পোস্টগ্রিস নামে একটি ব্যবহারকারী অ্যাকাউন্ট রয়েছে (ডিফল্ট পোস্টগ্রিসএসকিউএল সুপারভাইজার সিস্টেম অ্যাকাউন্ট), আমরা গ্রুপটিতে প্রতিটি ব্যবহারকারীকে (সাধারণত আমাদের পোস্টগ্র্যাসকিউএল ডাটাবেস এবং সিস্টেম অ্যাডমিনিস্ট্রেটররা) su <ব্যবহার করে পোস্টগ্রাস অ্যাকাউন্টে স্যুইচ করতে চাই want/কোড> একটি পাসওয়ার্ড প্রবেশ না করে কমান্ড।

ডিফল্টরূপে, শুধুমাত্র মূল ব্যবহারকারী কোনও পাসওয়ার্ড না দিয়েই অন্য ব্যবহারকারীর অ্যাকাউন্টে স্যুইচ করতে পারেন। অন্য যে কোনও ব্যবহারকারীকে যে অ্যাকাউন্টে স্যুইচ করা হচ্ছে তার পাসওয়ার্ড প্রবেশ করানোর জন্য অনুরোধ করা হবে (বা তারা sudo কমান্ড ব্যবহার করছে, তাদের পাসওয়ার্ড দেওয়ার জন্য অনুরোধ করা হবে), যদি তারা সঠিক পাসওয়ার্ড না দেয় তবে তারা পায় নিম্নলিখিত স্ক্রিনশটে প্রদর্শিত হিসাবে একটি "প্রমাণীকরণ ব্যর্থ হয়েছে" ত্রুটি।

উপরের সমস্যাটি সমাধান করতে আপনি নীচে প্রদত্ত দুটি সমাধানের যে কোনওটি ব্যবহার করতে পারেন।

1. প্যাম প্রমাণীকরণ মডিউল ব্যবহার করা

আধুনিক লিনাক্স অপারেটিং সিস্টেমে পিএএম (প্লাগেবল প্রমাণীকরণের মডিউল) ব্যবহারকারীর প্রমাণীকরণের মূল অংশে রয়েছে। একটি নির্দিষ্ট গোষ্ঠীর ব্যবহারকারীদের পাসওয়ার্ড ছাড়াই অন্য কোনও ব্যবহারকারী অ্যাকাউন্টে স্যুইচ করার অনুমতি দেওয়ার জন্য, আমরা /etc/pam.d/su ফাইলে su কমান্ডের জন্য ডিফল্ট PAM সেটিংস পরিবর্তন করতে পারি।

# vim /etc/pam.d/su
OR
$ sudo vim /etc/pam.d/su

নিম্নলিখিত স্ক্রিনশট হিসাবে প্রদর্শিত হিসাবে "লেখক পর্যাপ্ত pam_rootok.so" পরে নিম্নলিখিত কনফিগারেশন যুক্ত করুন।

auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

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

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

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

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

এরপরে, ইউজারমড কমান্ডটি ব্যবহার করে গ্রুপ পোস্টগ্রাইসে পাসওয়ার্ড ছাড়াই অ্যাকাউন্ট পোস্টগ্রিতে আপনি su ব্যবহার করতে চান এমন ব্যবহারকারী (উদাহরণস্বরূপ আরনক) যুক্ত করুন।

$sudo usermod -aG postgres aaronk

ব্যবহারকারীর হিসাবে পোস্টগ্রিস অ্যাকাউন্টে এখন su চেষ্টা করুন, আপনাকে নিম্নলিখিত স্ক্রিনশটে প্রদর্শিত একটি পাসওয়ার্ডের জন্য অনুরোধ করা উচিত নয়:

$ su - postgres

2. Sudoers ফাইল ব্যবহার করে

আপনি sudoers ফাইলে কিছু পরিবর্তন করে কোনও পাসওয়ার্ডের প্রয়োজন ছাড়াই অন্য ব্যবহারকারীর কাছে su করতে পারেন। এই ক্ষেত্রে, ব্যবহারকারী (উদাহরণস্বরূপ অ্যারোনক) যিনি অন্য ব্যবহারকারী অ্যাকাউন্টে স্যুইচ করবেন (উদাহরণস্বরূপ পোস্টগ্রিস) sudoers ফাইলে বা sudo গ্রুপে sudo কমান্ডটি আবেদন করতে সক্ষম হওয়া উচিত।

$ sudo visudo

তারপরে নীচের স্ক্রিনশটটিতে দেখানো হয়েছে “% sudo ALL = (ALL: ALL) ALL” ”এর নিচে নীচের কনফিগারেশন যুক্ত করুন।

aaronk ALL=NOPASSWD: /bin/su – postgres

সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

এখন অ্যাকাউন্ট কোডে su ব্যবহার করার চেষ্টা করুন ব্যবহারকারী হিসাবে অ্যারোক, শেল আপনাকে পাসওয়ার্ড দেওয়ার জন্য অনুরোধ করবে না:

$ sudo su - postgres

এখন এ পর্যন্তই! আরও তথ্যের জন্য, পিএএম ম্যানুয়াল এন্ট্রি পৃষ্ঠা (ম্যান পাম.কম) এবং সুডো কমান্ডের (ম্যান সুডো) দেখুন।

$ man pam.conf
$ man sudo