ऐसा लगता है कि सिस्टम के लिए आवश्यक वातावरण स्थापित माणिक घटकों को खोजने के लिए एक फ़ाइल में निर्दिष्ट है जो केवल लॉगिन गोले के लिए पढ़ा जाता है। बैश मैनुअल पेज में लॉगिन गोले और गैर-लॉगिन गोले के बीच अंतर के बारे में कहना है:
INVOCATION
A login shell is one whose first character of argument zero is a -, or
one started with the --login option.
तथा
When bash is invoked as an interactive login shell, or as a non-inter‐
active shell with the --login option, it first reads and executes com‐
mands from the file /etc/profile, if that file exists. After reading
that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
in that order, and reads and executes commands from the first one that
exists and is readable.
जहाँ तक
When an interactive shell that is not a login shell is started, bash
reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if
these files exist.
इसलिए यदि माणिक पर्यावरण चर /home/rails/.profile
या /etc/profile
उदाहरण के लिए हैं, तो उन्हें शेल वातावरण में जोड़ा जाएगा
- स्पष्ट रूप से एक लॉगिन खोल का उपयोग कर लागू द्वारा
su -l rails
या su --login rails
या आशुलिपिsu - rails
- जब उपयोगकर्ता
rails
SSH के माध्यम से लॉग इन करता है
bash --login
लॉगिन के बाद एक सबशेल शुरू करके
यदि आप चाहते हैं कि माणिक वातावरण को सेट किया जाए, भले ही आप उपयोगकर्ता के लिए स्विच करें rails
, तो आप संबंधित परिवर्तनीय परिभाषाओं को उपयोगकर्ता के ~/.bashrc
बजाय स्थानांतरित कर सकते हैं ।
su
? या कुछsu -l
औरsu --
?) पर कैसे स्विच कर रहे हैं । उपयोगकर्ता "रेल" के लिए लॉगिन शेल क्या है? आप उपयोगकर्ता के पथ चर संशोधित किया था और यदि ऐसा है तो जो फ़ाइल में (~/.profile
या~/.bashrc
या~/.bash_profile
या ...?)