コード例 #1
0
    def test_exact_dir(self):
        self.fs = FilesystemPolicy([ExactDir('/etc')])

        self.checkTrue('/etc')

        self.checkFalse('/')
        self.checkFalse('/etc/passwd')
        self.checkFalse('/etc/shadow')
コード例 #2
0
    def test_exact_file(self):
        self.fs = FilesystemPolicy([ExactFile('/etc/passwd')])

        self.checkTrue('/etc/passwd')

        self.checkFalse('/')
        self.checkFalse('/etc')
        self.checkFalse('/etc/p')
        self.checkFalse('/etc/passwd2')
コード例 #3
0
    def test_recursive_dir(self):
        self.fs = FilesystemPolicy([RecursiveDir('/usr')])

        self.checkTrue('/usr')
        self.checkTrue('/usr/lib')
        self.checkTrue('/usr/lib/a/b/c/d/e')

        self.checkFalse('/')
        self.checkFalse('/etc')
        self.checkFalse('/us')
        self.checkFalse('/usr2')
コード例 #4
0
 def _compile_fs_jail(
         self, fs: Sequence[FilesystemAccessRule]) -> FilesystemPolicy:
     return FilesystemPolicy(fs)
コード例 #5
0
    def test_path_checks(self):
        self.fs = FilesystemPolicy([])

        self.assertRaises(AssertionError, self.check, '')
        self.assertRaises(AssertionError, self.check, 'not/an/absolute/path')
        self.assertRaises(AssertionError, self.check, '/usr/lib/not/./a/../normalized/path')
コード例 #6
0
ファイル: isolate.py プロジェクト: WillyPillow/judge
 def _compile_fs_jail(self, fs):
     return FilesystemPolicy(fs or [])