Bash und ~/.profile

Hallo,

vor ein paar Monaten habe ich Debian Lenny (testing) installiert und soweit alles konfiguriert. Aber mit einem Problem werde ich nicht fertig.
Melde ich mich als norm. Benutzer an, wird im /home/Benutzer nicht die .profile-Datei verarbeitet. Das muß ich immer im Terminal per Hand machen ($>. .profile). Die Rechte stehen m. E. richtig.

-rwx------ 1 li users 441 Sep 18 21:27 .profile

Melde ich mich als root an, wird in /root die .profile-Datei abgearbeitet.

-rw------- 1 root root 165 Sep 18 21:22 /root/.profile

Woran liegt das?

Li

Hallo,

Die Rechte stehen m. E. richtig.

-rwx------ 1 li users 441 Sep 18 21:27 .profile

Warum ist die Datei für den user „li“ ausführbar? Die wird lediglich gelesen, nicht ausgeführt. Ich würde ihr außerdem noch „group read“ und „world read“ Rechte geben. Also „chmod 644 ./.profile“. Ich weiß gerade nicht, unter welchem User die Bash gestartet wird, aber den user „li“ gibt es ja noch nicht, wenn es um eine login-shell geht.

Gibt es eine Fehlermeldung, wenn Du einfach nochmals „bash“ in der Shell startest? Wenn nein, musst Du dann auch noch immer .profile von Hand ausführen?

Last not least: Gibt es Dateien mit namen ~/.bash_profile oder ~/.bash_login? Dann würde eine (später) folgende ~/.profile gar nicht mehr beachtet.

Gruß

Fritze

Warum ist die Datei für den user „li“ ausführbar? Die wird
lediglich gelesen, nicht ausgeführt. Ich würde ihr außerdem
noch „group read“ und „world read“ Rechte geben. Also „chmod
644 ./.profile“. Ich weiß gerade nicht, unter welchem User die
Bash gestartet wird, aber den user „li“ gibt es ja noch nicht,
wenn es um eine login-shell geht.

Unter welchen Benutzer X sollte die Shell denn ausgeführt werden, wenn nicht unter dem Benutzer der sich anmeldet? Angenommen X sei root, dann kann die Datei gelesen werden, egal wie die Rechte gesetzt werden. Angenommen X sei nicht root und auch nicht der gewüschte Benutzer, wie soll X zu dem gewünschten Benutzer wechseln?

Last not least: Gibt es Dateien mit namen ~/.bash_profile oder
~/.bash_login? Dann würde eine (später) folgende ~/.profile
gar nicht mehr beachtet.

Die Dinge die du brauchst würde ich in .bashrc schreiben bzw. wenn es sich um Umgebungsvariablen handelt, die für alle Benutzer gelten soll in /etc/environment. Die Standard-.bash_profile läd meistens die .bashrc. Damit wird die .bashrc sowohl für eine Login als auch für eine Nicht-Login-Shell ausgeführt.

Last not least: Gibt es Dateien mit namen ~/.bash_profile oder
~/.bash_login? Dann würde eine (später) folgende ~/.profile
gar nicht mehr beachtet.

Jupp, das isses. Es Gibt eine ~/.bash_profile, darin steht, falls existent soll ~/.bashrc ausgeführt werden und das war’s. Also habe ich jetzt mal selbiges Kommando in der .bashrc am Ende eingefügt und jetzt läuft’s auch wieder mit der .profile. Verwirrend ist nur, daß am Anfang der .profile steht:

~/.profile: executed by Bourne-compatible login shells.

Die Dinge die du brauchst würde ich in .bashrc schreiben bzw.
wenn es sich um Umgebungsvariablen handelt, die für alle
Benutzer gelten soll in /etc/environment. Die
Standard-.bash_profile läd meistens die .bashrc. Damit wird
die .bashrc sowohl für eine Login als auch für eine
Nicht-Login-Shell ausgeführt.

Kann sein, daß meine Lösung nicht ganz sauber ist, ich finde die aber sauber. Weil in der .bash_profile steht, die .bashrc ausführen. In der .bashrc steht, die .profile ausführen. Ich meine, daß es auch so in der Doku über die bash geschrieben steht, die Reihenfolge meine ich.

Danke für die Hinweise!

Li

Hallo,

Unter welchen Benutzer X sollte die Shell denn ausgeführt
werden, wenn nicht unter dem Benutzer der sich anmeldet?

Du hast natürlich völlig recht. Ich habe keine Ahnung, was ich mir da gedacht habe. Die login-shell wird über getty (oder einem vergleichbaren Programm) mit den Privilegien des angemeldeten Nutzers per „exec login“ gestartet.

Die Zugriffsrechte waren daher korrekt. Insbesondere sollte es eigentlich überhaupt keinen Grund geben, die Dateien als „world readable“ zu deklarieren. Es sollte theoretisch ausreichen, wenn der User selbst lesenden Zugiff hat.

Gruß

Fritze