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

Re: /bin/-bash -c



Am Sun, Jan 15, 2023 at 11:32:32PM +0100 schrieb Heiko Schlittermann:
> Rolf Reintjes <lists.rolf@reintjes.nrw> (So 15 Jan 2023 19:51:37 CET):

Hallo Rolf,

> > Ich habe es gegooglet und dann selber ausprobiert: Ich habe STRG-ALT-F2
> > gedrückt und mich eingeloggt. Dann stand unter ps aux ein bash mit einem -
> > davor, also -bash .
> 
> Leute. Das - wird vom Aufrufer der Shell in argv[0] eingetragen. Der
> Aufrufer macht sowas wie
> 
>         exec("/bin/bash", "-bash", …)
> 
> Siehe exec(3) und auch als Analogon `help exec`

Danke für die Erklärung. Damit habee ich mal wieder etwas gelernt.
Allerdings gibt es bei Debian Bullseye keine Manpages zu exec,
weder man exec noch man 3 exec. Auf einer aktuellen Webseite
ist exec(3) vorhanden. Aber dort ist kein Hinweis auf eine
Login-Shell.

Deine Erklärung findet sich aber in der man page von bash unter dem
Abschnitt "Invocation".

> Das macht normalerweise jemand, der der startenden Shell mitteilen
> möchte, dass sie eine Login-Shell ist. Z.B. der Login-Prozess (login(1))
> tut das, möglicherweise auch - je nach Konfiguration - das
> Gnome-Termnal.
> 
> Die Shell hat sich an diese Konvention gewöhnt, und guckt unmittelbar
> nach dem Start nach, ob argv[0][0] ein '-' ist, und verhält sich dann
> wie eine Login-Shell, ansonsonsten halt nur wie eine (möglicherweise
> interaktive) Nicht-Login-Shell.

Nochmals vielen Dank,
Christoph
-- 
Ist die Katze gesund
schmeckt sie dem Hund.


Reply to: