[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian Testing und Systemshell dash



Hallo,

bei einem der letzten "aptitude update / upgrade" habe ich den Wechsel auf
die neue Systemshell  "dash" akzeptiert und will das auch so behalten.

Bei Systemusern habe ich aber einen merkwürdigen Prompt und Befehle, wie
"pwd" funktionieren nicht, wenn ich via ssh als root connectet bin.
Bei pwd hängt die session einfach, aber manchmal eben auch nicht.
CTRL C hilft da auch nix.
Das würde mich ja auch nicht unbedingt stören. Aber wenn dann "exit"
auch hin und wieder nicht funktioniert, dann ist das nicht mehr lustig.

Beispiel für Systemuser  amavis:

----
serv:/var/lib/amavis# su amavis
\h:\w$
----

Im Homeverzeichnis des Systemusers amavis existiert nur eine  .bash_history.
Bei einem Wechsel in ein Unterverzeichnis erscheint der gleiche Prompt und nicht
der erwartete relative Pfad.

Bei einem normalen lokalen Benutzer gibts das Problem nicht.

Ich glaube auch nicht, dass das jetzt an (schlechter) ssh-verbindung liegt,
denn über eine weitere ssh-verbindung sehe ich ja folgendes:

-----
serv:~# ps -u amavis
  PID TTY          TIME CMD
 1918 ?        00:00:32 amavisd-new
 9354 ?        00:00:08 amavisd-new
 9369 ?        00:00:10 amavisd-new
10070 pts/1    00:03:20 su
10071 pts/1    00:03:30 sh
serv:~#
-----

Als Würgaround hilft da dann nur noch kill -9 10070.

Hier noch die Einträge in der /etc/passwd:

----
amavis:x:104:109:AMaViS system user,,,:/var/lib/amavis:/bin/sh
benn:x:1000:1000:Bernd Schmelter,,,:/home/benn:/bin/bash
----

AHA, der normale User benutzt ja weiterhin die "bash" und nicht "dash"
und /bin/sh  ist ein Link auf /bin/dash

Nun mal in die /etc/profile geschaut:

------
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi

if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    PS1='\u@\h:\w\$ '
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export PATH

umask 022
------

Hmmm, da könnte der Hund begraben sein.
Frage: muß ich da selber basteln oder kommt da noch was von einem Maintainer,
der mehr von der Sache versteht?

Vielleicht ist der Zustand (Prompt) ja auch so gewollt?

MfG
Benn


mfg
Benn




Reply to: