OLD | NEW |
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging | 5 import logging |
6 import os | 6 import os |
7 import re | 7 import re |
8 | 8 |
9 from autotest_lib.client.bin import test | 9 from autotest_lib.client.bin import test |
10 from autotest_lib.client.common_lib import error, utils | 10 from autotest_lib.client.common_lib import error, utils |
11 | 11 |
12 class platform_MiniJailRootCapabilities(test.test): | 12 class platform_MiniJailRootCapabilities(test.test): |
13 version = 1 | 13 version = 1 |
14 preserve_srcdir = True | 14 preserve_srcdir = True |
15 | 15 |
16 def setup(self): | 16 def setup(self): |
17 os.chdir(self.srcdir) | 17 os.chdir(self.srcdir) |
18 utils.system('make clean') | 18 utils.make('clean') |
19 utils.system('make all') | 19 utils.make('all') |
20 | 20 |
21 | 21 |
22 def __run_cmd(self, cmd): | 22 def __run_cmd(self, cmd): |
23 result = utils.system_output(cmd, retain_output=True, | 23 result = utils.system_output(cmd, retain_output=True, |
24 ignore_status=True) | 24 ignore_status=True) |
25 return result | 25 return result |
26 | 26 |
27 | 27 |
28 def run_once(self): | 28 def run_once(self): |
29 # Check that --use-capabilities works | 29 # Check that --use-capabilities works |
30 # @TODO(fes): The autotest framework seems to preserve the ownership | 30 # @TODO(fes): The autotest framework seems to preserve the ownership |
31 # from the source, so thest tests fail unless the bindir is | 31 # from the source, so thest tests fail unless the bindir is |
32 # changed to | 32 # changed to |
33 # be owned by root but read/execute by anyone | 33 # be owned by root but read/execute by anyone |
34 self.__run_cmd(('chown -R root:root ' + self.bindir)); | 34 self.__run_cmd(('chown -R root:root ' + self.bindir)); |
35 self.__run_cmd(('chmod 755 ' + self.bindir)); | 35 self.__run_cmd(('chmod 755 ' + self.bindir)); |
36 check_cmd = (os.path.join(self.bindir, | 36 check_cmd = (os.path.join(self.bindir, |
37 'platform_MiniJailRootCapabilities') + | 37 'platform_MiniJailRootCapabilities') + |
38 ' --checkRootCaps=0') | 38 ' --checkRootCaps=0') |
39 cmd = ('/sbin/minijail --use-capabilities -- ' + check_cmd) | 39 cmd = ('/sbin/minijail --use-capabilities -- ' + check_cmd) |
40 result = self.__run_cmd(cmd) | 40 result = self.__run_cmd(cmd) |
41 succeed_pattern = re.compile(r"SUCCEED: (.+)") | 41 succeed_pattern = re.compile(r"SUCCEED: (.+)") |
42 success = succeed_pattern.findall(result) | 42 success = succeed_pattern.findall(result) |
43 if len(success) == 0: | 43 if len(success) == 0: |
44 raise error.TestFail('Root capabilities restriction failed.') | 44 raise error.TestFail('Root capabilities restriction failed.') |
OLD | NEW |