blob: 7aa3a76b0cac17ed4bf301ff58c72458834a1ba5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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()
}
|