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


169

প্রযুক্তিগতভাবে, যদি না pamআপনি শেলটিতে pam_shellsনা থাকেন তবে এগুলির কোনওটির সাথেই আপনার শেলটি পরীক্ষা করার জন্য সেট আপ না করা আসলে আপনার লগইনকে আটকাতে পারে। আমার সিস্টেমে এগুলি আরও বিভিন্ন আকারের, তাই আমি সন্দেহ করি তারা আসলে কিছু করে। তাহলে পার্থক্য কী? কেন তারা উভয় বিদ্যমান? আমি কেন একে অপরকে ব্যবহার করব?

-rwxr-xr-x 1 root root  21K Feb  4 17:01 /bin/false
-rwxr-xr-x 1 root root 4.7K Mar  2 14:59 /sbin/nologin


পথটি /bin/falseসর্বত্র থাকা উচিত তবে তা নয় /sbin/nologin: '/ sbin / nologin': এরকম কোনও ফাইল বা ডিরেক্টরি নেই। কোনও ধারণা কেন এটি ডিবিয়ান এবং উবুন্টুর /usr/sbin/nologinপরিবর্তে হয় /sbin/nologin?
ব্যাপটেক্স

4
আমি আগ্রহী কেন / বিন / ভুয়া "1" রিটার্ন কোডটি 21k কোড নেয়! (এবং / sbin / nologin কেবল 4.7k লাগে)
মার্ক স্টুয়ার্ট


1
@nxnev হ্যাঁ ELF এর ওভারহেড সম্পর্কে ভাবেন নি। এবং আমার পুরানো আইবিএমের দিনগুলি থেকে একটি প্রোগ্রাম আইআইএফবিআর 14 ছিল যা একটি সাধারণ একটি অপ-কোড অ্যাসেম্বলি নির্দেশ ছিল: বিআর 14 - 14 নিবন্ধিত করার জন্য শাখা, যা রেজিস্ট্রার 14 এ যা কিছু আছে সেটাকে রিটার্ন কোড সেট করে প্রোগ্রামটি শেষ করবে!
মার্ক স্টিয়ার্ট

উত্তর:


198

/sbin/nologinশেল হিসাবে কখন সেট করা হয়, যদি সেই শেলটি ব্যবহারকারী লগইন করে, তারা একটি নম্র বার্তা পাবে যে এই অ্যাকাউন্টটি বর্তমানে উপলভ্য নয়। এই বার্তাটি ফাইলের মাধ্যমে পরিবর্তন করা যেতে পারে /etc/nologin.txt

/bin/falseকেবলমাত্র একটি বাইনারি যা অবিলম্বে প্রস্থান করে, মিথ্যা ফিরিয়ে দেয়, যখন ডাকা হয়, সুতরাং যখন falseশেল হিসাবে লগ ইন করে কেউ বের হয় তখন সঙ্গে সঙ্গে লগ আউট হয় false/bin/trueকাউকে লগ ইন না করার ক্ষেত্রে শেলটি সেট করার একই প্রভাব রয়েছে তবে falseসম্ভবত trueএটি একটি কনভেনশন হিসাবে ব্যবহৃত হবে যেহেতু সেই ব্যক্তির শেল নেই এমন ধারণাটি পৌঁছে দেওয়ার চেয়ে এটি আরও ভাল।

এ খুঁজছি nologin'র man পৃষ্ঠা, এটা বলছেন 4.4 বাসদ (1990) এ তৈরি করা হয়েছে যাতে এটি বহুদিন পরে এসে falseতৈরি করা হয়েছে। falseশেল হিসাবে ব্যবহার সম্ভবত ইউনিক্সের প্রথম দিন থেকেই সম্পন্ন একটি কনভেনশন।

nologinব্যবহারকারীকে লগ ইন করার চেষ্টা করার মতো একটি কাস্টমাইজযোগ্য বার্তা সহ আরও ব্যবহারকারী-বান্ধব বিকল্প, যাতে আপনি তাত্ত্বিকভাবে এটি ব্যবহার করতে চান; তবে উভয়ই nologinএবং falseকারও শেল না পাওয়া এবং sুকতে না পারার একই পরিণতি হবে।


10
/usr/sbin/nologinদেবিয়ান ভিত্তিক বিতরণের জন্য।
ডেমো

3
কমপক্ষে বিএসডি বাস্তবায়ন ওপেনসোর্স.এপলল / সোর্স /
সিস্টেমে_সিডিএস

28

কিছু এফটিপি সার্ভার কেবলমাত্র আপনার কাছে বৈধ শেল থাকলে FTP অ্যাক্সেসের অনুমতি দেবে। /sbin/nologinএটি একটি বৈধ শেল হিসাবে বিবেচিত, যেখানে /bin/falseনেই।

(আমি মনে করি "বৈধ" মানে এর প্রস্থান স্থিতি 0, তবে /etc/shellsএটির মধ্যে এটিও আসতে পারে, এটি সম্ভবত সিস্টেম, এফটিপি সফ্টওয়্যার এবং আপনার কনফিগারেশনের উপর নির্ভর করে))


1
হ্যাঁ, এটি সম্ভবত প্যাম এবং এফটিপি প্রোগ্রামের অংশ পাম_শেল ব্যবহার করে যা আপনি যেমন বলেছেন, চেক করে /etc/shells। শুধু অনুমান ... আমি ভুল হতে পারি।
xenoterracide

