Exemple #1
0
 def test_IpFilter_non_netns(self):
     f = filters.IpFilter(self._ip, 'root')
     self.assertTrue(f.match(['ip', 'link', 'list']))
     self.assertTrue(f.match(['ip', '-s', 'link', 'list']))
     self.assertTrue(f.match(['ip', '-s', '-v', 'netns', 'add']))
     self.assertTrue(
         f.match(['ip', 'link', 'set', 'interface', 'netns', 'somens']))
Exemple #2
0
    def test_match_filter_recurses_exec_command_filter_matches(self):
        filter_list = [
            filters.IpNetnsExecFilter(self._ip, 'root'),
            filters.IpFilter(self._ip, 'root')
        ]
        args = ['ip', 'netns', 'exec', 'foo', 'ip', 'link', 'list']

        self.assertIsNotNone(wrapper.match_filter(filter_list, args))
Exemple #3
0
 def test_IpFilter_netns(self):
     f = filters.IpFilter(self._ip, 'root')
     self.assertFalse(f.match(['ip', 'netns', 'exec', 'foo']))
     self.assertFalse(f.match(['ip', 'netns', 'exec']))
     self.assertFalse(f.match(['ip', '-s', 'netns', 'exec']))
     self.assertFalse(f.match(['ip', '-l', '42', 'netns', 'exec']))
     self.assertFalse(f.match(['ip', 'net', 'exec', 'foo']))
     self.assertFalse(f.match(['ip', 'netns', 'e', 'foo']))
Exemple #4
0
    def test_match_filter_recurses_exec_command_filter_does_not_match(self):
        filter_list = [filters.IpNetnsExecFilter(self._ip, 'root'),
                       filters.IpFilter(self._ip, 'root')]
        args = ['ip', 'netns', 'exec', 'foo', 'ip', 'netns', 'exec', 'bar',
                'ip', 'link', 'list']

        self.assertRaises(wrapper.NoFilterMatched,
                          wrapper.match_filter, filter_list, args)
Exemple #5
0
    def test_match_filter_recurses_exec_command_matches_user(self):
        filter_list = [filters.IpNetnsExecFilter(self._ip, 'root'),
                       filters.IpFilter(self._ip, 'user')]
        args = ['ip', 'netns', 'exec', 'foo', 'ip', 'link', 'list']

        # Currently ip netns exec requires root, so verify that
        # no non-root filter is matched, as that would escalate privileges
        self.assertRaises(wrapper.NoFilterMatched,
                          wrapper.match_filter, filter_list, args)
Exemple #6
0
 def _test_IpFilter_netns_helper(self, action):
     f = filters.IpFilter(self._ip, 'root')
     self.assertTrue(f.match(['ip', 'link', action]))