পিএএম এবং এনএসএস বুঝুন


21

শেষ দিনগুলিতে আমি এলডিএপি প্রমাণীকরণের সাথে কিছু লিনাক্স সিস্টেম স্থাপন করেছি এবং সবকিছু ঠিকঠাক কাজ করে, তবে এনএসএস এবং পিএএম সম্পর্কিত আমি এখনও কিছুটা গবেষণার পরেও বুঝতে পারি না এমন কিছু এখনও আছে।

Citing:

এনএসএস প্রশাসকদের এমন উত্সের একটি তালিকা নির্দিষ্ট করার অনুমতি দেয় যেখানে প্রমাণীকরণ ফাইল, হোস্টের নাম এবং অন্যান্য তথ্য সংরক্ষণ করা হবে এবং অনুসন্ধান করা হবে

এবং

পিএএম লাইব্রেরির একটি সেট যা অ্যাপ্লিকেশন এবং অন্তর্নিহিত অপারেটিং সিস্টেমের জন্য একটি কনফিগারযোগ্য প্রমাণীকরণ প্ল্যাটফর্ম সরবরাহ করে

আমি যা বুঝতে পারি না তা হ'ল পিএএম এবং এনএসএস কীভাবে কাজ করে এবং একসাথে ইন্টারঅ্যাক্ট করে। ইন এই বইয়ের স্থাপত্য চমত্কার ব্যাখ্যা করা হয়: ব্যবহার আমি কনফিগার পিএএম pam_ldapদ্বারা LDAP অ্যাকাউন্টের জন্য এবং pam_unixস্থানীয় অ্যাকাউন্টগুলির জন্য, তারপর আমি কনফিগার nsswitch.confস্থানীয় ফাইল এবং দ্বারা LDAP থেকে তথ্য আনতে।

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

সুতরাং আমি কিছুটা পরীক্ষা-নিরীক্ষা করেছি এবং আমি প্রথমে এলডিএপি মুছে ফেলার চেষ্টা করেছি nsswitch.conf(এবং প্রমাণীকরণটি কাজ করা বন্ধ করে দিয়েছে যেন কেবল পাম_ল্ডপ কাজটি করার জন্য যথেষ্ট নয় )। তারপরে আমি এনএসএসে এলডিএপ পুনরায় সক্রিয় করেছি এবং আমি এটি পিএএম কনফিগারেশন থেকে মুছে ফেলেছি (এবার সবকিছু ঠিকঠাকভাবে কাজ করেছে, যেন pam_ldapঅকার্যকর এবং এনএসএস কোনও ব্যবহারকারীর অনুমোদনের জন্য যথেষ্ট )।

এমন কেউ আছে যে আমাকে এই পরিষ্কার করতে সাহায্য করতে পারে? অগ্রিম ধন্যবাদ.

হালনাগাদ

আমি এখন কিছু চেষ্টা করেছি। আমি pam_ldapসমস্ত প্যাম কনফিগারেশন ক্ষেত্রে সমস্ত এন্ট্রি আবার মুছে ফেলেছি এবং আমি shadow: ldapএখান থেকেও সরিয়েছি nsswitch.conf। এখন যেমন সমস্ত সিস্টেমে কেবলমাত্র লাইন রয়েছে: passwd: ldap filesএবং group: ldap filesইন nsswitch.conf। ভাল ... এলডিএপি ব্যবহারকারীদের সাথে লগইন পুরোপুরি কাজ করে, এই দুটি লাইন (প্লাস /etc/ldap.conf) এলডিএপি অনুমোদন কনফিগার করার জন্য যথেষ্ট।

আমার জ্ঞান থেকে পিএএম এনএসএস থেকে স্বতন্ত্র, তবে আমার পরীক্ষাগুলি দেখায় যে এটি তা নয়। তাই আমি নিজেকে জিজ্ঞাসা করি এনএসএসকে সম্পূর্ণভাবে অক্ষম করা এবং কেবল প্যাম ব্যবহার করা সম্ভব?


