"Eine interaktive Anmeldeshell wird nach einer erfolgreichen Anmeldung unter Verwendung von / bin / login durch Lesen der Datei / etc / passwd gestartet. Dieser Shell-Aufruf liest normalerweise / etc / profile und dessen privates Äquivalent ~ / .bash_profile beim Start.
Eine interaktive Shell ohne Anmeldung wird normalerweise über die Befehlszeile mit einem Shell-Programm (z. B. [prompt] $ / bin / bash) oder mit dem Befehl / bin / su gestartet. Eine interaktive Shell ohne Anmeldung wird auch mit einem Terminalprogramm wie xterm oder konsole in einer grafischen Umgebung gestartet. Diese Art des Shell-Aufrufs kopiert normalerweise die übergeordnete Umgebung und liest dann die ~ / .bashrc-Datei des Benutzers, um zusätzliche Anweisungen für die Startkonfiguration zu erhalten. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Daher würde ich Umgebungsvariablen nicht in bashrc einfügen, da dies nicht nur gegen die gängigen Konventionen verstößt, sondern Sie auch Ihre bashrc-Variablen vermissen, wenn Sie ein Terminal aus einer grafischen Desktop-Umgebung aufrufen.
Auf Redhat in der /etc/profile
fand ich diesen Kommentar:
"Systemweite Aliase und Funktionen sollten in / etc / bashrc abgelegt werden. Persönliche Umgebungsvariablen und Startprogramme sollten in ~ / .bash_profile abgelegt werden. Persönliche Aliase und Funktionen sollten in ~ / .bashrc abgelegt werden."
Wenn Sie Umgebungsvariablen auf Benutzerbasis festlegen möchten, tun Sie dies in der .bash_profile-Datei des Benutzers.
Unterwegs .bash_profile
las ich:
"Persönliche Umgebungsvariablen und Startprogramme.
Persönliche Aliase und Funktionen sollten in ~ / .bashrc abgelegt werden. Systemweite Umgebungsvariablen und Startprogramme befinden sich in / etc / profile. Systemweite Aliase und Funktionen befinden sich in / etc / bashrc. "
Fazit
Wenn nur root Programme sehen soll, die sich im Verzeichnis / sbin
I befinden, würde ich diesen Pfad zur root- .bash_profile
Datei hinzufügen . Aber wenn Sie jeden Benutzer wollen , was wurzelspezifische Programme zu sehen sind , auf Ihrem System installiert ich setzen würde /sbin
in /etc/.profile
. Jetzt kann jeder Benutzer mithilfe der Tab-Vervollständigung nach root-spezifischen Programmen suchen und bei Bedarf die Rechte erhöhen.
Sonderfall: SSH
Wenn ssh über eine Befehlszeile gestartet wird, wird eine interaktive Anmeldeshell gestartet. Aber in diesem Fall /etc/profile
wird nicht gelesen. Als ich Umgebungsvariablen in der .bash_profile
Datei jedes Benutzers definierte, funktionierte es mit ssh.
~/.profile
ist eine andere gültige Option auch