~apparmor-dev/apparmor/2.11

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /usr/bin/python3
# ------------------------------------------------------------------
#
#    Copyright (C) 2012 Canonical Ltd.
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#
# ------------------------------------------------------------------

import apparmor.sandbox
from apparmor.common import error
import optparse
import sys

# setup exception handling
from apparmor.fail import enable_aa_exception_handler
enable_aa_exception_handler()

if __name__ == "__main__":
    argv = sys.argv
    parser = optparse.OptionParser()
    apparmor.easyprof.add_parser_policy_args(parser)
    (opt, args) = apparmor.sandbox.parse_args(sys.argv, parser)

    if len(args) < 1:
        error("Must specify binary")

    binary = args[0]
    if not apparmor.sandbox.check_requirements(binary):
        sys.exit(1)

    if opt.withx:
        rc, report = apparmor.sandbox.run_xsandbox(args, opt)
    else:
        rc, report = apparmor.sandbox.run_sandbox(args, opt)

    apparmor.common.msg(report)
    sys.exit(rc)