/ এসবিন / নোলোগিন এবং / বিন / মিথ্যা এর মধ্যে পার্থক্য কী?


69

আমি প্রায়শই শুনেছি এটি ব্যবহারের অ্যাকাউন্টটি শেলটি সেট করে অক্ষম করা উচিত /bin/false। তবে, আমার বিদ্যমান লিনাক্স সিস্টেমে আমি দেখতে পাচ্ছি যে প্রচুর বিদ্যমান অ্যাকাউন্টের (তাদের সমস্ত পরিষেবা অ্যাকাউন্টের) /sbin/nologinপরিবর্তে শেল রয়েছে ।

আমি ম্যান পৃষ্ঠা থেকে দেখছি /sbin/nologinযা ব্যবহারকারীকে একটি বার্তা মুদ্রণ করে যে অ্যাকাউন্টটি অক্ষম করা আছে, এবং তারপরে প্রস্থান করে। সম্ভবত /bin/falseকিছু মুদ্রণ হবে না।

আমি এটিতে /sbin/nologinতালিকাভুক্তও দেখছি /etc/shells, যখন /bin/falseনেই।

মানুষ যে পৃষ্ঠাটি এফটিপি শেল ব্যবহারকারীদের জন্য অ্যাক্সেস অক্ষম করবে বলে না তালিকাভুক্ত /etc/shellsএবং যে বোঝা অন্যান্য প্রোগ্রামের একই কাজ করতে পারে। এর অর্থ কি এই যে এরকম /sbin/nologinশেল হিসাবে কেউ কোনও অ্যাকাউন্ট এফটিপি করতে পারে ?

এখানে পার্থক্য কী? এর মধ্যে কোনটি ব্যবহারকারীর অ্যাকাউন্টটি অক্ষম করতে আমি ব্যবহার করব এবং কোন পরিস্থিতিতে? একটি তালিকা মধ্যে অন্যান্য কি প্রভাব /etc/shellsআছে?



1
সাধারণ তথ্য যা কাজ করে। আমি সিস্টেম প্রশাসনের দৃষ্টিকোণ থেকে বিশেষভাবে চিন্তা করছি।
মাইকেল হ্যাম্পটন

কেবল ব্যাকগ্রাউন্ডার হিসাবে বোঝানো হয়েছিল।
dmourat

উত্তর:


70

/bin/falseএটি একটি ইউটিলিটি প্রোগ্রাম, যার সহচর /bin/true, যা ইউনিক্স বৈশিষ্ট্য-সম্পূর্ণ কিনা তা নিশ্চিত করতে কিছু বিমূর্ত অর্থে কার্যকর। তবে, এই প্রোগ্রামগুলির উদীয়মান উদ্দেশ্যগুলি সন্ধান করা হয়েছে; বেস স্টেটমেন্টটি বিবেচনা করুন /some/program || /bin/true, যা $? = 0প্রত্যাবর্তনের ক্ষেত্রে কোনও ক্ষেত্রেই সত্য ( ) -র কাছে সর্বদা বুলিয়ান-মূল্যায়ন করবে /some/program

/bin/falseযেমন আপনি সনাক্ত করেছেন, এর উদীয়মান ব্যবহার হ'ল ব্যবহারকারীদের লগ-ইন করার অনুমতি না দেওয়া শেল হিসাবে this এই ক্ষেত্রে সিস্টেমটি ঠিক তেমন আচরণ করবে যদিও শেলটি চালাতে ব্যর্থ হয়েছিল।

পজিক্স (যদিও আমি ভুল হতে পারি এবং এটি এসইউএসও হতে পারে) এই দুটি কমান্ডই উপযুক্ত বুলিয়ান মানটি ফিরিয়ে দেওয়া ব্যতীত অন্য কিছুই করতে বাধ্য করে।

/sbin/nologinBSD ইউটিলিটি যা /bin/falseবুলিয়ান মিথ্যা প্রদান করে ( যেমনটি বুলিয়ান মিথ্যা দেয়) একই রকম আচরণ করে তবে আউটপুটও প্রিন্ট করে, যেমন /bin/falseকরা নিষিদ্ধ। এটি ব্যবহারকারীকে কী ঘটেছে তা বুঝতে সাহায্য করার কথা রয়েছে যদিও বাস্তবে শেলটি শেষ হলে অনেক টার্মিনাল এমুলেটর কেবল বন্ধ হয়ে যাবে, কিছু ক্ষেত্রে মেসেজটি কেবল পাঠযোগ্য নয় তবে রেন্ডারিং করে।