আমি আপনার আপডেট দেখতে পেলাম না। নীচের কমান্ডগুলি চালনা করুন এবং আপনার অনুসন্ধানের প্রতিবেদন করুন, আপনার মনে হয় যে কেবল এলডিএপি-তে কনফিগার করা হয়েছে এমন ব্যবহারকারীকে দিয়ে এলডিপুসারকে প্রতিস্থাপন করুন। getent shadow | grep LDAPUSER grep LDAPUSER /etc/shadow
অ্যান্ড্রু বি

উত্তর:


25

এটি আপনার মাথায় এই জিনিসগুলি ভাঙতে সহায়তা করে:

  • এনএসএস - বিভিন্ন ওএস-স্তরের ডাটাবেস কীভাবে মেমরিতে একত্রিত হয় তা নিয়ন্ত্রণ করার জন্য একটি মডিউল ভিত্তিক সিস্টেম। এর মধ্যে রয়েছে (কিন্তু সীমাবদ্ধ নয়) passwd, group, shadow(এই নোটটি গুরুত্বপূর্ণ), এবং hosts। ইউআইডি লুকআপগুলি passwdডাটাবেস ব্যবহার করে এবং জিআইডি লুকআপগুলি groupডাটাবেস ব্যবহার করে।

  • প্যাম - পরিষেবা ভিত্তিক প্রমাণীকরণ এবং অ্যাকাউন্টিং অনুমোদনের জন্য একটি মডিউল ভিত্তিক সিস্টেম। এনএসএসের বিপরীতে, আপনি বিদ্যমান ডাটাবেসগুলি প্রসারিত করছেন না; পিএএম মডিউলগুলি তাদের পছন্দসই যুক্তি ব্যবহার করতে পারে, যদিও শেল লগইনগুলি এখনও এনএসএসের ডাটাবেস passwdএবং groupডাটাবেসের উপর নির্ভর করে । (আপনার সর্বদা ইউআইডি / জিআইডি লুকআপ দরকার)

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

এখন যে আমাদের বাইরে চলে গেছে, এখানে বাঁকানো বলটি রয়েছে: যখন পাম_ল্ডপ এলডিএপি-র বিরুদ্ধে প্রমাণীকরণের জনপ্রিয় উপায়, তবে এটি একমাত্র উপায় নয়।

  • যদি এর shadowমধ্যে এলডিএপ পরিষেবাটির দিকে ইঙ্গিত করা হয় তবে /etc/nsswitch.confছায়া ডাটাবেসের বিরুদ্ধে চালিত কোনও প্রমাণীকরণ সফল হবে যদি সেই ছায়া ক্ষেত্র ম্যাপিংয়ের বৈশিষ্ট্যগুলি (বিশেষত এনক্রিপ্ট করা পাসওয়ার্ড ক্ষেত্র) এলডিএপি উপস্থিত থাকে এবং লগইনের অনুমতি দেয়।
    • এর পরিবর্তে এর মানে হল যে pam_unix.soসম্ভাব্যভাবে এলডিএপি বিপক্ষে প্রমাণীকরণের ফলস্বরূপ হতে পারে, কারণ এটি ছায়া ডাটাবেসের বিরুদ্ধে প্রমাণীকরণ করে। (যা এনএসএস দ্বারা পরিচালিত, এবং এলডিএপি নির্দেশ করতে পারে)
  • যদি কোনও প্যাম মডিউল কোনও ডিমনটির বিরুদ্ধে কল করে যে পরিবর্তে এলডিএপি ডাটাবেসটি জিজ্ঞাসা করে (বলুন pam_sss.so, কোনটি হুক করে sssd), সম্ভবত এলডিএপি রেফার করা হবে।

অনেক ধন্যবাদ, আমি জানি যে nsswitch.conf + পাম_উনিক্স নিজেরাই সমস্ত কাজ করতে পারে। তবে প্যামও একই কাজ করতে সক্ষম হবে, কারণ এটি স্বাধীন, যেমনটি আপনি লিখেছেন। আমার বোধগম্যতা হল যে ldap সার্ভারের বিরুদ্ধে ব্যবহারকারীকে প্রমাণীকরণ করার জন্য মডিউল পাম_লডাপ যথেষ্ট হওয়া উচিত। তাই না?
ColOfAbRiX

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

