]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - refpolicy/policy/modules/services/postgresql.te
there is no initrc_var_run_t:dir
[people/stevee/selinux-policy.git] / refpolicy / policy / modules / services / postgresql.te
CommitLineData
a1fcff33 1
5ea24be9 2policy_module(postgresql,1.1.0)
a1fcff33
CP
3
4#################################
5#
6# Declarations
7#
8type postgresql_t;
9type postgresql_exec_t;
10init_daemon_domain(postgresql_t,postgresql_exec_t)
11
12type postgresql_db_t;
13files_type(postgresql_db_t)
14
9bbc757a
CP
15type postgresql_etc_t;
16files_config_file(postgresql_etc_t)
a1fcff33
CP
17
18type postgresql_lock_t;
19files_lock_file(postgresql_lock_t)
20
21type postgresql_log_t;
22logging_log_file(postgresql_log_t)
23
24type postgresql_tmp_t;
25files_tmp_file(postgresql_tmp_t)
26
27type postgresql_var_run_t;
28files_pid_file(postgresql_var_run_t)
29
30########################################
31#
32# postgresql Local policy
33#
34allow postgresql_t self:capability { kill dac_override dac_read_search chown fowner fsetid setuid setgid sys_nice sys_tty_config sys_admin };
57d8e6c7 35allow postgresql_t self:process signal_perms;
a1fcff33
CP
36allow postgresql_t self:fifo_file { getattr read write ioctl };
37allow postgresql_t self:file { getattr read };
38allow postgresql_t self:sem create_sem_perms;
39allow postgresql_t self:shm create_shm_perms;
40allow postgresql_t self:tcp_socket create_stream_socket_perms;
41allow postgresql_t self:udp_socket create_stream_socket_perms;
42allow postgresql_t self:unix_dgram_socket create_socket_perms;
43allow postgresql_t self:unix_stream_socket create_stream_socket_perms;
44dontaudit postgresql_t self:capability { sys_tty_config sys_admin };
45
46allow postgresql_t postgresql_db_t:dir create_dir_perms;
47allow postgresql_t postgresql_db_t:fifo_file create_file_perms;
48allow postgresql_t postgresql_db_t:file create_file_perms;
49allow postgresql_t postgresql_db_t:lnk_file create_lnk_perms;
50allow postgresql_t postgresql_db_t:sock_file create_file_perms;
9d594986 51files_filetrans_var_lib(postgresql_t, postgresql_db_t, { dir file lnk_file sock_file fifo_file })
a1fcff33
CP
52
53allow postgresql_t postgresql_etc_t:dir r_dir_perms;
54allow postgresql_t postgresql_etc_t:file r_file_perms;
55allow postgresql_t postgresql_etc_t:lnk_file { getattr read };
56
57allow postgresql_t postgresql_exec_t:lnk_file { getattr read };
58can_exec(postgresql_t, postgresql_exec_t )
59
60allow postgresql_t postgresql_lock_t:file create_file_perms;
9d594986 61files_filetrans_lock(postgresql_t,postgresql_lock_t)
a1fcff33
CP
62
63allow postgresql_t postgresql_log_t:dir rw_dir_perms;
64allow postgresql_t postgresql_log_t:file create_file_perms;
9d594986 65logging_filetrans_log(postgresql_t,postgresql_log_t,{ file dir })
a1fcff33
CP
66
67allow postgresql_t postgresql_tmp_t:dir create_dir_perms;
68allow postgresql_t postgresql_tmp_t:fifo_file create_file_perms;
69allow postgresql_t postgresql_tmp_t:file create_file_perms;
70allow postgresql_t postgresql_tmp_t:lnk_file create_lnk_perms;
71allow postgresql_t postgresql_tmp_t:sock_file create_file_perms;
9d594986
CP
72files_filetrans_tmp(postgresql_t, postgresql_tmp_t, { dir file sock_file })
73fs_filetrans_tmpfs(postgresql_t, postgresql_tmp_t, { dir file lnk_file sock_file fifo_file })
a1fcff33
CP
74
75allow postgresql_t postgresql_var_run_t:dir rw_dir_perms;
76allow postgresql_t postgresql_var_run_t:file create_file_perms;
77allow postgresql_t postgresql_var_run_t:sock_file create_file_perms;
9d594986 78files_filetrans_pid(postgresql_t,postgresql_var_run_t)
a1fcff33
CP
79
80kernel_read_kernel_sysctl(postgresql_t)
81kernel_read_system_state(postgresql_t)
82kernel_list_proc(postgresql_t)
83kernel_read_all_sysctl(postgresql_t)
84kernel_read_proc_symlinks(postgresql_t)
85kernel_tcp_recvfrom(postgresql_t)
86
87corenet_tcp_sendrecv_all_if(postgresql_t)
88corenet_udp_sendrecv_all_if(postgresql_t)
89corenet_raw_sendrecv_all_if(postgresql_t)
90corenet_tcp_sendrecv_all_nodes(postgresql_t)
91corenet_udp_sendrecv_all_nodes(postgresql_t)
92corenet_raw_sendrecv_all_nodes(postgresql_t)
93corenet_tcp_sendrecv_all_ports(postgresql_t)
94corenet_udp_sendrecv_all_ports(postgresql_t)
bd70373d 95corenet_non_ipsec_sendrecv(postgresql_t)
a1fcff33
CP
96corenet_tcp_bind_all_nodes(postgresql_t)
97corenet_udp_bind_all_nodes(postgresql_t)
98corenet_tcp_bind_postgresql_port(postgresql_t)
99corenet_tcp_connect_auth_port(postgresql_t)
100
101dev_read_sysfs(postgresql_t)
102dev_read_urand(postgresql_t)
103
104fs_getattr_all_fs(postgresql_t)
105fs_search_auto_mountpoints(postgresql_t)
106
107term_use_controlling_term(postgresql_t)
108term_dontaudit_use_console(postgresql_t)
109
110corecmd_exec_bin(postgresql_t)
111corecmd_exec_ls(postgresql_t)
112corecmd_exec_sbin(postgresql_t)
113corecmd_exec_shell(postgresql_t)
114
115domain_dontaudit_list_all_domains_proc(postgresql_t)
116domain_use_wide_inherit_fd(postgresql_t)
117
118files_dontaudit_search_home(postgresql_t)
119files_manage_etc_files(postgresql_t)
120files_search_etc(postgresql_t)
121files_read_etc_runtime_files(postgresql_t)
122files_read_usr_files(postgresql_t)
123
124init_read_script_pid(postgresql_t)
125init_use_fd(postgresql_t)
126init_use_script_pty(postgresql_t)
127
128libs_use_ld_so(postgresql_t)
129libs_use_shared_libs(postgresql_t)
130
131logging_send_syslog_msg(postgresql_t)
132
133miscfiles_read_localization(postgresql_t)
134
135seutil_dontaudit_search_config(postgresql_t)
136
137sysnet_read_config(postgresql_t)
138
139userdom_dontaudit_search_sysadm_home_dir(postgresql_t)
140userdom_dontaudit_use_sysadm_tty(postgresql_t)
141userdom_dontaudit_use_unpriv_user_fd(postgresql_t)
142
143mta_getattr_spool(postgresql_t)
144
145ifdef(`targeted_policy', `
146 files_dontaudit_read_root_file(postgresql_t)
147 term_dontaudit_use_generic_pty(postgresql_t)
148 term_dontaudit_use_unallocated_tty(postgresql_t)
149')
150
151tunable_policy(`allow_execmem',`
152 allow postgresql_t self:process execmem;
153')
154
1328802a 155optional_policy(`consoletype',`
a1fcff33
CP
156 consoletype_exec(postgresql_t)
157')
158
1328802a 159optional_policy(`cron',`
a1fcff33
CP
160 cron_search_spool(postgresql_t)
161 cron_system_entry(postgresql_t,postgresql_exec_t)
162')
163
1328802a 164optional_policy(`hostname',`
a1fcff33
CP
165 hostname_exec(postgresql_t)
166')
167
1328802a 168optional_policy(`kerberos',`
a1fcff33
CP
169 kerberos_use(postgresql_t)
170')
171
1328802a 172optional_policy(`mount',`
a1fcff33
CP
173 mount_send_nfs_client_request(postgresql_t)
174')
175
1328802a 176optional_policy(`nis',`
a1fcff33
CP
177 nis_use_ypbind(postgresql_t)
178')
179
1328802a 180optional_policy(`selinuxutil',`
a1fcff33
CP
181 seutil_sigchld_newrole(postgresql_t)
182')
183
1328802a 184optional_policy(`udev',`
a1fcff33
CP
185 udev_read_db(postgresql_t)
186')
187
188ifdef(`TODO',`
189ifdef(`targeted_policy', `', `
190bool allow_user_postgresql_connect false;
191
192if (allow_user_postgresql_connect) {
193# allow any user domain to connect to the database server
194can_tcp_connect(userdomain, postgresql_t)
195allow userdomain postgresql_t:unix_stream_socket connectto;
196allow userdomain postgresql_var_run_t:sock_file write;
197allow userdomain postgresql_tmp_t:sock_file write;
198}
199')
200ifdef(`distro_debian', `
201 init_exec_script(postgresql_t)
202 # gross hack
203 postgresql_domtrans(dpkg_t)
204 can_exec(postgresql_t, dpkg_exec_t)
205')
206
207ifdef(`distro_gentoo', `
208 allow postgresql_t initrc_su_t:process { sigchld };
209 # "su - postgres ..." is called from initrc_t
210 postgresql_search_db_dir(initrc_su_t)
211 dontaudit initrc_su_t sysadm_devpts_t:chr_file rw_file_perms;
212')
a1fcff33 213')