1package main 2 3import ( 4 "log" 5 "os" 6 "syscall" 7 "time" 8 9 "kernel.org/pub/linux/libs/security/libcap/psx" 10) 11 12const prSetKeepCaps = 8 13 14func main() { 15 r, w, err := os.Pipe() 16 if err != nil { 17 log.Fatalf("failed to obtain pipe: %v", err) 18 } 19 data := make([]byte, 2+r.Fd()) 20 go r.Read(data) 21 time.Sleep(500 * time.Millisecond) 22 psx.Syscall3(syscall.SYS_PRCTL, prSetKeepCaps, 1, 0) 23 w.Close() 24 r.Close() 25} 26