1cupsd_selinux(8) SELinux Policy cupsd cupsd_selinux(8)
2
3
4
6 cupsd_selinux - Security Enhanced Linux Policy for the cupsd processes
7
9 Security-Enhanced Linux secures the cupsd processes via flexible manda‐
10 tory access control.
11
12 The cupsd processes execute with the cupsd_t SELinux type. You can
13 check if you have these processes running by executing the ps command
14 with the -Z qualifier.
15
16 For example:
17
18 ps -eZ | grep cupsd_t
19
20
21
23 The cupsd_t SELinux type can be entered via the cupsd_exec_t file type.
24
25 The default entrypoint paths for the cupsd_t domain are the following:
26
27 /usr/sbin/cupsd
28
30 SELinux defines process types (domains) for each process running on the
31 system
32
33 You can see the context of a process using the -Z option to ps
34
35 Policy governs the access confined processes have to files. SELinux
36 cupsd policy is very flexible allowing users to setup their cupsd pro‐
37 cesses in as secure a method as possible.
38
39 The following process types are defined for cupsd:
40
41 cupsd_t, cupsd_config_t, cupsd_lpd_t, cups_pdf_t
42
43 Note: semanage permissive -a cupsd_t can be used to make the process
44 type cupsd_t permissive. SELinux does not deny access to permissive
45 process types, but the AVC (SELinux denials) messages are still gener‐
46 ated.
47
48
50 SELinux policy is customizable based on least access required. cupsd
51 policy is extremely flexible and has several booleans that allow you to
52 manipulate the policy and run cupsd with the tightest access possible.
53
54
55
56 If you want to allow all daemons to write corefiles to /, you must turn
57 on the allow_daemons_dump_core boolean. Disabled by default.
58
59 setsebool -P allow_daemons_dump_core 1
60
61
62
63 If you want to allow all daemons to use tcp wrappers, you must turn on
64 the allow_daemons_use_tcp_wrapper boolean. Disabled by default.
65
66 setsebool -P allow_daemons_use_tcp_wrapper 1
67
68
69
70 If you want to allow all daemons the ability to read/write terminals,
71 you must turn on the allow_daemons_use_tty boolean. Disabled by
72 default.
73
74 setsebool -P allow_daemons_use_tty 1
75
76
77
78 If you want to allow all domains to use other domains file descriptors,
79 you must turn on the allow_domain_fd_use boolean. Enabled by default.
80
81 setsebool -P allow_domain_fd_use 1
82
83
84
85 If you want to allow confined applications to run with kerberos, you
86 must turn on the allow_kerberos boolean. Enabled by default.
87
88 setsebool -P allow_kerberos 1
89
90
91
92 If you want to allow sysadm to debug or ptrace all processes, you must
93 turn on the allow_ptrace boolean. Disabled by default.
94
95 setsebool -P allow_ptrace 1
96
97
98
99 If you want to allow system to run with NIS, you must turn on the
100 allow_ypbind boolean. Disabled by default.
101
102 setsebool -P allow_ypbind 1
103
104
105
106 If you want to enable cluster mode for daemons, you must turn on the
107 daemons_enable_cluster_mode boolean. Disabled by default.
108
109 setsebool -P daemons_enable_cluster_mode 1
110
111
112
113 If you want to allow all domains to have the kernel load modules, you
114 must turn on the domain_kernel_load_modules boolean. Disabled by
115 default.
116
117 setsebool -P domain_kernel_load_modules 1
118
119
120
121 If you want to allow all domains to execute in fips_mode, you must turn
122 on the fips_mode boolean. Enabled by default.
123
124 setsebool -P fips_mode 1
125
126
127
128 If you want to enable reading of urandom for all domains, you must turn
129 on the global_ssp boolean. Disabled by default.
130
131 setsebool -P global_ssp 1
132
133
134
135 If you want to enable support for upstart as the init program, you must
136 turn on the init_upstart boolean. Enabled by default.
137
138 setsebool -P init_upstart 1
139
140
141
142 If you want to allow confined applications to use nscd shared memory,
143 you must turn on the nscd_use_shm boolean. Enabled by default.
144
145 setsebool -P nscd_use_shm 1
146
147
148
150 The SELinux process type cupsd_t can manage files labeled with the fol‐
151 lowing file types. The paths listed are the default paths for these
152 file types. Note the processes UID still need to have DAC permissions.
153
154 cluster_conf_t
155
156 /etc/cluster(/.*)?
157
158 cluster_var_lib_t
159
160 /var/lib(64)?/openais(/.*)?
161 /var/lib(64)?/pengine(/.*)?
162 /var/lib(64)?/corosync(/.*)?
163 /usr/lib(64)?/heartbeat(/.*)?
164 /var/lib(64)?/heartbeat(/.*)?
165 /var/lib(64)?/pacemaker(/.*)?
166 /var/lib/cluster(/.*)?
167
168 cluster_var_run_t
169
170 /var/run/crm(/.*)?
171 /var/run/cman_.*
172 /var/run/rsctmp(/.*)?
173 /var/run/aisexec.*
174 /var/run/heartbeat(/.*)?
175 /var/run/cpglockd.pid
176 /var/run/corosync.pid
177 /var/run/rgmanager.pid
178 /var/run/cluster/rgmanager.sk
179
180 cupsd_interface_t
181
182 /etc/cups/interfaces(/.*)?
183
184 cupsd_lock_t
185
186
187 cupsd_log_t
188
189 /var/log/cups(/.*)?
190 /var/log/turboprint.*
191 /usr/local/Brother/fax/.*.log.*
192
193 cupsd_rw_etc_t
194
195 /etc/printcap.*
196 /etc/cups/ppd(/.*)?
197 /var/cache/cups(/.*)?
198 /etc/cups/certs/.*
199 /etc/cups/lpoptions.*
200 /var/cache/foomatic(/.*)?
201 /usr/local/Brother/(.*/)?inf(/.*)?
202 /usr/local/Printer/(.*/)?inf(/.*)?
203 /etc/cups/cupsd.conf.*
204 /var/lib/cups/certs/.*
205 /opt/gutenprint/ppds(/.*)?
206 /etc/cups/classes.conf.*
207 /etc/cups/printers.conf.*
208 /etc/cups/subscriptions.*
209 /usr/local/linuxprinter/ppd(/.*)?
210 /var/cache/alchemist/printconf.*
211 /etc/alchemist/namespace/printconf(/.*)?
212 /etc/cups/certs
213 /etc/cups/ppds.dat
214 /var/lib/cups/certs
215 /usr/share/foomatic/db/oldprinterids
216
217 cupsd_tmp_t
218
219
220 cupsd_var_run_t
221
222 /var/ccpd(/.*)?
223 /var/ekpd(/.*)?
224 /var/run/cups(/.*)?
225 /var/turboprint(/.*)?
226
227 faillog_t
228
229 /var/log/btmp.*
230 /var/log/faillog.*
231 /var/log/tallylog.*
232 /var/run/faillock(/.*)?
233
234 initrc_tmp_t
235
236
237 krb5_host_rcache_t
238
239 /var/cache/krb5rcache(/.*)?
240 /var/tmp/host_0
241 /var/tmp/HTTP_23
242
243 mnt_t
244
245 /mnt(/[^/]*)
246 /mnt(/[^/]*)?
247 /rhev(/[^/]*)?
248 /media(/[^/]*)
249 /media(/[^/]*)?
250 /etc/rhgb(/.*)?
251 /media/.hal-.*
252 /net
253 /afs
254 /rhev
255 /misc
256
257 pcscd_var_run_t
258
259 /var/run/pcscd.events(/.*)?
260 /var/run/pcscd.pid
261 /var/run/pcscd.pub
262 /var/run/pcscd.comm
263
264 print_spool_t
265
266 /var/spool/lpd(/.*)?
267 /var/spool/cups(/.*)?
268 /var/spool/cups-pdf(/.*)?
269
270 root_t
271
272 /
273 /initrd
274
275 samba_var_t
276
277 /var/nmbd(/.*)?
278 /var/lib/samba(/.*)?
279 /var/cache/samba(/.*)?
280
281 security_t
282
283
284 tmp_t
285
286 /tmp
287 /usr/tmp
288 /var/tmp
289 /tmp-inst
290 /var/tmp-inst
291 /var/tmp/vi.recover
292
293 usbfs_t
294
295
296
298 SELinux requires files to have an extended attribute to define the file
299 type.
300
301 You can see the context of a file using the -Z option to ls
302
303 Policy governs the access confined processes have to these files.
304 SELinux cupsd policy is very flexible allowing users to setup their
305 cupsd processes in as secure a method as possible.
306
307 STANDARD FILE CONTEXT
308
309 SELinux defines the file context types for the cupsd, if you wanted to
310 store files with these types in a diffent paths, you need to execute
311 the semanage command to sepecify alternate labeling and then use
312 restorecon to put the labels on disk.
313
314 semanage fcontext -a -t cupsd_var_run_t '/srv/mycupsd_content(/.*)?'
315 restorecon -R -v /srv/mycupsd_content
316
317 Note: SELinux often uses regular expressions to specify labels that
318 match multiple files.
319
320 The following file types are defined for cupsd:
321
322
323
324 cupsd_config_exec_t
325
326 - Set files with the cupsd_config_exec_t type, if you want to transi‐
327 tion an executable to the cupsd_config_t domain.
328
329
330 Paths:
331 /usr/sbin/hal_lpadmin, /usr/libexec/hal_lpadmin, /usr/bin/cups-
332 config-daemon, /usr/sbin/printconf-backend, /lib/udev/udev-config‐
333 ure-printer, /usr/libexec/cups-pk-helper-mechanism
334
335
336 cupsd_config_var_run_t
337
338 - Set files with the cupsd_config_var_run_t type, if you want to store
339 the cupsd config files under the /run or /var/run directory.
340
341
342
343 cupsd_etc_t
344
345 - Set files with the cupsd_etc_t type, if you want to store cupsd files
346 in the /etc directories.
347
348
349 Paths:
350 /etc/cups(/.*)?, /usr/share/cups(/.*)?
351
352
353 cupsd_exec_t
354
355 - Set files with the cupsd_exec_t type, if you want to transition an
356 executable to the cupsd_t domain.
357
358
359
360 cupsd_initrc_exec_t
361
362 - Set files with the cupsd_initrc_exec_t type, if you want to transi‐
363 tion an executable to the cupsd_initrc_t domain.
364
365
366
367 cupsd_interface_t
368
369 - Set files with the cupsd_interface_t type, if you want to treat the
370 files as cupsd interface data.
371
372
373
374 cupsd_lock_t
375
376 - Set files with the cupsd_lock_t type, if you want to treat the files
377 as cupsd lock data, stored under the /var/lock directory
378
379
380
381 cupsd_log_t
382
383 - Set files with the cupsd_log_t type, if you want to treat the data as
384 cupsd log data, usually stored under the /var/log directory.
385
386
387 Paths:
388 /var/log/cups(/.*)?, /var/log/turboprint.*,
389 /usr/local/Brother/fax/.*.log.*
390
391
392 cupsd_lpd_exec_t
393
394 - Set files with the cupsd_lpd_exec_t type, if you want to transition
395 an executable to the cupsd_lpd_t domain.
396
397
398 Paths:
399 /usr/lib/cups/daemon/cups-lpd, /usr/lib64/cups/daemon/cups-lpd
400
401
402 cupsd_lpd_tmp_t
403
404 - Set files with the cupsd_lpd_tmp_t type, if you want to store cupsd
405 lpd temporary files in the /tmp directories.
406
407
408
409 cupsd_lpd_var_run_t
410
411 - Set files with the cupsd_lpd_var_run_t type, if you want to store the
412 cupsd lpd files under the /run or /var/run directory.
413
414
415
416 cupsd_rw_etc_t
417
418 - Set files with the cupsd_rw_etc_t type, if you want to store cupsd rw
419 files in the /etc directories.
420
421
422 Paths:
423 /etc/printcap.*, /etc/cups/ppd(/.*)?, /var/cache/cups(/.*)?,
424 /etc/cups/certs/.*, /etc/cups/lpoptions.*,
425 /var/cache/foomatic(/.*)?, /usr/local/Brother/(.*/)?inf(/.*)?,
426 /usr/local/Printer/(.*/)?inf(/.*)?, /etc/cups/cupsd.conf.*,
427 /var/lib/cups/certs/.*, /opt/gutenprint/ppds(/.*)?,
428 /etc/cups/classes.conf.*, /etc/cups/printers.conf.*,
429 /etc/cups/subscriptions.*, /usr/local/linuxprinter/ppd(/.*)?,
430 /var/cache/alchemist/printconf.*, /etc/alchemist/namespace/print‐
431 conf(/.*)?, /etc/cups/certs, /etc/cups/ppds.dat,
432 /var/lib/cups/certs, /usr/share/foomatic/db/oldprinterids
433
434
435 cupsd_tmp_t
436
437 - Set files with the cupsd_tmp_t type, if you want to store cupsd tem‐
438 porary files in the /tmp directories.
439
440
441
442 cupsd_var_run_t
443
444 - Set files with the cupsd_var_run_t type, if you want to store the
445 cupsd files under the /run or /var/run directory.
446
447
448 Paths:
449 /var/ccpd(/.*)?, /var/ekpd(/.*)?, /var/run/cups(/.*)?, /var/turbo‐
450 print(/.*)?
451
452
453 Note: File context can be temporarily modified with the chcon command.
454 If you want to permanently change the file context you need to use the
455 semanage fcontext command. This will modify the SELinux labeling data‐
456 base. You will need to use restorecon to apply the labels.
457
458
460 semanage fcontext can also be used to manipulate default file context
461 mappings.
462
463 semanage permissive can also be used to manipulate whether or not a
464 process type is permissive.
465
466 semanage module can also be used to enable/disable/install/remove pol‐
467 icy modules.
468
469 semanage boolean can also be used to manipulate the booleans
470
471
472 system-config-selinux is a GUI tool available to customize SELinux pol‐
473 icy settings.
474
475
477 This manual page was auto-generated using sepolicy manpage .
478
479
481 selinux(8), cupsd(8), semanage(8), restorecon(8), chcon(1) , setse‐
482 bool(8), cups_pdf_selinux(8), cupsd_config_selinux(8),
483 cupsd_lpd_selinux(8)
484
485
486
487cupsd 15-06-03 cupsd_selinux(8)