आप स्थानीय सेटिंग्स को दूरस्थ सेटिंग्स के बराबर कर रहे हैं।
स्थानीय रूप से, उदाहरण के लिए, वर्तमान चल रहा शेल जिसमें आप लिखते हैं:
ssh user@host command
क्लाइंट ssh के रूप में कमांड ssh (अधिक कुछ नहीं) को निष्पादित करेगा।
ऐसा करने के लिए स्थानीय शेल को एक उप-शेल या एक नया शेल या लॉगिन शुरू करने की आवश्यकता नहीं है।
कमांड को ए के रूप में निष्पादित किया जाता है ls
है: स्थानीय रूप से।
यह क्लाइंट ssh कमांड है जो एक नेटवर्क सिस्टम को रिमोट सिस्टम से खोलता है, जहां, यदि सही तरीके से प्रमाणित किया गया है, तो ए किया जाता है, तो ssh के तर्क के रूप में लिखी गई कमांड को निष्पादित करने के लिए नया शेल शुरू किया जाएगा, या, यदि कोई तर्क नहीं दिया जाता है, तो आगे के कमांड की अपेक्षा करें उस संबंध पर।
वह नया रिमोट शेल आवश्यक रूप से एक लॉगिन शेल होगा क्योंकि रिमोट यूजर (उस सिस्टम के लिए) को लॉगिन करने के लिए प्रमाणीकृत होना चाहिए। या, यदि कुछ विशिष्ट कमांड दी जाती है, तो प्रमाणित उपयोगकर्ता विशेषाधिकारों के साथ ऐसी कमांड को चलाएं।
आप देख सकते हैं कि $file sourced
प्रत्येक फ़ाइल के आरंभ में ( रिमोट सिस्टम में) जोड़कर कौन सी फाइलें खट्टी हैं (रूट को /etc/
फाइल बदलने की जरूरत है ):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
और फिर बस एक ssh कंसोल शुरू करें:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
इस मामले में, दोनों bashrc
फ़ाइलों को पढ़ा गया क्योंकि प्रत्येक profile
फ़ाइल में उन्हें शामिल करने की आज्ञा थी, इसलिए नहीं कि लॉगिन शेल ने उन्हें सीधे खट्टा कर दिया।
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
इस प्रणाली में, जहां bashrc
दोनों मामलों में पढ़ा जाता है।
source ~/.bashrc
निष्पादित करने के लिए कमांड को जोड़ने की आवश्यकता नहीं है ।
पाथ बदलें
आपको केवल "$ PATH" को बदलने के लिए सही सेटिंग्स को शामिल करना होगा, या तो /etc/bash.bashrc
उन सभी उपयोगकर्ताओं के लिए जो इस प्रणाली में एक शेल शुरू करते हैं। या ~/.bashrc
प्रत्येक उपयोगकर्ता के लिए जिसे इसकी आवश्यकता है। आप किसी भी नए उपयोगकर्ता .bashrc
को बनाने के /etc/skel/
लिए एक उपयोगकर्ता का कंकाल जोड़ सकते हैं (या संपादित कर सकते हैं) उसके पास सही फ़ाइल उपलब्ध है।
उपरोक्त केवल बैश के लिए मान्य है। यदि आपको सभी शेल के लिए काम करने के लिए सेटिंग की आवश्यकता है, तो संभवतः ~/.ssh/environment
प्रत्येक उपयोगकर्ता के लिए ssh फ़ाइल का उपयोग करके पर्यावरण चर पथ की स्थापना करना। या /etc/ssh/sshrc
सिस्टम में एक वैश्विक सेटिंग के लिए उपयोग करें जहां ssh सर्वर चल रहा है (कृपया man sshd
कुछ अतिरिक्त विवरण के लिए फ़ाइलें अनुभाग पढ़ें )।
.bashrc
खट्टा है, लेकिन यह संभवतः शीर्ष पर अन्तरक्रियाशीलता के लिए एक परीक्षण है। आपके द्वारा उस चेक को लागू करने से पहले रखी जाने वाली चीजें, और यही वह है जो मैं तब करता है जब सर्वर उपयोगकर्ता के वातावरण या उपयोग की अनुमति नहीं देता है~/.pam_environment
।