|
@@ -895,6 +895,18 @@ func (s *DockerSuite) TestRunSeccompDefaultProfile(c *check.C) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// TestRunNoNewPrivSetuid checks that --security-opt=no-new-privileges prevents
|
|
|
+// effective uid transtions on executing setuid binaries.
|
|
|
+func (s *DockerSuite) TestRunNoNewPrivSetuid(c *check.C) {
|
|
|
+ testRequires(c, DaemonIsLinux, NotUserNamespace, SameHostDaemon)
|
|
|
+
|
|
|
+ // test that running a setuid binary results in no effective uid transition
|
|
|
+ runCmd := exec.Command(dockerBinary, "run", "--security-opt", "no-new-privileges", "--user", "1000", "nnp-test", "/usr/bin/nnp-test")
|
|
|
+ if out, _, err := runCommandWithOutput(runCmd); err != nil || !strings.Contains(out, "EUID=1000") {
|
|
|
+ c.Fatalf("expected output to contain EUID=1000, got %s: %v", out, err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func (s *DockerSuite) TestRunApparmorProcDirectory(c *check.C) {
|
|
|
testRequires(c, SameHostDaemon, Apparmor)
|
|
|
|