ssh: run commands through sh -c if sh is present
This commit is contained in:
parent
b99b39b334
commit
05c84e7002
8
ssh.go
8
ssh.go
@ -150,7 +150,13 @@ func (s *session) request(req *ssh.Request) error {
|
||||
return scpSink(s.channel, req, cmdline)
|
||||
}
|
||||
|
||||
cmd := exec.Command(cmdline[0], cmdline[1:]...)
|
||||
var cmd *exec.Cmd
|
||||
if _, err := exec.LookPath("sh"); err == nil {
|
||||
cmd = exec.Command("sh", "-c", string(req.Payload[4:]))
|
||||
} else {
|
||||
cmd = exec.Command(cmdline[0], cmdline[1:]...)
|
||||
}
|
||||
log.Printf("Starting cmd %q", cmd.Args)
|
||||
cmd.Env = expandPath(s.env)
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user