bashrc auf remote server [gelöst]

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

bashrc auf remote server [gelöst]

Beitrag von _ash » 22.08.2010 21:46:09

Ich melde mich per ssh als Systembenutzer auf einem Server an. Eigentlich sollte doch jetzt die .bashrc im Heimatverzeichnis des Benutzers durchlaufen werden, oder? Tut es in dem Fall nicht. Ich lande nach der Anmeldung zwar im Heimatverzeichnis des Benutzers, die .bashrc wird aber nicht durchlaufen.

Kann mir jmd erklären, ob das normales Verhalten ist, oder wie ich das ändern kann? Danke.
Zuletzt geändert von _ash am 24.08.2010 10:13:10, insgesamt 1-mal geändert.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: bashrc auf remote server

Beitrag von nepos » 23.08.2010 09:21:59

Hm, ich denke in deinem Fall hast du ein Login-Shell. Da wird nur die ~/.bash_profile ausgeführt. Schau mal in die Doku zur Bash. Du kannst in ~/.bash_profile natürlich einfach deine ~/.bashrc sourcen.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: bashrc auf remote server

Beitrag von _ash » 23.08.2010 09:52:12

Was bedeutet sourcen in diesem Fall?

Edit: hab's gefunden, danke.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: bashrc auf remote server

Beitrag von _ash » 23.08.2010 10:05:54

nächstes Problem: auch eine .bash_profile scheint nicht ausgeführt zu werden, ebenso eine .bash_login -- bringt keinerlei Erfolg. Noch eine Idee?

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: bashrc auf remote server

Beitrag von uname » 23.08.2010 10:27:36

Am besten du hängst dich mal an deinen SSH-Server. Im übrigen kannst du damit das eingegebene Passwort auslesen, das aber nur am Rande.

Als root (Beispiel):

Code: Alles auswählen

 
ps -ef |fgrep ssh                                               
root      2504     1  0 10:02 ?        00:00:00 /usr/sbin/sshd
Den Prozess (hier 2504) auswählen, der an Init (1) hängt.

In ein Tmp-Ordner wechseln und den Prozess incl. neue Unterprozesse abhorchen:

Code: Alles auswählen

strace -ff -o out.txt -p 2504   (Prozess-ID anpassen)
Wechseln in eine andere Konsole oder Remote (z.B. Putty), Anmelden per SSH mit Benutzer:

Code: Alles auswählen

ssh user@server
- Anmelden
- sofort mit "exit" abmelden aufgrund der etwas hohen Datenmenge
Den strace-Befehl mit CTRL-C wieder stoppen. Angelegt wurden ein paar Dateien, Zahlen sind Prozess-IDs.

Beispiel:

Code: Alles auswählen

ls out*
out.txt.2504  out.txt.3665  out.txt.3667  out.txt.3669
out.txt.3662  out.txt.3666  out.txt.3668  out.txt.3670
Suchen z.B. nach bash:

Code: Alles auswählen

fgrep bash out.txt.*
Anschauen des jeweiligen Wertes, hier ein Beispiel aus der Datei out.txt.3668:

Code: Alles auswählen

open("/home/user/.bash_profile", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)                                                                   
open("/home/user/.bash_login", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)                                                                     
open("/home/user/.profile", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)                                                                        
fcntl64(0, F_GETFL)                     = 0x8002 (flags O_RDWR|O_LARGEFILE)     
stat64("/var/mail/user", 0xbf906574)     = -1 ENOENT (No such file or directory) 
time(NULL)         

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Re: bashrc auf remote server

Beitrag von hupfdule » 23.08.2010 10:50:18

Vermutlich befindest du dich gar nicht auf einer bash.
Die Ausgabe von

Code: Alles auswählen

echo $SHELL
sollte dir sagen, auf welcher Shell du gerade arbeitest. Diese hat dann ihre eigenen rc-Dateien.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: bashrc auf remote server

Beitrag von _ash » 23.08.2010 11:21:38

Code: Alles auswählen

echo $SHELL
/bin/sh
Das beantwortet wohl die Frage. Kann ich hier etwas tun, dass trotzdem meine bashrc aufgerufen wird?

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: bashrc auf remote server

Beitrag von uname » 23.08.2010 11:25:02

Da du Admin bist könntest du in /etc/passwd die Shell entsprechend auf /bin/bash setzen. Könnte aber evtl. Seiteneffekte auf Anwendungen haben, sofern es wirklich ein administrativer Benutzer ist, der auch Anwendungen ausführt.

Schau evtl. auch noch:

Code: Alles auswählen

ls -l /bin/sh
vielleicht ein falscher Symlink, zeigt bei mir auf /bin/bash.

_ash
Beiträge: 1219
Registriert: 13.05.2005 12:35:02

Re: bashrc auf remote server

Beitrag von _ash » 23.08.2010 11:32:08

gelöst: ~/.profile heißt die entsprechende Datei, darin die bashrc sourcen, dann gehts.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: bashrc auf remote server

Beitrag von nepos » 24.08.2010 10:09:53

_ash hat geschrieben:gelöst: ~/.profile heißt die entsprechende Datei, darin die bashrc sourcen, dann gehts.
Naja, dann musst du aber aufpassen, dass da nicht Dinge drin sind, die nur die Bash versteht. Das bessere wäre meiner Meinung, wenn du einfach mit chsh deine Shell auf die Bash umstellst.

@uname: auch wenn man Admin ist, muss man nicht immer direkt in Files wie /etc/passwd rumbasteln ;)

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: bashrc auf remote server [gelöst]

Beitrag von uname » 24.08.2010 13:56:41

@uname: auch wenn man Admin ist, muss man nicht immer direkt in Files wie /etc/passwd rumbasteln ;)
Stimmt. Aber nach mehr als 15 Jahren UNIX bzw. Linux habe ich sämtliche Angst vor diesen Aktionen verloren. Und im Zweifel kopiere ich ein Backup zurück.

Zudem vergesse ich immer diese netten Tools aus dem Debian-Paket "passwd":

Code: Alles auswählen

dpkg -L passwd |fgrep bin | egrep -v '/bin$' | tr '\n' ','
/usr/bin/chage,/usr/bin/chfn,/usr/bin/chsh,/usr/bin/expiry,/usr/bin/gpasswd,/usr/bin/passwd,/usr/sbin,/usr/sbin/chpasswd,/usr/sbin/chgpasswd,/usr/sbin/cppw,/usr/sbin/groupadd,/usr/sbin/groupdel,/usr/sbin/groupmod,/usr/sbin/grpck,/usr/sbin/grpconv,/usr/sbin/grpunconv,/usr/sbin/newusers,/usr/sbin/pwck,/usr/sbin/pwconv,/usr/sbin/pwunconv,/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/sbin/vipw,/sbin,/sbin/shadowconfig,/usr/sbin/cpgr,/usr/sbin/vigr,

Antworten