
ssh user@host "umask"
gibt 0174
ssh user@host
und die Umask von der Server-Shell ergibt 0002
Können Sie bitte erklären, wie das passieren kann?
UPD: Tatsächlich war es /etc/passwd, das umask überschrieben hat.
Antwort1
Aus der Bash-Manpage:
Wenn eine interaktive Shell gestartet wird, die keine Anmelde-Shell ist, liest und führt Bash Befehle aus aus
~/.bashrc
, sofern diese Datei vorhanden ist. (...) Beim Aufruf als interaktive Anmelde-Shell oder nicht-interaktive Shell mit der--login
Option versucht sie zuerst, Befehle aus/etc/profile
und zu lesen und auszuführen~/.profile
, in dieser Reihenfolge.
Bei deinem ersten Befehl ( ssh user@host "umask"
) handelt es sich nicht um eine Login-Shell, im zweiten Fall schon. Überprüfe also deine ~/.bashrc
Datei auf einen umask 0002
Befehl.