2022-04-11 17:28:19 -04:00
|
|
|
//go:build linux && cgo
|
|
|
|
|
|
|
|
|
|
package subprocess
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"syscall"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// SetUserns allows running inside of a user namespace.
|
2023-09-13 16:20:39 -04:00
|
|
|
func (p *Process) SetUserns(uidMap []syscall.SysProcIDMap, gidMap []syscall.SysProcIDMap) {
|
2022-04-11 17:28:19 -04:00
|
|
|
p.SysProcAttr = &syscall.SysProcAttr{
|
|
|
|
|
Cloneflags: syscall.CLONE_NEWUSER,
|
|
|
|
|
Credential: &syscall.Credential{
|
|
|
|
|
Uid: uint32(0),
|
|
|
|
|
Gid: uint32(0),
|
|
|
|
|
},
|
2023-09-13 16:20:39 -04:00
|
|
|
UidMappings: uidMap,
|
|
|
|
|
GidMappings: gidMap,
|
2022-04-11 17:28:19 -04:00
|
|
|
}
|
|
|
|
|
}
|