On 4/28/24 3:07 PM, Gioele Barabucci wrote:
$ su -l $USER -s /bin/bash-static -c 'echo $BASH; readlink /proc/$$/exe; head -1z /proc/$$/cmdline; echo'/bin/bash /usr/bin/bash-static -bash-static
So argv[0] == "-bash-static", which causes $0 to be set to -bash-static and internally sets shell_name to "bash-static" and login_shell to 1 (which notes that bash was executed with argv[0][0] == '-'). Then when you get to setting $BASH, this code gets executed: if ((login_shell == 1) && RELPATH(shell_name)) { if (current_user.shell == 0) get_current_user_info (); name = savestring (current_user.shell); } which has been the way bash has behaved since the bash-1.x days. Is this enough of an issue to change behavior that dates back that far? -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/
OpenPGP_signature.asc
Description: OpenPGP digital signature