তালিকাভুক্ত করার খুব কম উদ্দেশ্য /sbin/nologinরয়েছে /etc/shells। এর স্ট্যান্ডার্ড এফেক্টটি /etc/shellsহ'ল chshব্যবহারকারীরা যখন তাদের নিজস্ব শেল পরিবর্তন করছেন তখন (এবং আপনার নিজের শেলটি পরিবর্তন করার কোনও বিশ্বাসযোগ্য কারণ নেই /sbin/nologin) এর সাথে ব্যবহারের জন্য অনুমোদিত প্রোগ্রামগুলি তালিকাভুক্ত করা । সুপারভাইজার যে কারও শেলকে যে কোনও কিছুতে পরিবর্তন করতে পারে। তবে, আপনি উভয় /sbin/nologinএবং /bin/falseভিতরে তালিকা বজায় রাখতে চাইতে পারেন /etc/rsh, যা এই শেলগুলি ব্যবহারকারীদের শেলটি পাওয়া chshদুর্ভাগ্যজনক ইভেন্টে তাদের শেল পরিবর্তন করতে নিষেধ করবে ।

এফটিপি ডিমনগুলি শেলযুক্ত ব্যবহারকারীরা / ইত্যাদি / শেলগুলিতে অ্যাক্সেসটিকে অস্বীকার করতে পারে বা তারা তাদের ইচ্ছা মতো অন্য কোনও যুক্তি ব্যবহার করতে পারে। এফটিপি চালানো যে কোনও ক্ষেত্রে এড়ানো উচিত কারণ sftp(যা অনুরূপ কার্যকারিতা সরবরাহ করে) অনুরূপ তবে সুরক্ষিত। কিছু সাইট এতে /sbin/nologinbyুকিয়ে দিয়ে sftp অ্যাক্সেসের অনুমতি দেওয়ার সময় শেল অ্যাক্সেস অক্ষম করতে ব্যবহার করে /etc/shells। যদি ব্যবহারকারীকে ক্রোনজবস তৈরি করার অনুমতি দেওয়া হয় তবে এটি একটি পিছনের দরজা খুলতে পারে।

উভয় ক্ষেত্রেই, scpএকটি অবৈধ শেল দিয়ে কাজ করবে না। scponlyএই পরিস্থিতিতে শেল হিসাবে ব্যবহার করা যেতে পারে।

অতিরিক্তভাবে, শেলের পছন্দ su -(এ কেএ su -l) এর ক্রিয়াকলাপকে প্রভাবিত করে । বিশেষত, /sbin/nologinএর শেল হলে আউটপুট স্টাডাউটে মুদ্রিত হবে; এটি ক্ষেত্রে হতে পারে না /bin/false। উভয় ক্ষেত্রেই চালানো কমান্ড su -clব্যর্থ হবে।

অবশেষে, উত্তর:

কোনও অ্যাকাউন্ট অক্ষম করার /sbin/nologinজন্য , এগুলির কোনওটির উপর নির্ভর করুন না, তবে তথ্যের উদ্দেশ্যে শেলটি সেট করুন (যদি না /sbin/nologinথাকে তবে /etc/shellsআপনাকে কোন পয়েন্টে ব্যবহার করা উচিত /bin/false, যা হওয়া উচিত নয়)। পরিবর্তে, পাসওয়ার্ড ক্ষেত্র সেট /etc/passwdকরতে !, যা নিশ্চিত করা হয় cryptকোনো পাসওয়ার্ড জন্য বৈধ বলে। /etc/shadowবাগগুলি এড়ানোর জন্য হ্যাশটিকে একইভাবে সেট করা বিবেচনা করুন । passwd -lআপনার জন্য এটি করবে।

কোনও অ্যাকাউন্ট নিষ্ক্রিয় করার তৃতীয় উপায়টি হল অ্যাকাউন্টটির মেয়াদ শেষ হওয়ার তারিখ ক্ষেত্রটি একটি প্রাচীন তারিখে সেট করা (যেমন। usermod --expiredate 1)। আপনার সেটআপ ব্যবহারকারীদের পাসওয়ার্ড ছাড়াই তাদের ইউনিক্স অ্যাকাউন্টের বিরুদ্ধে প্রমাণীকরণের অনুমতি দেয় এবং তারা যে পরিষেবাটি ব্যবহার করছে তাতে শেলের প্রয়োজন নেই এটি লগইনগুলিকে আটকাবে।


