package main import ( "log" "os" "syscall" "time" "kernel.org/pub/linux/libs/security/libcap/psx" ) const prSetKeepCaps = 8 func main() { r, w, err := os.Pipe() if err != nil { log.Fatalf("failed to obtain pipe: %v", err) } data := make([]byte, 2+r.Fd()) go r.Read(data) time.Sleep(500 * time.Millisecond) psx.Syscall3(syscall.SYS_PRCTL, prSetKeepCaps, 1, 0) w.Close() r.Close() }