Package: login
Version: 4.0.14-1
Severity: normal

Dear maintainers,

from bash's source, shell.c:

]  /* A non-interactive shell not named `sh' and not in posix mode reads and
]     executes commands from $BASH_ENV.  If `su' starts a shell with `-c cmd'
]     and `-su' as the name of the shell, we want to read the startup files.
]     No other non-interactive shells read any startup files. */

This was the case prior to 4.0.14: (tested on 4.0.13-7)

] s10:~# strace -eexecve,setuid32 -f su - backup echo \$SHELL
] execve("/bin/su", ["su", "-", "backup", "echo", "$SHELL"], [/* 18 vars */]) = 0
] setuid32(34)                            = 0
] execve("/bin/sh", ["-su", "-c", "echo $SHELL"], [/* 8 vars */]) = 0
]                    ^^^^^
] ...

Present behaviour:

] [EMAIL PROTECTED]:/home/jcn# strace -f -eexecve,setuid32 su - jcn echo \$SHELL
] execve("/bin/su", ["su", "-", "jcn", "echo", "$SHELL"], [/* 25 vars */]) = 0
] setuid32(1000)                          = 0
] Process 23014 attached (waiting for parent)
] Process 23014 resumed (parent 23013 ready)
] Process 23013 suspended
] [pid 23014] execve("/bin/bash", ["/bin/bash", "-c", "echo $SHELL"], [/* 8 
vars */]) = 0
]                                  ^^^^^^^^^^^
] ...

This results in, among other things, $PATH being set to the wrong directory 
list.


Regards,

Jan

-- 
Jan C. Nordholz
<jckn At gmx net>

Attachment: signature.asc
Description: Digital signature

Reply via email to