~calebcase/+junk/refpolicy

« back to all changes in this revision

Viewing changes to policy/modules/system/locallogin.te

  • Committer: Caleb Case
  • Date: 2008-08-25 21:38:11 UTC
  • Revision ID: ccase@shiva-20080825213811-mtbyp70e4ltsu7kt
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
policy_module(locallogin,1.6.0)
 
3
 
 
4
########################################
 
5
#
 
6
# Declarations
 
7
#
 
8
 
 
9
type local_login_t;
 
10
domain_interactive_fd(local_login_t)
 
11
auth_login_pgm_domain(local_login_t)
 
12
auth_login_entry_type(local_login_t)
 
13
 
 
14
type local_login_lock_t;
 
15
files_lock_file(local_login_lock_t)
 
16
 
 
17
type local_login_tmp_t;
 
18
files_tmp_file(local_login_tmp_t)
 
19
files_poly_parent(local_login_tmp_t)
 
20
 
 
21
type sulogin_t;
 
22
type sulogin_exec_t;
 
23
domain_obj_id_change_exemption(sulogin_t)
 
24
domain_subj_id_change_exemption(sulogin_t)
 
25
domain_role_change_exemption(sulogin_t)
 
26
domain_interactive_fd(sulogin_t)
 
27
init_domain(sulogin_t,sulogin_exec_t)
 
28
init_system_domain(sulogin_t,sulogin_exec_t)
 
29
role system_r types sulogin_t;
 
30
 
 
31
########################################
 
32
#
 
33
# Local login local policy
 
34
#
 
35
 
 
36
allow local_login_t self:capability { dac_override chown fowner fsetid kill setgid setuid sys_nice sys_resource sys_tty_config };
 
37
allow local_login_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
 
38
allow local_login_t self:process { setrlimit setexec };
 
39
allow local_login_t self:fd use;
 
40
allow local_login_t self:fifo_file rw_fifo_file_perms;
 
41
allow local_login_t self:sock_file read_sock_file_perms;
 
42
allow local_login_t self:unix_dgram_socket create_socket_perms;
 
43
allow local_login_t self:unix_stream_socket create_stream_socket_perms;
 
44
allow local_login_t self:unix_dgram_socket sendto;
 
45
allow local_login_t self:unix_stream_socket connectto;
 
46
allow local_login_t self:shm create_shm_perms;
 
47
allow local_login_t self:sem create_sem_perms;
 
48
allow local_login_t self:msgq create_msgq_perms;
 
49
allow local_login_t self:msg { send receive };
 
50
allow local_login_t self:key { search write link };
 
51
 
 
52
allow local_login_t local_login_lock_t:file manage_file_perms;
 
53
files_lock_filetrans(local_login_t,local_login_lock_t,file)
 
54
 
 
55
allow local_login_t local_login_tmp_t:dir manage_dir_perms;
 
56
allow local_login_t local_login_tmp_t:file manage_file_perms;
 
57
files_tmp_filetrans(local_login_t, local_login_tmp_t, { file dir })
 
58
 
 
59
kernel_read_system_state(local_login_t)
 
60
kernel_read_kernel_sysctls(local_login_t)
 
61
kernel_search_key(local_login_t)
 
62
kernel_link_key(local_login_t)
 
63
 
 
64
dev_setattr_mouse_dev(local_login_t)
 
65
dev_getattr_mouse_dev(local_login_t)
 
66
dev_getattr_power_mgmt_dev(local_login_t)
 
67
dev_setattr_power_mgmt_dev(local_login_t)
 
68
dev_getattr_sound_dev(local_login_t)
 
69
dev_setattr_sound_dev(local_login_t)
 
70
dev_dontaudit_getattr_apm_bios_dev(local_login_t)
 
71
dev_dontaudit_setattr_apm_bios_dev(local_login_t)
 
72
dev_dontaudit_read_framebuffer(local_login_t)
 
73
dev_dontaudit_setattr_framebuffer_dev(local_login_t)
 
74
dev_dontaudit_getattr_generic_blk_files(local_login_t)
 
75
dev_dontaudit_setattr_generic_blk_files(local_login_t)
 
76
dev_dontaudit_getattr_generic_chr_files(local_login_t)
 
77
dev_dontaudit_setattr_generic_chr_files(local_login_t)
 
78
dev_dontaudit_setattr_generic_symlinks(local_login_t)
 
