|
1 | 1 | diff --git a/oci/oci.go b/oci/oci.go |
2 | | -index 6c84ba3488..d931f92d27 100644 |
| 2 | +index 60227c2680..2727ed38ce 100644 |
3 | 3 | --- a/oci/oci.go |
4 | 4 | +++ b/oci/oci.go |
5 | | -@@ -18,12 +18,6 @@ func SetCapabilities(s *specs.Spec, caplist []string) error { |
6 | | - s.Process.Capabilities.Bounding = caplist |
7 | | - s.Process.Capabilities.Permitted = caplist |
8 | | - s.Process.Capabilities.Inheritable = caplist |
9 | | -- // setUser has already been executed here |
10 | | -- // if non root drop capabilities in the way execve does |
11 | | -- if s.Process.User.UID != 0 { |
12 | | -- s.Process.Capabilities.Effective = []string{} |
13 | | -- s.Process.Capabilities.Permitted = []string{} |
14 | | -- } |
| 5 | +@@ -20,18 +20,10 @@ var deviceCgroupRuleRegex = regexp.MustCompile("^([acb]) ([0-9]+|\\*):([0-9]+|\\ |
| 6 | + // All capabilities are added if privileged is true. |
| 7 | + func SetCapabilities(s *specs.Spec, caplist []string) error { |
| 8 | + // setUser has already been executed here |
| 9 | +- if s.Process.User.UID == 0 { |
| 10 | +- s.Process.Capabilities = &specs.LinuxCapabilities{ |
| 11 | +- Effective: caplist, |
| 12 | +- Bounding: caplist, |
| 13 | +- Permitted: caplist, |
| 14 | +- } |
| 15 | +- } else { |
| 16 | +- // Do not set Effective and Permitted capabilities for non-root users, |
| 17 | +- // to match what execve does. |
| 18 | +- s.Process.Capabilities = &specs.LinuxCapabilities{ |
| 19 | +- Bounding: caplist, |
| 20 | +- } |
| 21 | ++ s.Process.Capabilities = &specs.LinuxCapabilities{ |
| 22 | ++ Effective: caplist, |
| 23 | ++ Bounding: caplist, |
| 24 | ++ Permitted: caplist, |
| 25 | + } |
15 | 26 | return nil |
16 | 27 | } |
17 | | - |
|
0 commit comments