9
এই উত্তরটি পুরোপুরি বিভিন্ন অপশন সংক্ষিপ্ত বিবরণ (এবং প্রশ্নের উত্তর) করার সময়, আমি যা কমপক্ষে স্টক ডেবিয়ান ভান্ডার পাওয়া যায়, এই ব্যবহারের ক্ষেত্রে জন্য একটি দরকারী সম্পদ, এর নির্দেশ প্রয়োজন অনুভব titantoolsপ্যাকেজ: noshell। এই সিউডো-শেল অ্যাসিডিংয়ের ক্ষমতা সরবরাহ করে, সিসলোগে লগিং noshellকরে শেল হিসাবে অ্যাকাউন্টগুলি ব্যবহার করার চেষ্টা করে , তবুও অ্যাক্সেসকে অস্বীকার করে।
দাউদ


2
অ্যাপোক্রিফাল এই অর্থে যে এটি আসল উদ্দেশ্য ব্যবহার নয়। আমি অ্যানক্রোনস্টিক বলিনি; আমি এটি প্রতিদিন দেখছি :)
ফ্যালকন মোমোট

1
অবৈধ পাসওয়ার্ড দ্বারা অ্যাকাউন্টটি অক্ষম করা ssh এর সাথে খুব ভাল কাজ করে না। যদি ব্যবহারকারী পূর্বে সার্বজনীন কী প্রমাণীকরণ সেট আপ করতে সক্ষম হয় তবে সে যে কোনও উপায়ে পেতে সক্ষম হতে পারে।
জোশডসন

3
এসএমএসডি নথিবদ্ধ যা অ্যাকাউন্টগুলি নির্দিষ্ট উপায়ে লক করা আছে (পাসওয়ার্ড হ্যাশগুলি দিয়ে শুরু হয়েছে! বিশেষভাবে উল্লেখ করা হয়েছে) এমনকি পাবকি লেখার সাথেও রয়েছে।
ফ্যালকন মোমোট

13

এ সম্পর্কে কিছু গবেষণা করার পরে, আপনি যে পদ্ধতিটি ব্যবহার করবেন তা নির্ভর করে আপনার কী লক আউট করতে হবে। যদি কোনও ব্যবহারকারী শেলটিতে এই সেটটি দিয়ে লগ ইন করে থাকে তবে তারা This account is currently unavailable.নোটের প্রভাবে প্রদর্শিত একটি বার্তা পাবে যে আপনি /etc/nologin.txtকমপক্ষে RHEL ডেরিভেটিভসে ফাইল তৈরি করে এটি পরিবর্তন করতে পারবেন ।

আপনি জানেন /bin/falseযে একটি খোল নয়। তারা যেভাবে এটি কাজ করে তা হ'ল এটি মিথ্যা দেয় যা বাইনারি ছাড়ার সাথে সাথে লগ আউট করে। নোট যে /bin/trueএকই প্রভাব অর্জন করবে।

আপনার এফটিপি প্রশ্ন সম্পর্কে: হ্যাঁ, আপনি ঠিক বলেছেন যে শেল সেটটি /sbin/nologinব্যবহারকারীদের এফটিপিতে লগইন করার সময় অনুমতি দেবে /bin/falseবা /bin/trueব্যবহারকারীকে কোনও পরিষেবায় লগইন করতে বাধা দেবে ।

অতএব, /bin/falseবা /bin/trueকোন সেবা লগ ইন থেকে কোন ব্যবহারকারী প্রতিরোধ যখন উত্তম /sbin/nologinএখনো ব্যবহারকারীদের, SSH অথবা স্থানীয় কনসোল ব্যবহারকারী যে অ্যাকাউন্ট নিষ্ক্রিয় এবং সেরা ব্যবহার করা হয় এ প্রতিক্রিয়া দেওয়ার সময় যখন শুধুমাত্র, SSH / স্থানীয় ছাড়া অন্য পরিষেবাগুলিতে লগ ইন করার অনুমতি দেবে কনসোল লক আউট করা প্রয়োজন।


2

হুম, কেউ কি প্রমাণ করতে চেষ্টা করেছিল যে / বিন / মিথ্যা FTP অ্যাক্সেসকে অস্বীকার করবে?

আমি আমার ব্যবহারকারীর শেলটি / বিন / মিথ্যাতে সবেমাত্র পরিবর্তন করেছি এবং ঠিক সূক্ষ্মভাবে এফটিপি করতে সক্ষম হয়েছি।

আমি ব্যবহারকারীকে সম্পূর্ণরূপে লক আউট করতে / ডেভ / নাল ব্যবহার করি (ভাল, ইমেল ব্যতীত, তারা এখনও পপ 3 করতে পারে)।


আপনি এটি ছিল /etc/shells? আপনার এফটিপি সার্ভারটি কীভাবে কনফিগার করা হয়েছে?
মাইকেল হ্যাম্পটন

কোনও এফটিপি-সার্ভারে লগ ইন করার জন্য কোনও ব্যবহারকারীর শেলের প্রয়োজন বলে কোনও নিয়ম নেই।
Petter এইচ

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