আমি যতদূর জানি, প্যাম ব্যবহারকারীর শেলটি নির্ধারণ করে না, এটি প্রয়োগে রেখে দেওয়া হয়েছে। পিএএম এর সেশন মডিউলগুলি জেনেরিক ক্রিয়া এবং চেকগুলি সম্পাদন করে যা সেই নির্দিষ্ট পরিষেবাটি ব্যবহার করে প্রতিটি লগইনে করা আবশ্যক। যদি অ্যাপ্লিকেশনটি শেলটি শুরু করতে চায় তবে এটি নিখরচায় এবং সাধারণত ব্যবহারকারী ডাটাবেজে শেলটি সন্ধান করবে।
আপনার প্রশ্নটি ওপেনএসএসএইচ সম্পর্কিত , এটি ঠিক সেটাই করে: ব্যবহারকারী একবার প্রমাণিত হয়ে গেলে এবং পিএএম সেশন স্টাফটি সম্পন্ন হয়ে যায় (যদি PAM¹ ব্যবহারের জন্য কনফিগার করা থাকে), এসএসএস সার্ভারটি ব্যবহারকারী ডাটাবেসে শেলটি সন্ধান করে (সরাসরি, না পিএএম লাইব্রেরির মাধ্যমে)।
ব্যবহারকারী ডাটাবেস /usr/passwd
এবং বন্ধুদের মধ্যে সীমাবদ্ধ নয় । লিনাক্সে (যা আমি ধরে নিলাম আপনি উল্লেখ করার পরে থেকেই ব্যবহার করছেন shadow
), ব্যবহারকারী ডেটাবেসটি কী passwd
সেটআপ করে সেটি নির্ধারিত হয় /etc/nsswitch.conf
। মাল্টি-কম্পিউটার সেটআপগুলিতে, স্থানীয় ডাটাবেসে সাধারণ সংযোজনগুলি হ'ল এনআইএস এবং এলডিএপি । আপনি যদি একটি শেল ব্যবহার করতে চান যা /etc/passwd
এটির মধ্যে নেই , তবে এটি কনফিগার করতে হবে (যদিও এটি কিছুটা বিস্ময়কর হবে, এবং আপনি যদি আমাদের কী অর্জন করতে চাইছেন তবে লোকেরা আরও ভাল পরামর্শ দিতে পারে)।
আপনি যদি পুরো শেল অ্যাক্সেস ছাড়াই ব্যবহারকারী থাকতে চান, তবে প্রাকৃতিক সমাধানটি /etc/passwd
একটি সীমাবদ্ধ শেল রাখার জন্য পরিবর্তন করতে হবে - সম্ভবত কিছু ফাইল-অনুলিপি-টাইপ অ্যাপ্লিকেশন যেমন scp, rsync এবং cvs মঞ্জুর করার জন্য আরএসএস । আপনি ব্যবহারকারীর ~/.ssh/authorized_keys
ফাইলে জোর করে কমান্ডও ব্যবহার করতে পারেন ।
আপনি যদি ssh সার্ভারটি কী করছে তার কোনও সন্ধান দেখতে চান তবে ডিমন হিসাবে এটি শুরু করুন ssh -ddd
। আপনি এখানে ক্লায়েন্টের দৃষ্টিভঙ্গিও পেতে পারেন ssh -vvv
, যদিও এখানে সার্ভারের দৃষ্টিভঙ্গি আপনাকে সবচেয়ে বেশি আগ্রহী করবে।
¹
ওপেনএসএইচ কেবল প্যাম ব্যবহার করে যদি এটি পিএএম সমর্থন সহ কনফিগার করা থাকে এবং UsePAM
নির্দেশটি সেট করা yes
থাকে sshd_config
। এমনকি যখন এটি প্যাম ব্যবহার করে, এটি পিএএম ছাড়াও অন্যান্য প্রমাণীকরণের পদ্ধতি সরবরাহ করে; নির্দিষ্ট পাবলিক কী প্রমাণীকরণ PAM মাধ্যমে যায় না।