एक लिनक्स सर्वर के लिए रिमोट लॉगिन पर बायपास ~ / .profile


32

वहाँ एक तरीका है बाईपास या ~/.profileजब ssh या पोटीन का उपयोग कर एक दूरस्थ लिनक्स सर्वर में प्रवेश के निष्पादन को रोकने के लिए ?


तुमने ऐसा क्यों करना चाहोगे? फ़ाइल में मानों को संपादित क्यों नहीं किया? (यह आपकी प्रोफ़ाइल है, सब के बाद।)
टेलीमेकस

7
यह उदाहरण के लिए उपयोगी है अगर किसी ने .profile फ़ाइल को खराब कर दिया है और आपके पास सिस्टम तक सीधी पहुंच नहीं है :)
बंदर_पी।

ठीक यही स्थिति मैंने स्वयं को बंदर_पी
एंड्रयू हैम्पटन

जवाबों:


30

बैश के लिए:

$ ssh hostname "bash --noprofile"

6
आपको -tविकल्प की भी आवश्यकता होगी , मुझे लगता है।
ग्रैविटी

2
ssh -t hostname "bash --noprofile"। अगर वहाँ नहीं था, तो मुझे "मानक एक ट्टी होना चाहिए" त्रुटि मिल रही थी।
नटिन्स

14

आप सभी प्रवेश स्क्रिप्ट निष्क्रिय करने के लिए देख रहे हैं, तो आप उपयोग कर सकते हैं --noprofileनिष्क्रिय करने के लिए ध्वज /etc/profile, ~/.profileआदि और --norcनिष्क्रिय करने के लिए ~/.bashrcतो जैसे:

$ ssh 127.0.0.1 "bash --noprofile --norc"

ध्यान रखें कि यदि आप उपलब्ध हैं तो आप एक वैकल्पिक शेल भी लॉन्च कर सकते हैं। मुझे इसमें गड़बड़ करने के बाद इसका उपयोग करना पड़ा है chsh:

$ ssh 127.0.0.1 sh

यह सबसे अधिक संभावना है कि आपको एक खाली शेल (कोई संकेत नहीं) में गिरा देगा ताकि यह lsसुनिश्चित कर सके कि यह काम कर रहा है।


4

यदि आपकी लक्ष्य मशीन एक बैश शेल में है:

user@host:/$ ssh hostname "bash --noprofile"

वैकल्पिक रूप से, यदि कोई अन्य प्रोफ़ाइल है जिसका आप उपयोग करना चाहते हैं

user@host:/$ ssh hostname "bash --noprofile; source ~/.other_profile"

1

इसके अलावा, गलत लॉगिन फ़ाइल को हटाने के लिए WinSCP जैसे FTP प्रोग्राम का उपयोग करने का प्रयास करें। यह इसे छोड़ देगा, लेकिन कम से कम आपको डिफ़ॉल्ट शेल में लॉगिन करने में सक्षम होना चाहिए


या शायद इसे नाम बदलें।
जेजेक

1

जैसा कि अन्य लोगों ने उल्लेख किया है, जब आप कनेक्शन आरंभ करते हैं तो ध्वज के साथ चलाना --noprofileकाम करेगा, हालांकि यदि आप एक अलग शेल का उपयोग कर रहे हैं तो यह विकल्प नहीं भी हो सकता है।

एक विकल्प यह होगा कि प्रोफाइल स्क्रिप्ट एक SSH कनेक्शन का पता लगाए और उसी के अनुसार व्यवहार करे। चूंकि एसएसएच कनेक्शन सामान्य रूप से कई पर्यावरण चर निर्धारित करेगा, इसलिए इसे आसानी से जांचा जा सकता है। अपनी प्रोफ़ाइल के आरंभ में निम्नलिखित पंक्तियों की तरह कुछ जोड़ना चाहिए:

if [ "$SSH_CONNECTION" != "" ]; then
  echo Logging in with ssh
  return
else
  echo Logging in with something that is not ssh
fi

# rest of your profile goes here

returnस्क्रिप्ट के बाकी को छोड़ देगा, तो $SSH_CONNECTIONवातावरण चर सेट किया गया है, जो आम तौर पर जब भी एक SSH कनेक्शन आरंभ बनाई किया जाएगा। अन्यथा प्रोफ़ाइल को सामान्य की तरह चलाया जाएगा।

ध्यान दें कि यह केवल प्रभावित प्रोफ़ाइल स्क्रिप्ट को छोड़ देगा। /etc/profileजब तक आप उन्हें इसी तरह संशोधित नहीं करेंगे तब तक सभी अन्य प्रोफ़ाइल स्क्रिप्ट (जैसे:) अभी भी संसाधित की जाएंगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.