Updates #3802 Change-Id: I44de6897e36b1362cd74c9b10c9cbfeb9abc3dbc Signed-off-by: Brad Fitzpatrick <[email protected]>
@@ -107,7 +107,13 @@ func (ns *Impl) handleSSH(s ssh.Session) {
return
}
- cmd := exec.Command("/bin/bash")
+ var cmd *exec.Cmd
+ sshUser := s.User()
+ if os.Getuid() != 0 || sshUser == "root" {
+ cmd = exec.Command("/bin/bash")
+ } else {
+ cmd = exec.Command("/usr/bin/env", "su", "-", sshUser)
+ }
cmd.Env = append(cmd.Env, fmt.Sprintf("TERM=%s", ptyReq.Term))
f, err := pty.Start(cmd)
if err != nil {