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