1xdm_selinux(8) SELinux Policy xdm xdm_selinux(8)
2
3
4
6 xdm_selinux - Security Enhanced Linux Policy for the xdm processes
7
9 Security-Enhanced Linux secures the xdm processes via flexible manda‐
10 tory access control.
11
12 The xdm processes execute with the xdm_t SELinux type. You can check if
13 you have these processes running by executing the ps command with the
14 -Z qualifier.
15
16 For example:
17
18 ps -eZ | grep xdm_t
19
20
21
23 The xdm_t SELinux type can be entered via the xdm_exec_t, user_tmp_t
24 file types.
25
26 The default entrypoint paths for the xdm_t domain are the following:
27
28 /usr/s?bin/nodm, /usr/s?bin/gdm(3)?, /usr/s?bin/lightdm*,
29 /usr/s?bin/[mxgkw]dm, /usr/s?bin/gdm-binary, /usr/s?bin/lxdm(-binary)?,
30 /usr/X11R6/bin/[xgkw]dm, /usr/bin/razor-lightdm-.*, /usr/bin/sddm,
31 /usr/bin/slim, /usr/bin/gpe-dm, /opt/kde3/bin/kdm, /usr/sbin/mdm-bi‐
32 nary, /usr/bin/sddm-greeter, /etc/rc.d/init.d/x11-common,
33 /usr/libexec/gdm-runtime-config, /usr/libexec/gdm-disable-wayland,
34 /dev/shm/mono.*, /var/run/user/[^/]+, /tmp/.ICE-unix(/.*)?,
35 /tmp/.X11-unix(/.*)?, /dev/shm/pulse-shm.*, /tmp/.X0-lock,
36 /var/run/user, /tmp/hsperfdata_root, /var/tmp/hsperfdata_root,
37 /home/[^/]+/tmp, /home/[^/]+/.tmp, /var/run/user/[0-9]+,
38 /tmp/gconfd-[^/]+
39
41 SELinux defines process types (domains) for each process running on the
42 system
43
44 You can see the context of a process using the -Z option to ps
45
46 Policy governs the access confined processes have to files. SELinux
47 xdm policy is very flexible allowing users to setup their xdm processes
48 in as secure a method as possible.
49
50 The following process types are defined for xdm:
51
52 xdm_t, xdm_unconfined_t
53
54 Note: semanage permissive -a xdm_t can be used to make the process type
55 xdm_t permissive. SELinux does not deny access to permissive process
56 types, but the AVC (SELinux denials) messages are still generated.
57
58
60 SELinux policy is customizable based on least access required. xdm
61 policy is extremely flexible and has several booleans that allow you to
62 manipulate the policy and run xdm with the tightest access possible.
63
64
65
66 If you want to allows xdm_t to bind on vnc_port_t(5910), you must turn
67 on the xdm_bind_vnc_tcp_port boolean. Disabled by default.
68
69 setsebool -P xdm_bind_vnc_tcp_port 1
70
71
72
73 If you want to allow the graphical login program to create, read,
74 write, and delete files in the /boot director and DOS filesystem, you
75 must turn on the xdm_manage_bootloader boolean. Enabled by default.
76
77 setsebool -P xdm_manage_bootloader 1
78
79
80
81 If you want to allow the graphical login program to login directly as
82 sysadm_r:sysadm_t, you must turn on the xdm_sysadm_login boolean. Dis‐
83 abled by default.
84
85 setsebool -P xdm_sysadm_login 1
86
87
88
89 If you want to deny user domains applications to map a memory region as
90 both executable and writable, this is dangerous and the executable
91 should be reported in bugzilla, you must turn on the deny_execmem bool‐
92 ean. Enabled by default.
93
94 setsebool -P deny_execmem 1
95
96
97
98 If you want to deny any process from ptracing or debugging any other
99 processes, you must turn on the deny_ptrace boolean. Enabled by de‐
100 fault.
101
102 setsebool -P deny_ptrace 1
103
104
105
106 If you want to allow all domains to execute in fips_mode, you must turn
107 on the fips_mode boolean. Enabled by default.
108
109 setsebool -P fips_mode 1
110
111
112
113 If you want to allow confined applications to run with kerberos, you
114 must turn on the kerberos_enabled boolean. Enabled by default.
115
116 setsebool -P kerberos_enabled 1
117
118
119
120 If you want to allow system to run with NIS, you must turn on the
121 nis_enabled boolean. Disabled by default.
122
123 setsebool -P nis_enabled 1
124
125
126
127 If you want to enable polyinstantiated directory support, you must turn
128 on the polyinstantiation_enabled boolean. Disabled by default.
129
130 setsebool -P polyinstantiation_enabled 1
131
132
133
134 If you want to allow unconfined executables to make their stack exe‐
135 cutable. This should never, ever be necessary. Probably indicates a
136 badly coded executable, but could indicate an attack. This executable
137 should be reported in bugzilla, you must turn on the selinuxuser_exec‐
138 stack boolean. Enabled by default.
139
140 setsebool -P selinuxuser_execstack 1
141
142
143
144 If you want to support ecryptfs home directories, you must turn on the
145 use_ecryptfs_home_dirs boolean. Disabled by default.
146
147 setsebool -P use_ecryptfs_home_dirs 1
148
149
150
151 If you want to support fusefs home directories, you must turn on the
152 use_fusefs_home_dirs boolean. Disabled by default.
153
154 setsebool -P use_fusefs_home_dirs 1
155
156
157
158 If you want to support NFS home directories, you must turn on the
159 use_nfs_home_dirs boolean. Disabled by default.
160
161 setsebool -P use_nfs_home_dirs 1
162
163
164
165 If you want to support SAMBA home directories, you must turn on the
166 use_samba_home_dirs boolean. Disabled by default.
167
168 setsebool -P use_samba_home_dirs 1
169
170
171
173 SELinux defines port types to represent TCP and UDP ports.
174
175 You can see the types associated with a port by using the following
176 command:
177
178 semanage port -l
179
180
181 Policy governs the access confined processes have to these ports.
182 SELinux xdm policy is very flexible allowing users to setup their xdm
183 processes in as secure a method as possible.
184
185 The following port types are defined for xdm:
186
187
188 xdmcp_port_t
189
190
191
192 Default Defined Ports:
193 tcp 177
194 udp 177
195
197 The SELinux process type xdm_t can manage files labeled with the fol‐
198 lowing file types. The paths listed are the default paths for these
199 file types. Note the processes UID still need to have DAC permissions.
200
201 auth_cache_t
202
203 /var/cache/coolkey(/.*)?
204
205 auth_home_t
206
207 /root/.yubico(/.*)?
208 /root/.config/Yubico(/.*)?
209 /root/.google_authenticator
210 /root/.google_authenticator~
211 /home/[^/]+/.yubico(/.*)?
212 /home/[^/]+/.config/Yubico(/.*)?
213 /home/[^/]+/.google_authenticator
214 /home/[^/]+/.google_authenticator~
215
216 cifs_t
217
218
219 dosfs_t
220
221
222 faillog_t
223
224 /var/log/btmp.*
225 /var/log/faillog.*
226 /var/log/tallylog.*
227 /var/run/faillock(/.*)?
228
229 fusefs_t
230
231 /var/run/user/[0-9]+/gvfs
232
233 initrc_var_run_t
234
235 /var/run/utmp
236 /var/run/random-seed
237 /var/run/runlevel.dir
238 /var/run/setmixer_flag
239
240 krb5_host_rcache_t
241
242 /var/tmp/krb5_0.rcache2
243 /var/cache/krb5rcache(/.*)?
244 /var/tmp/nfs_0
245 /var/tmp/DNS_25
246 /var/tmp/host_0
247 /var/tmp/imap_0
248 /var/tmp/HTTP_23
249 /var/tmp/HTTP_48
250 /var/tmp/ldap_55
251 /var/tmp/ldap_487
252 /var/tmp/ldapmap1_0
253
254 lastlog_t
255
256 /var/log/lastlog.*
257
258 nfs_t
259
260
261 pam_var_console_t
262
263 /var/run/console(/.*)?
264
265 pam_var_run_t
266
267 /var/(db|adm)/sudo(/.*)?
268 /var/lib/sudo(/.*)?
269 /var/run/sudo(/.*)?
270 /var/run/pam_ssh(/.*)?
271 /var/run/sepermit(/.*)?
272 /var/run/pam_mount(/.*)?
273 /var/run/pam_timestamp(/.*)?
274
275 security_t
276
277 /selinux
278
279 sysfs_t
280
281 /sys(/.*)?
282
283 systemd_passwd_var_run_t
284
285 /var/run/systemd/ask-password(/.*)?
286 /var/run/systemd/ask-password-block(/.*)?
287
288 user_tmp_t
289
290 /dev/shm/mono.*
291 /var/run/user/[^/]+
292 /tmp/.ICE-unix(/.*)?
293 /tmp/.X11-unix(/.*)?
294 /dev/shm/pulse-shm.*
295 /tmp/.X0-lock
296 /var/run/user
297 /tmp/hsperfdata_root
298 /var/tmp/hsperfdata_root
299 /home/[^/]+/tmp
300 /home/[^/]+/.tmp
301 /var/run/user/[0-9]+
302 /tmp/gconfd-[^/]+
303
304 user_tmp_type
305
306 all user tmp files
307
308 var_auth_t
309
310 /var/ace(/.*)?
311 /var/rsa(/.*)?
312 /var/lib/abl(/.*)?
313 /var/lib/rsa(/.*)?
314 /var/lib/pam_ssh(/.*)?
315 /var/lib/pam_shield(/.*)?
316 /var/opt/quest/vas/vasd(/.*)?
317 /var/lib/google-authenticator(/.*)?
318
319 wtmp_t
320
321 /var/log/wtmp.*
322
323 xdm_lock_t
324
325
326 xdm_log_t
327
328 /var/log/[mkwx]dm.log.*
329 /var/log/mdm(/.*)?
330 /var/log/lxdm.log.*
331 /var/log/slim.log.*
332
333 xdm_spool_t
334
335 /var/spool/[mg]dm(/.*)?
336
337 xdm_tmpfs_t
338
339
340 xdm_var_lib_t
341
342 /var/lib/[mxkwg]dm(/.*)?
343 /var/cache/[mg]dm(/.*)?
344 /var/lib/gdm(3)?(/.*)?
345 /var/lib/lxdm(/.*)?
346 /var/lib/sddm(/.*)?
347 /var/lib/lightdm(/.*)?
348 /var/cache/lightdm(/.*)?
349 /var/lib/lightdm-data(/.*)?
350
351 xdm_var_run_t
352
353 /etc/kde[34]?/kdm/backgroundrc
354 /var/run/[kgm]dm(/.*)?
355 /var/run/gdm(3)?.pid
356 /var/run/gdm(3)?(/.*)?
357 /usr/lib/qt-.*/etc/settings(/.*)?
358 /var/run/slim.*
359 /var/run/lxdm(/.*)?
360 /var/run/sddm(/.*)?
361 /var/run/xauth(/.*)?
362 /var/run/xdmctl(/.*)?
363 /var/run/lightdm(/.*)?
364 /var/run/systemd/multi-session-x(/.*)?
365 /var/run/xdm.pid
366 /var/run/lxdm.pid
367 /var/run/lxdm.auth
368 /var/run/gdm_socket
369
370 xkb_var_lib_t
371
372 /var/lib/xkb(/.*)?
373 /usr/X11R6/lib/X11/xkb/.*
374 /usr/X11R6/lib/X11/xkb
375
376 xserver_log_t
377
378 /var/[xgkw]dm(/.*)?
379 /usr/var/[xgkw]dm(/.*)?
380 /var/log/gdm(3)?(/.*)?
381 /var/log/Xorg.*
382 /var/log/XFree86.*
383 /var/log/lightdm(/.*)?
384 /var/log/nvidia-installer.log.*
385
386 xserver_tmpfs_t
387
388
389
391 SELinux requires files to have an extended attribute to define the file
392 type.
393
394 You can see the context of a file using the -Z option to ls
395
396 Policy governs the access confined processes have to these files.
397 SELinux xdm policy is very flexible allowing users to setup their xdm
398 processes in as secure a method as possible.
399
400 EQUIVALENCE DIRECTORIES
401
402
403 xdm policy stores data with multiple different file context types under
404 the /var/lib/lightdm directory. If you would like to store the data in
405 a different directory you can use the semanage command to create an
406 equivalence mapping. If you wanted to store this data under the /srv
407 directory you would execute the following command:
408
409 semanage fcontext -a -e /var/lib/lightdm /srv/lightdm
410 restorecon -R -v /srv/lightdm
411
412 xdm policy stores data with multiple different file context types under
413 the /var/run/gdm(3)? directory. If you would like to store the data in
414 a different directory you can use the semanage command to create an
415 equivalence mapping. If you wanted to store this data under the /srv
416 directory you would execute the following command:
417
418 semanage fcontext -a -e /var/run/gdm(3)? /srv/gdm(3)?
419 restorecon -R -v /srv/gdm(3)?
420
421 xdm policy stores data with multiple different file context types under
422 the /var/run/lxdm directory. If you would like to store the data in a
423 different directory you can use the semanage command to create an
424 equivalence mapping. If you wanted to store this data under the /srv
425 directory you would execute the following command:
426
427 semanage fcontext -a -e /var/run/lxdm /srv/lxdm
428 restorecon -R -v /srv/lxdm
429
430 STANDARD FILE CONTEXT
431
432 SELinux defines the file context types for the xdm, if you wanted to
433 store files with these types in a diffent paths, you need to execute
434 the semanage command to specify alternate labeling and then use re‐
435 storecon to put the labels on disk.
436
437 semanage fcontext -a -t xdm_log_t '/srv/myxdm_content(/.*)?'
438 restorecon -R -v /srv/myxdm_content
439
440 Note: SELinux often uses regular expressions to specify labels that
441 match multiple files.
442
443 The following file types are defined for xdm:
444
445
446
447 xdm_etc_t
448
449 - Set files with the xdm_etc_t type, if you want to store xdm files in
450 the /etc directories.
451
452
453
454 xdm_exec_t
455
456 - Set files with the xdm_exec_t type, if you want to transition an exe‐
457 cutable to the xdm_t domain.
458
459
460 Paths:
461 /usr/s?bin/nodm, /usr/s?bin/gdm(3)?, /usr/s?bin/lightdm*,
462 /usr/s?bin/[mxgkw]dm, /usr/s?bin/gdm-binary, /usr/s?bin/lxdm(-bi‐
463 nary)?, /usr/X11R6/bin/[xgkw]dm, /usr/bin/razor-lightdm-.*,
464 /usr/bin/sddm, /usr/bin/slim, /usr/bin/gpe-dm, /opt/kde3/bin/kdm,
465 /usr/sbin/mdm-binary, /usr/bin/sddm-greeter,
466 /etc/rc.d/init.d/x11-common, /usr/libexec/gdm-runtime-config,
467 /usr/libexec/gdm-disable-wayland
468
469
470 xdm_home_t
471
472 - Set files with the xdm_home_t type, if you want to store xdm files in
473 the users home directory.
474
475
476 Paths:
477 /root/.dmrc.*, /root/.wayland-errors.*, /root/.xsession-errors.*,
478 /home/[^/]+/.dmrc.*, /home/[^/]+/.cache/gdm(/.*)?,
479 /home/[^/]+/.wayland-errors.*, /home/[^/]+/.xsession-errors.*,
480 /home/[^/]+/.local/share/xorg(/.*)?
481
482
483 xdm_lock_t
484
485 - Set files with the xdm_lock_t type, if you want to treat the files as
486 xdm lock data, stored under the /var/lock directory
487
488
489
490 xdm_log_t
491
492 - Set files with the xdm_log_t type, if you want to treat the data as
493 xdm log data, usually stored under the /var/log directory.
494
495
496 Paths:
497 /var/log/[mkwx]dm.log.*, /var/log/mdm(/.*)?, /var/log/lxdm.log.*,
498 /var/log/slim.log.*
499
500
501 xdm_rw_etc_t
502
503 - Set files with the xdm_rw_etc_t type, if you want to store xdm rw
504 files in the /etc directories.
505
506
507 Paths:
508 /etc/X11/wdm(/.*)?, /etc/opt/VirtualGL(/.*)?
509
510
511 xdm_spool_t
512
513 - Set files with the xdm_spool_t type, if you want to store the xdm
514 files under the /var/spool directory.
515
516
517
518 xdm_tmpfs_t
519
520 - Set files with the xdm_tmpfs_t type, if you want to store xdm files
521 on a tmpfs file system.
522
523
524
525 xdm_unconfined_exec_t
526
527 - Set files with the xdm_unconfined_exec_t type, if you want to transi‐
528 tion an executable to the xdm_unconfined_t domain.
529
530
531 Paths:
532 /etc/[mg]dm/Init(/.*)?, /etc/[mg]dm/PostLogin(/.*)?,
533 /etc/[mg]dm/PreSession(/.*)?, /etc/[mg]dm/PostSession(/.*)?
534
535
536 xdm_unit_file_t
537
538 - Set files with the xdm_unit_file_t type, if you want to treat the
539 files as xdm unit content.
540
541
542
543 xdm_var_lib_t
544
545 - Set files with the xdm_var_lib_t type, if you want to store the xdm
546 files under the /var/lib directory.
547
548
549 Paths:
550 /var/lib/[mxkwg]dm(/.*)?, /var/cache/[mg]dm(/.*)?,
551 /var/lib/gdm(3)?(/.*)?, /var/lib/lxdm(/.*)?, /var/lib/sddm(/.*)?,
552 /var/lib/lightdm(/.*)?, /var/cache/lightdm(/.*)?,
553 /var/lib/lightdm-data(/.*)?
554
555
556 xdm_var_run_t
557
558 - Set files with the xdm_var_run_t type, if you want to store the xdm
559 files under the /run or /var/run directory.
560
561
562 Paths:
563 /etc/kde[34]?/kdm/backgroundrc, /var/run/[kgm]dm(/.*)?,
564 /var/run/gdm(3)?.pid, /var/run/gdm(3)?(/.*)?,
565 /usr/lib/qt-.*/etc/settings(/.*)?, /var/run/slim.*,
566 /var/run/lxdm(/.*)?, /var/run/sddm(/.*)?, /var/run/xauth(/.*)?,
567 /var/run/xdmctl(/.*)?, /var/run/lightdm(/.*)?, /var/run/sys‐
568 temd/multi-session-x(/.*)?, /var/run/xdm.pid, /var/run/lxdm.pid,
569 /var/run/lxdm.auth, /var/run/gdm_socket
570
571
572 Note: File context can be temporarily modified with the chcon command.
573 If you want to permanently change the file context you need to use the
574 semanage fcontext command. This will modify the SELinux labeling data‐
575 base. You will need to use restorecon to apply the labels.
576
577
579 semanage fcontext can also be used to manipulate default file context
580 mappings.
581
582 semanage permissive can also be used to manipulate whether or not a
583 process type is permissive.
584
585 semanage module can also be used to enable/disable/install/remove pol‐
586 icy modules.
587
588 semanage port can also be used to manipulate the port definitions
589
590 semanage boolean can also be used to manipulate the booleans
591
592
593 system-config-selinux is a GUI tool available to customize SELinux pol‐
594 icy settings.
595
596
598 This manual page was auto-generated using sepolicy manpage .
599
600
602 selinux(8), xdm(8), semanage(8), restorecon(8), chcon(1), sepolicy(8),
603 setsebool(8), xdm_unconfined_selinux(8), xdm_unconfined_selinux(8)
604
605
606
607xdm 23-02-03 xdm_selinux(8)