Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
| ... | ... |
@@ -139,7 +139,7 @@ func WithApparmor(c *container.Container) coci.SpecOpts {
|
| 139 | 139 |
func WithCapabilities(c *container.Container) coci.SpecOpts {
|
| 140 | 140 |
return func(ctx context.Context, _ coci.Client, _ *containers.Container, s *coci.Spec) error {
|
| 141 | 141 |
capabilities, err := caps.TweakCapabilities( |
| 142 |
- oci.DefaultCapabilities(), |
|
| 142 |
+ caps.DefaultCapabilities(), |
|
| 143 | 143 |
c.HostConfig.CapAdd, |
| 144 | 144 |
c.HostConfig.CapDrop, |
| 145 | 145 |
c.HostConfig.Capabilities, |
| ... | ... |
@@ -390,7 +390,7 @@ func (daemon *Daemon) createSpecLinuxFields(c *container.Container, s *specs.Spe |
| 390 | 390 |
// Note these are against the UVM. |
| 391 | 391 |
setResourcesInSpec(c, s, true) // LCOW is Hyper-V only |
| 392 | 392 |
|
| 393 |
- capabilities, err := caps.TweakCapabilities(oci.DefaultCapabilities(), c.HostConfig.CapAdd, c.HostConfig.CapDrop, c.HostConfig.Capabilities, c.HostConfig.Privileged) |
|
| 393 |
+ capabilities, err := caps.TweakCapabilities(caps.DefaultCapabilities(), c.HostConfig.CapAdd, c.HostConfig.CapDrop, c.HostConfig.Capabilities, c.HostConfig.Privileged) |
|
| 394 | 394 |
if err != nil {
|
| 395 | 395 |
return fmt.Errorf("linux spec capabilities: %v", err)
|
| 396 | 396 |
} |
| 397 | 397 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,21 @@ |
| 0 |
+package caps // import "github.com/docker/docker/oci/caps" |
|
| 1 |
+ |
|
| 2 |
+// DefaultCapabilities returns a Linux kernel default capabilities |
|
| 3 |
+func DefaultCapabilities() []string {
|
|
| 4 |
+ return []string{
|
|
| 5 |
+ "CAP_CHOWN", |
|
| 6 |
+ "CAP_DAC_OVERRIDE", |
|
| 7 |
+ "CAP_FSETID", |
|
| 8 |
+ "CAP_FOWNER", |
|
| 9 |
+ "CAP_MKNOD", |
|
| 10 |
+ "CAP_NET_RAW", |
|
| 11 |
+ "CAP_SETGID", |
|
| 12 |
+ "CAP_SETUID", |
|
| 13 |
+ "CAP_SETFCAP", |
|
| 14 |
+ "CAP_SETPCAP", |
|
| 15 |
+ "CAP_NET_BIND_SERVICE", |
|
| 16 |
+ "CAP_SYS_CHROOT", |
|
| 17 |
+ "CAP_KILL", |
|
| 18 |
+ "CAP_AUDIT_WRITE", |
|
| 19 |
+ } |
|
| 20 |
+} |
| ... | ... |
@@ -4,6 +4,7 @@ import ( |
| 4 | 4 |
"os" |
| 5 | 5 |
"runtime" |
| 6 | 6 |
|
| 7 |
+ "github.com/docker/docker/oci/caps" |
|
| 7 | 8 |
specs "github.com/opencontainers/runtime-spec/specs-go" |
| 8 | 9 |
) |
| 9 | 10 |
|
| ... | ... |
@@ -11,26 +12,6 @@ func iPtr(i int64) *int64 { return &i }
|
| 11 | 11 |
func u32Ptr(i int64) *uint32 { u := uint32(i); return &u }
|
| 12 | 12 |
func fmPtr(i int64) *os.FileMode { fm := os.FileMode(i); return &fm }
|
| 13 | 13 |
|
| 14 |
-// DefaultCapabilities returns a Linux kernel default capabilities |
|
| 15 |
-func DefaultCapabilities() []string {
|
|
| 16 |
- return []string{
|
|
| 17 |
- "CAP_CHOWN", |
|
| 18 |
- "CAP_DAC_OVERRIDE", |
|
| 19 |
- "CAP_FSETID", |
|
| 20 |
- "CAP_FOWNER", |
|
| 21 |
- "CAP_MKNOD", |
|
| 22 |
- "CAP_NET_RAW", |
|
| 23 |
- "CAP_SETGID", |
|
| 24 |
- "CAP_SETUID", |
|
| 25 |
- "CAP_SETFCAP", |
|
| 26 |
- "CAP_SETPCAP", |
|
| 27 |
- "CAP_NET_BIND_SERVICE", |
|
| 28 |
- "CAP_SYS_CHROOT", |
|
| 29 |
- "CAP_KILL", |
|
| 30 |
- "CAP_AUDIT_WRITE", |
|
| 31 |
- } |
|
| 32 |
-} |
|
| 33 |
- |
|
| 34 | 14 |
// DefaultSpec returns the default spec used by docker for the current Platform |
| 35 | 15 |
func DefaultSpec() specs.Spec {
|
| 36 | 16 |
return DefaultOSSpec(runtime.GOOS) |
| ... | ... |
@@ -60,10 +41,10 @@ func DefaultLinuxSpec() specs.Spec {
|
| 60 | 60 |
Version: specs.Version, |
| 61 | 61 |
Process: &specs.Process{
|
| 62 | 62 |
Capabilities: &specs.LinuxCapabilities{
|
| 63 |
- Bounding: DefaultCapabilities(), |
|
| 64 |
- Permitted: DefaultCapabilities(), |
|
| 65 |
- Inheritable: DefaultCapabilities(), |
|
| 66 |
- Effective: DefaultCapabilities(), |
|
| 63 |
+ Bounding: caps.DefaultCapabilities(), |
|
| 64 |
+ Permitted: caps.DefaultCapabilities(), |
|
| 65 |
+ Inheritable: caps.DefaultCapabilities(), |
|
| 66 |
+ Effective: caps.DefaultCapabilities(), |
|
| 67 | 67 |
}, |
| 68 | 68 |
}, |
| 69 | 69 |
Root: &specs.Root{},
|