79
dev_dontaudit_getattr_misc_dev(local_login_t)
 
80
dev_dontaudit_setattr_misc_dev(local_login_t)
 
81
dev_dontaudit_getattr_scanner_dev(local_login_t)
 
82
dev_dontaudit_setattr_scanner_dev(local_login_t)
 
83
dev_dontaudit_search_sysfs(local_login_t)
 
84
dev_dontaudit_getattr_video_dev(local_login_t)
 
85
dev_dontaudit_setattr_video_dev(local_login_t)
 
86
 
 
87
fs_search_auto_mountpoints(local_login_t)
 
88
 
 
89
storage_dontaudit_getattr_fixed_disk_dev(local_login_t)
 
90
storage_dontaudit_setattr_fixed_disk_dev(local_login_t)
 
91
storage_dontaudit_getattr_removable_dev(local_login_t)
 
92
storage_dontaudit_setattr_removable_dev(local_login_t)
 
93
 
 
94
term_use_all_user_ttys(local_login_t)
 
95
term_use_unallocated_ttys(local_login_t)
 
96
term_relabel_unallocated_ttys(local_login_t)
 
97
term_relabel_all_user_ttys(local_login_t)
 
98
term_setattr_all_user_ttys(local_login_t)
 
99
term_setattr_unallocated_ttys(local_login_t)
 
100
 
 
101
auth_rw_login_records(local_login_t)
 
102
auth_rw_faillog(local_login_t)
 
103
auth_manage_pam_console_data(local_login_t)
 
104
auth_domtrans_pam_console(local_login_t)
 
105
 
 
106
corecmd_list_bin(local_login_t)
 
107
corecmd_read_bin_symlinks(local_login_t)
 
108
# cjp: these are probably not needed:
 
109
corecmd_read_bin_files(local_login_t)
 
110
corecmd_read_bin_pipes(local_login_t)
 
111
corecmd_read_bin_sockets(local_login_t)
 
112
 
 
113
domain_read_all_entry_files(local_login_t)
 
114
 
 
115
files_read_etc_files(local_login_t)
 
116
files_read_etc_runtime_files(local_login_t)
 
117
files_read_usr_files(local_login_t)
 
118
files_list_mnt(local_login_t)
 
119
files_list_world_readable(local_login_t)
 
120
files_read_world_readable_files(local_login_t)
 
121
files_read_world_readable_symlinks(local_login_t)
 
122
files_read_world_readable_pipes(local_login_t)
 
123
files_read_world_readable_sockets(local_login_t)
 
124
# for when /var/mail is a symlink
 
125
files_read_var_symlinks(local_login_t)
 
126
 
 
127
init_dontaudit_use_fds(local_login_t)
 
128
 
 
129
libs_use_ld_so(local_login_t)
 
130
libs_use_shared_libs(local_login_t)
 
131
 
 
132
miscfiles_read_localization(local_login_t)
 
133
 
 
134
userdom_spec_domtrans_all_users(local_login_t)
 
135
userdom_signal_all_users(local_login_t)
 
136
userdom_search_all_users_home_content(local_login_t)
 
137
userdom_use_unpriv_users_fds(local_login_t)
 
138
userdom_sigchld_all_users(local_login_t)
 
139
userdom_create_all_users_keys(local_login_t)
 
