जवाबों:
/etc/passwd
फ़ाइल के रूप में एक उपयोगकर्ता के लाइन पर अंतिम आइटम कार्यक्रम लॉगिन पर चलाने के लिए है। सामान्य उपयोगकर्ताओं के लिए यह आम तौर पर /bin/sh
या अन्य शेल (जैसे bash, zsh) पर सेट होता है ।
परंपरागत रूप से, पहचान जो स्वयं प्रक्रियाओं या फ़ाइलों या अन्य संसाधनों के लिए उपयोग की जाती है, उनके "शेल" में सेट की /bin/false
जाती है
syslog:x:101:102::/home/syslog:/bin/false
छद्म-उपयोगकर्ता syslog का मालिक है /var/log/syslog
और केवल UID है, जिसके पास उस फ़ाइल के लिए लिखित अनुमति है, लेकिन कोई उपयोगकर्ता syslog के रूप में लॉग नहीं कर सकता क्योंकि चलाने के लिए कोई कमांड दुभाषिया नहीं है।
उस सवाल के बारे में जिसे आप जवाब देने की कोशिश कर रहे हैं:
एक उपयोगकर्ता जॉन बनाएं, जिसे एक इंटरैक्टिव शेल नहीं मिलना चाहिए।
प्रश्न का अर्थ है "एक उपयोगकर्ता बनाएं जिसका नाम john
शेल से लॉग इन करने और चलाने में सक्षम नहीं होगा"। इंटरएक्टिव शेल के काम करने के तरीके का वर्णन करता है: उपयोगकर्ता कुछ टाइप करता है, और शेल तदनुसार कुछ करता है (उपयोगकर्ता और शेल के बीच एक तरह का संचार होता है)। शब्द "इंटरैक्टिव" वास्तव में प्रश्न के लिए कोई जानकारी नहीं जोड़ता है, क्योंकि जब तक उपयोगकर्ता टाइपिंग कमांड है, शेल सत्र इंटरैक्टिव है।
गैर-संवादात्मक मोड भी है, जहां उपयोगकर्ता उन आदेशों की एक श्रृंखला को सहेजता है जिन्हें वे एक फ़ाइल (शेल स्क्रिप्ट) में चलाना चाहते हैं, और बाद में फ़ाइल निष्पादित करते हैं। कुछ कमांड अलग-अलग तरीके से व्यवहार करते हैं, यह इस बात पर निर्भर करता है कि शेल इंटरेक्टिव या गैर-इंटरएक्टिवली चलाया गया है या नहीं। आप यहां अधिक पढ़ सकते हैं (यह दस्तावेज़ के लिए है bash
, लेकिन अन्य गोले के लिए भी यही अवधारणा लागू होती है)।
इस तरह के उपयोगकर्ता को बनाने के लिए, यदि आप स्किम करते हैं, तो man useradd
लॉगिन शेल सेट करने का विकल्प है, -s
या --shell
। आप सामान्य रूप से एक उपयोगकर्ता भी बना सकते हैं, वैसे भी आप चाहते हैं (जो मुझे लगता है कि आप पहले से ही जानते हैं?), फिर msw के उत्तर की/etc/passwd
तरह संपादित करें ।
हां, कुछ प्रोग्राम है जो होगा करने के लिए पासवर्ड फ़ाइल में खोल (/ etc / पासवर्ड) बदल नहीं एक खोल भागने की अनुमति नहीं।
यदि आप एक बोफ़ / बिन / झूठ बनना चाहते हैं, तो आप वास्तव में वही करेंगे जो आप चाहते हैं।