1
@ কলঅফএবআরিক্স থিফআইডলারওয়ানস সঠিক। এটি প্রমাণীকরণের পক্ষে যথেষ্ট , তবে আমি উল্লিখিত হিসাবে আপনার এখনও ইউআইডি + জিআইডি সদস্যতা অনুসন্ধানের একটি উপায় প্রয়োজন। এগুলি passwdএবং groupডাটাবেসগুলি (এনএসএস) থেকে প্রাপ্ত , যার অর্থ তারা অবশ্যই স্থানীয় সিস্টেমে থাকতে হবে ( /etc/passwd+ /etc/group), বা ldapএনএসএস মডিউলের মাধ্যমে প্রাপ্ত ।
অ্যান্ড্রু বি

3
আপনাকে বুঝতে সাহায্য করার জন্য এখানে একটি উপায়: উভয় ডাটাবেসের জন্য চালিত getent passwdএবং getent groupএলডিএপি সক্ষম করে /etc/nsswitch.conf। তারপরে সেই ফাইলটিতে এলডিএপি অক্ষম করুন এবং আবার দুটি কমান্ড চালান। getentএনএসএস ডাটাবেস ডাম্প করার জন্য একটি কমান্ড।
অ্যান্ড্রু বি

শেষ পর্যন্ত আমি কিছুটা কাজ করে সবকিছু বুঝতে পেরেছি। তোমাদেরকে ধন্যবাদ!
ColOfAbRiX

1

এনএসএস সেখানে পরিষেবা / ব্যবহারকারীদের সম্পর্কে (আপনি কী গ্রুপের অন্তর্ভুক্ত, যেখানে আপনার হোম ডিরেক্টরি ইত্যাদি) সে সম্পর্কে তথ্য গণনা করার জন্য রয়েছে। প্যাম সেই তথ্যটি সম্পর্কে কী করবে তা নির্ধারণ করে।

আপনার জন্য দ্বারা LDAP ব্যবহার করতে চান তাহলে প্রমাণীকরণ আপনি প্রয়োজন pam_ldap। আপনি যদি অন্য কিছু ব্যবহার করেন (স্থানীয় অ্যাকাউন্ট, কার্বেরোস ইত্যাদি) তবে আপনি তা নাও করতে পারেন।

তাই তারা বিভিন্ন জিনিস করে। এনএসএস তথ্য পায়, পিএএম নির্ধারণ করে যে তথ্য প্রাপ্তির পরে কাকে কি করার অনুমতি দেওয়া হয়।


ধন্যবাদ, তবে সমস্যাটি হ'ল এটি আমার সিস্টেমে কমপক্ষে সেভাবে কাজ করে না :) শুরুতে আমি একই বিষয়টি বুঝতে পেরেছিলাম কিন্তু তখন আমি পিএএম-এর সমস্ত পাম_ল্ডপ এন্ট্রি সরিয়ে দেওয়ার চেষ্টা করেছি এবং এলডিএপি প্রমাণীকরণ এখনও কাজ করেছে (এবং ক্যাশে অক্ষম)। এটি আমার বিভ্রান্তি বাড়িয়ে দিয়েছে :)
ColOfAbRiX

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

আমি দুঃখিত, আমি বোঝাতে চাইছি যে পাম_ল্ডপ অপসারণের পরে, এলডিএপি লেখক এটি ছাড়া কাজ করেছিলেন, আমি অনুমান করি এটি এনএসএসের মাধ্যমে কাজ করেছে। ফাইলটিতে common-authকেবল পাম_এনভ, পাম_উনিক্স এবং পাম_ডেনি রয়েছে।
ColOfAbRiX

এটির কোনও অর্থ হয় না, আপনি কীভাবে নিশ্চিত করলেন যে এলডিএপি অ্যাথ কাজ করেছে?
দ্য ফিডলারওয়ানস

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