140
 
 
141
ifdef(`distro_ubuntu',`
 
142
        optional_policy(`
 
143
                unconfined_domain(local_login_t)
 
144
        ')
 
145
')
 
146
 
 
147
tunable_policy(`read_default_t',`
 
148
        files_list_default(local_login_t)
 
149
        files_read_default_files(local_login_t)
 
150
        files_read_default_symlinks(local_login_t)
 
151
        files_read_default_sockets(local_login_t)
 
152
        files_read_default_pipes(local_login_t)
 
153
')
 
154
 
 
155
tunable_policy(`use_nfs_home_dirs',`
 
156
        fs_read_nfs_files(local_login_t)
 
157
        fs_read_nfs_symlinks(local_login_t)
 
158
')
 
159
 
 
160
tunable_policy(`use_samba_home_dirs',`
 
161
        fs_read_cifs_files(local_login_t)
 
162
        fs_read_cifs_symlinks(local_login_t)
 
163
')
 
164
 
 
165
optional_policy(`
 
166
        alsa_domtrans(local_login_t)
 
167
')
 
168
 
 
169
optional_policy(`
 
170
        dbus_system_bus_client_template(local_login, local_login_t)
 
171
 
 
172
        consolekit_dbus_chat(local_login_t)
 
173
')
 
174
 
 
175
optional_policy(`
 
176
        gpm_getattr_gpmctl(local_login_t)
 
177
        gpm_setattr_gpmctl(local_login_t)
 
178
')
 
179
 
 
180
optional_policy(`
 
181
        # Search for mail spool file.
 
182
        mta_getattr_spool(local_login_t)
 
183
')
 
184
 
 
185
optional_policy(`
 
186
        nis_use_ypbind(local_login_t)
 
187
')
 
188
 
 
189
optional_policy(`
 
190
        nscd_socket_use(local_login_t)
 
191
')
 
192
 
 
193
optional_policy(`
 
194
        unconfined_domain(local_login_t)
 
195
')
 
196
 
 
197
optional_policy(`
 
198
        usermanage_read_crack_db(local_login_t)
 
199
')
 
200
 
 
201
optional_policy(`
 
202
        xserver_read_xdm_tmp_files(local_login_t)
 
203
        xserver_rw_xdm_tmp_files(local_login_t)
 
204
')
 
205
 
 
206
#################################
 
207
 
208
# Sulogin local policy
 
209
#
 
210
 
 
211
allow sulogin_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
 
212
allow sulogin_t self:fd use;
 
213
allow sulogin_t self:fifo_file rw_file_perms;
 
214
allow sulogin_t self:unix_dgram_socket create_socket_perms;
 
215
allow sulogin_t self:unix_stream_socket create_stream_socket_perms;
 
216
allow sulogin_t self:unix_dgram_socket sendto;
 
217
allow sulogin_t self:unix_stream_socket connectto;
 
218
allow sulogin_t self:shm create_shm_perms;
 
219
allow sulogin_t self:sem create_sem_perms;
 
220
allow sulogin_t self:msgq create_msgq_perms;
 
221
allow sulogin_t self:msg { send receive };
 
222
 
 
223
kernel_read_system_state(sulogin_t)
 
224
 
 
225
fs_search_auto_mountpoints(sulogin_t)
 
226
fs_rw_tmpfs_chr_files(sulogin_t)
 
227
 
 
228
files_read_etc_files(sulogin_t)
 
229
# because file systems are not mounted:
 
230
files_dontaudit_search_isid_type_dirs(sulogin_t)
 
231
 
 
232
init_getpgid_script(sulogin_t)
 
233
 
 
234
libs_use_ld_so(sulogin_t)
 
235
libs_use_shared_libs(sulogin_t)
 
236
 
 
237
logging_send_syslog_msg(sulogin_t)
 
238
 
 
239
seutil_read_config(sulogin_t)
 
240
seutil_read_default_contexts(sulogin_t)
 
241
 
 
242
auth_read_shadow(sulogin_t)
 
243
 
 
244
userdom_shell_domtrans_sysadm(sulogin_t)
 
245
userdom_use_unpriv_users_fds(sulogin_t)
 
246
userdom_use_sysadm_ptys(sulogin_t)
 
247
userdom_search_staff_home_dirs(sulogin_t)
 
248
userdom_search_sysadm_home_dirs(sulogin_t)
 
249
 
 
250
# suse and debian do not use pam with sulogin...
 
251
ifdef(`distro_suse', `define(`sulogin_no_pam')')
 
252
ifdef(`distro_debian', `define(`sulogin_no_pam')')
 
253
 
 
254
ifdef(`sulogin_no_pam', `
 
255
        allow sulogin_t self:capability sys_tty_config;
 
256
        init_getpgid(sulogin_t)
 
257
', `
 
258
        allow sulogin_t self:process setexec;
 
259
        selinux_get_fs_mount(sulogin_t)
 
260
        selinux_validate_context(sulogin_t)
 
261
        selinux_compute_access_vector(sulogin_t)
 
262
        selinux_compute_create_context(sulogin_t)
 
263
        selinux_compute_relabel_context(sulogin_t)
 
264
        selinux_compute_user_contexts(sulogin_t)
 
265
')
 
266
 
 
267
optional_policy(`
 
268
        nis_use_ypbind(sulogin_t)
 
269
')
 
270
 
 
271
optional_policy(`
 
272
        nscd_socket_use(sulogin_t)
 
273
')