Skip to content

Commit 7ef5a2c

Browse files
committed
addressed feedback
1 parent c26b6b8 commit 7ef5a2c

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

components/supervisor/pkg/supervisor/ssh.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"path/filepath"
1616
"strings"
1717

18-
"golang.org/x/sys/unix"
1918
"golang.org/x/xerrors"
2019

2120
"github.com/gitpod-io/gitpod/common-go/log"
@@ -171,7 +170,9 @@ func (s *sshServer) handleConn(ctx context.Context, conn net.Conn) {
171170
cmd.Env = s.envvars
172171
cmd.ExtraFiles = []*os.File{socketFD}
173172
cmd.Stderr = os.Stderr
174-
cmd.SysProcAttr.AmbientCaps = append(cmd.SysProcAttr.AmbientCaps, unix.CAP_SYS_PTRACE)
173+
174+
cmd.SysProcAttr.AmbientCaps = grantCapSysPtrace(cmd.SysProcAttr.AmbientCaps)
175+
175176
if s.cfg.WorkspaceLogRateLimit > 0 {
176177
limit := int64(s.cfg.WorkspaceLogRateLimit)
177178
cmd.Stderr = dropwriter.Writer(cmd.Stderr, dropwriter.NewBucket(limit*1024*3, limit*1024))

components/supervisor/pkg/supervisor/supervisor.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ func Run(options ...RunOption) {
358358
Gid: gitpodGID,
359359
}
360360
if !cfg.isHeadless() {
361-
termMuxSrv.DefaultAmbientCaps = append(termMuxSrv.DefaultAmbientCaps, unix.CAP_SYS_PTRACE)
361+
termMuxSrv.DefaultAmbientCaps = grantCapSysPtrace(termMuxSrv.DefaultAmbientCaps)
362362
}
363363

364364
taskManager := newTasksManager(cfg, termMuxSrv, cstate, nil, ideReady, desktopIdeReady)
@@ -1040,7 +1040,7 @@ func prepareIDELaunch(cfg *Config, ideConfig *IDEConfig) *exec.Cmd {
10401040
cmd.SysProcAttr.Setpgid = true
10411041
cmd.SysProcAttr.Pdeathsig = syscall.SIGKILL
10421042

1043-
cmd.SysProcAttr.AmbientCaps = append(cmd.SysProcAttr.AmbientCaps, unix.CAP_SYS_PTRACE)
1043+
cmd.SysProcAttr.AmbientCaps = grantCapSysPtrace(cmd.SysProcAttr.AmbientCaps)
10441044

10451045
// Here we must resist the temptation to "neaten up" the IDE output for headless builds.
10461046
// This would break the JSON parsing of the headless builds.
@@ -1984,3 +1984,9 @@ func waitForIde(parent context.Context, ideReady *ideReadyState, desktopIdeReady
19841984
}
19851985
return true, ""
19861986
}
1987+
1988+
// We grant ptrace for IDE, terminal, ssh and their child process
1989+
// It's make IDE attach more easier
1990+
func grantCapSysPtrace(caps []uintptr) []uintptr {
1991+
return append(caps, unix.CAP_SYS_PTRACE)
1992+
}

0 commit comments

Comments
 (0)