4
আমি কেবল উবুন্টু 8.04 এবং 14.04 উভয়ই যাচাই করেছি। নোলোজিন কমান্ডটি মিথ্যাটির অনুরূপ 1 স্ট্যাটাস সহ প্রস্থান করে এবং সত্য, মিথ্যা বা নোলোগিনের কোনওটিই / ইত্যাদি / শেলগুলিতে অন্তর্ভুক্ত থাকে না। যদি সেগুলি হয় তবে কোনও ব্যবহারকারী এই জাতীয় শেল নির্বাচন করতে এবং নিজের অ্যাকাউন্ট থেকে নিজেকে লক করে রাখতে chsh ব্যবহার করতে পারে।
পেঙ্গুইন 359

12

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

while true; do
    ...
    # Waste time
    if [ $wasted_time -gt 100000 ]; then
        exit 0
    fi
    ...
done

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


4
এটি লক্ষণীয় /bin/trueএবং /bin/falseআপনি শেল স্ক্রিপ্টে যা পাবেন তা সবসময় নয়। ইন zsh trueএবং falseবিল্ট-ইনগুলি রয়েছে, যেখানে সংস্করণগুলি bashব্যবহার করে/bin/*
xenoterracide

4

আমার মেশিনে, nologinযুক্তি উপেক্ষা করে ইংরেজিতে সর্বদা একই বার্তা প্রদর্শিত হয়। দ্বারা এবং নির্দেশিত ভাষায় /bin/falseপ্রতিক্রিয়া জানায় । এই প্রসাধনী পার্থক্য বাদে, তাদের একই প্রভাব রয়েছে।--version--help$LC_CTYPE

ব্যবহারযোগ্যতার nologinভিত্তিতে, যদি এটি ইংরেজী বলতে পারে এমন কোনও সত্যিকারের ব্যক্তির অ্যাকাউন্টে ব্যবহার করা ভাল। সুরক্ষার ভিত্তিতে, কোনও পার্থক্য নেই।


4
মনে হচ্ছে সম্ভবত falseসিস্টেম অ্যাকাউন্টগুলির পক্ষে আরও বেশি যাঁর প্রকৃত ব্যবহারকারী নেই এবং nologinএটি অক্ষম অ্যাকাউন্টগুলির জন্য।
xenoterracide

1
আপনার ওএস কি? CentOS nologinসংস্করণ কোন যুক্তি নেয়, কিন্তু থেকে বার্তা পড়তে পারেন /etc/nologin.txt
আলেকজান্ডার গনচি

3

/ বিন / ভুয়া একমাত্র কাজ হ'ল একটি শূন্য বহির্গমন কোড সহ প্রস্থান করা।

কমান্ড লাইনে চেষ্টা করুন:

$:> /bin/false
$:> echo $?
1
$:>

কিছু প্রতিষ্ঠান পাসওয়ার্ড ফাইলের শেল ক্ষেত্রে / বিন / মিথ্যা ব্যবহার করে। যদি ব্যবহারকারী লগইন করার চেষ্টা করে তবে শেলটি / বিন / মিথ্যা, তাই এগুলি এখনই প্রস্থান করা হবে


2

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


1

তারা একই প্রোগ্রাম হতে পারে, তবে তাদের বিভিন্ন অর্থ রয়েছে। প্রোগ্রামের নামটি সব বলে দেয়।

  • / বিন / মিথ্যা একটি মিথ্যা মান ফেরতের উদ্দেশ্যে করা হয়। এটি প্রোগ্রাম হিসাবে পরিচালিত হয়।
  • / বিন / নোলোগিন ব্যবহারকারীকে বোঝাতে ইচ্ছুক যে কোনও অ্যাকাউন্টের জন্য কোনও লগইনের অনুমতি নেই। (এটি লগইন শেল ব্যবহার করা হয়))

-4

উভয়ই কমবেশি একই কাজ করে তবে /bin/falseঅ-সুবিধাবদ্ধ ব্যবহারকারীদের জন্য দরকারী is অন্যদিকে, /sbin/nologinসুবিধাভোগী ব্যবহারকারীদের জন্য।


4
ওহ, আপনি কিভাবে এই সিদ্ধান্তে এসেছেন?
এফএমপুরফি

সম্ভবত তিনি খোঁজ করেছেন /etc/passwd। আমি সবেমাত্র /etc/passwdএকটি নতুনভাবে ইনস্টল করা ডিবিয়ান প্রসারিতটি সন্ধান করেছি। এই বাক্সে, প্রায় সমস্ত সিস্টেম অ্যাকাউন্ট (ব্যবহারকারী আইডস <1000) /usr/sbin/nologinকয়েকটি ব্যতিক্রম ছাড়া শেল হিসাবে রয়েছে। দয়া করে মনে রাখবেন যে আমি @ পাইথোনডেকটিভের উত্তরটির সাথে একমত নই। আমি কেবল অনুমান করছি যে কী হতে পারে তাকে এই সিদ্ধান্তে নিয়ে যেতে। যদিও আমার মন্তব্যটি কিছুটা দেরি হয়েছে।
বিনারাস

না! ডিফল্ট লগইন শেল সুবিধাগুলির মতো নয়।
MUY বেলজিয়াম

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