~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to contrib/sepgsql/sepgsql-regtest.te

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
policy_module(sepgsql-regtest, 1.02)
 
2
 
 
3
gen_require(`
 
4
        all_userspace_class_perms
 
5
')
 
6
 
 
7
## <desc>
 
8
## <p>
 
9
## Allow to launch regression test of SE-PostgreSQL
 
10
## Don't switch to TRUE in normal cases
 
11
## </p>
 
12
## </desc>
 
13
gen_tunable(sepgsql_regression_test_mode, false)
 
14
 
 
15
#
 
16
# Type definitions for regression test
 
17
#
 
18
type sepgsql_regtest_trusted_proc_exec_t;
 
19
postgresql_procedure_object(sepgsql_regtest_trusted_proc_exec_t)
 
20
 
 
21
#
 
22
# Test domains for database administrators
 
23
#
 
24
role sepgsql_regtest_dba_r;
 
25
userdom_base_user_template(sepgsql_regtest_dba)
 
26
userdom_manage_home_role(sepgsql_regtest_dba_r, sepgsql_regtest_dba_t)
 
27
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
 
28
optional_policy(`
 
29
        postgresql_admin(sepgsql_regtest_dba_t, sepgsql_regtest_dba_r)
 
30
        postgresql_stream_connect(sepgsql_regtest_dba_t)
 
31
')
 
32
optional_policy(`
 
33
        unconfined_stream_connect(sepgsql_regtest_dba_t)
 
34
        unconfined_rw_pipes(sepgsql_regtest_dba_t)
 
35
')
 
36
 
 
37
#
 
38
# Dummy domain for unpriv users
 
39
#
 
40
role sepgsql_regtest_user_r;
 
41
userdom_base_user_template(sepgsql_regtest_user)
 
42
userdom_manage_home_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
 
43
userdom_write_user_tmp_sockets(sepgsql_regtest_user_t)
 
44
optional_policy(`
 
45
        postgresql_role(sepgsql_regtest_user_r, sepgsql_regtest_user_t)
 
46
        postgresql_stream_connect(sepgsql_regtest_user_t)
 
47
')
 
48
optional_policy(`
 
49
        unconfined_stream_connect(sepgsql_regtest_user_t)
 
50
        unconfined_rw_pipes(sepgsql_regtest_user_t)
 
51
')
 
52
 
 
53
#
 
54
# Rules to launch psql in the dummy domains
 
55
#
 
56
optional_policy(`
 
57
        gen_require(`
 
58
                role unconfined_r;
 
59
                type unconfined_t;
 
60
                type sepgsql_trusted_proc_t;
 
61
        ')
 
62
        tunable_policy(`sepgsql_regression_test_mode',`
 
63
                allow unconfined_t sepgsql_regtest_dba_t : process { transition };
 
64
                allow unconfined_t sepgsql_regtest_user_t : process { transition };
 
65
        ')
 
66
        role unconfined_r types sepgsql_regtest_dba_t;
 
67
        role unconfined_r types sepgsql_regtest_user_t;
 
68
        role unconfined_r types sepgsql_trusted_proc_t;
 
69
')
 
70
 
 
71
#
 
72
# Rule to check 
 
73
#
 
74
optional_policy(`
 
75
        # These rules intends sepgsql_regtest_user_t domain to translate
 
76
        # sepgsql_regtest_dba_t on execution of procedures labeled as
 
77
        # sepgsql_regtest_trusted_proc_exec_t, but does not allow transition
 
78
        # permission from sepgsql_regtest_user_t to sepgsql_regtest_dba_t.
 
79
        #
 
80
        gen_require(`
 
81
                attribute sepgsql_client_type;
 
82
        ')
 
83
        allow sepgsql_client_type sepgsql_regtest_trusted_proc_exec_t:db_procedure { getattr execute install };
 
84
        type_transition sepgsql_regtest_user_t sepgsql_regtest_trusted_proc_exec_t:process sepgsql_regtest_dba_t;
 
85
')