bashrc auf remote server [gelöst]
bashrc auf remote server [gelöst]
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.
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.
Re: bashrc auf remote server
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.
Re: bashrc auf remote server
Was bedeutet sourcen in diesem Fall?
Edit: hab's gefunden, danke.
Edit: hab's gefunden, danke.
Re: bashrc auf remote server
nächstes Problem: auch eine .bash_profile scheint nicht ausgeführt zu werden, ebenso eine .bash_login -- bringt keinerlei Erfolg. Noch eine Idee?
Re: bashrc auf remote server
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):
Den Prozess (hier 2504) auswählen, der an Init (1) hängt.
In ein Tmp-Ordner wechseln und den Prozess incl. neue Unterprozesse abhorchen:
Wechseln in eine andere Konsole oder Remote (z.B. Putty), Anmelden per SSH mit Benutzer:
Den strace-Befehl mit CTRL-C wieder stoppen. Angelegt wurden ein paar Dateien, Zahlen sind Prozess-IDs.
Beispiel:
Suchen z.B. nach bash:
Anschauen des jeweiligen Wertes, hier ein Beispiel aus der Datei out.txt.3668:
Als root (Beispiel):
Code: Alles auswählen
ps -ef |fgrep ssh
root 2504 1 0 10:02 ? 00:00:00 /usr/sbin/sshd
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)
Code: Alles auswählen
ssh user@server
- Anmelden
- sofort mit "exit" abmelden aufgrund der etwas hohen Datenmenge
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
Code: Alles auswählen
fgrep bash out.txt.*
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)
Re: bashrc auf remote server
Vermutlich befindest du dich gar nicht auf einer bash.
Die Ausgabe von sollte dir sagen, auf welcher Shell du gerade arbeitest. Diese hat dann ihre eigenen rc-Dateien.
Die Ausgabe von
Code: Alles auswählen
echo $SHELL
Re: bashrc auf remote server
Code: Alles auswählen
echo $SHELL
/bin/sh
Re: bashrc auf remote server
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:
vielleicht ein falscher Symlink, zeigt bei mir auf /bin/bash.
Schau evtl. auch noch:
Code: Alles auswählen
ls -l /bin/sh
Re: bashrc auf remote server
gelöst: ~/.profile heißt die entsprechende Datei, darin die bashrc sourcen, dann gehts.
Re: bashrc auf remote server
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._ash hat geschrieben:gelöst: ~/.profile heißt die entsprechende Datei, darin die bashrc sourcen, dann gehts.
@uname: auch wenn man Admin ist, muss man nicht immer direkt in Files wie /etc/passwd rumbasteln
Re: bashrc auf remote server [gelöst]
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.@uname: auch wenn man Admin ist, muss man nicht immer direkt in Files wie /etc/passwd rumbasteln
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,