policy_module(getty, 1.10.0) ######################################## # # Declarations # type getty_t; type getty_exec_t; init_domain(getty_t, getty_exec_t) init_system_domain(getty_t, getty_exec_t) domain_interactive_fd(getty_t) type getty_etc_t; typealias getty_etc_t alias etc_getty_t; files_config_file(getty_etc_t) type getty_lock_t; files_lock_file(getty_lock_t) type getty_log_t; logging_log_file(getty_log_t) type getty_tmp_t; files_tmp_file(getty_tmp_t) type getty_var_run_t; files_pid_file(getty_var_run_t) type getty_unit_file_t; systemd_unit_file(getty_unit_file_t) ifdef(`enable_mcs',` init_ranged_daemon_domain(getty_t, getty_exec_t, s0 - mcs_systemhigh) ') ifdef(`enable_mls',` init_ranged_daemon_domain(getty_t, getty_exec_t, s0 - mls_systemhigh) ') ######################################## # # Getty local policy # # Use capabilities. allow getty_t self:capability { dac_read_search dac_override chown setgid sys_resource sys_tty_config fowner fsetid }; dontaudit getty_t self:capability sys_tty_config; allow getty_t self:process { getpgid setpgid getsession signal_perms }; allow getty_t self:fifo_file rw_fifo_file_perms; read_files_pattern(getty_t, getty_etc_t, getty_etc_t) read_lnk_files_pattern(getty_t, getty_etc_t, getty_etc_t) files_etc_filetrans(getty_t, getty_etc_t,{ file dir }) allow getty_t getty_lock_t:file manage_file_perms; files_lock_filetrans(getty_t, getty_lock_t, file) allow getty_t getty_log_t:file manage_file_perms; logging_log_filetrans(getty_t, getty_log_t, file) allow getty_t getty_tmp_t:file manage_file_perms; allow getty_t getty_tmp_t:dir manage_dir_perms; files_tmp_filetrans(getty_t, getty_tmp_t, { file dir }) manage_files_pattern(getty_t, getty_var_run_t, getty_var_run_t) files_pid_filetrans(getty_t, getty_var_run_t, file) kernel_read_system_state(getty_t) kernel_read_network_state(getty_t) # these two needed for receiving faxes corecmd_exec_bin(getty_t) corecmd_exec_shell(getty_t) dev_read_sysfs(getty_t) files_rw_generic_pids(getty_t) files_read_etc_runtime_files(getty_t) files_read_etc_files(getty_t) files_search_spool(getty_t) fs_search_auto_mountpoints(getty_t) # for error condition handling fs_getattr_xattr_fs(getty_t) mcs_process_set_categories(getty_t) mls_file_read_all_levels(getty_t) mls_file_write_all_levels(getty_t) # Chown, chmod, read and write ttys. term_use_all_ttys(getty_t) term_use_unallocated_ttys(getty_t) term_setattr_all_ttys(getty_t) term_setattr_unallocated_ttys(getty_t) term_setattr_console(getty_t) term_use_console(getty_t) term_use_usb_ttys(getty_t) term_setattr_usb_ttys(getty_t) term_use_all_ptys(getty_t) term_setattr_all_ptys(getty_t) auth_rw_login_records(getty_t) auth_use_nsswitch(getty_t) init_rw_utmp(getty_t) init_use_script_ptys(getty_t) init_dontaudit_use_script_ptys(getty_t) locallogin_domtrans(getty_t) logging_send_syslog_msg(getty_t) ifdef(`distro_gentoo',` # Gentoo default /etc/issue makes agetty # do a DNS lookup for the hostname sysnet_dns_name_resolve(getty_t) ') ifdef(`distro_redhat',` # getty requires sys_admin #209426 allow getty_t self:capability sys_admin; ') ifdef(`distro_ubuntu',` optional_policy(` unconfined_domain(getty_t) ') ') tunable_policy(`login_console_enabled',` # Support logging in from /dev/console term_use_console(getty_t) ',` term_dontaudit_use_console(getty_t) ') optional_policy(` cockpit_read_pid_files(getty_t) ') optional_policy(` hostname_exec(getty_t) ') optional_policy(` lockdev_manage_files(getty_t) ') optional_policy(` mta_send_mail(getty_t) ') optional_policy(` plymouthd_exec_plymouth(getty_t) plymouthd_stream_connect(getty_t) ') optional_policy(` ppp_domtrans(getty_t) ') optional_policy(` rhgb_dontaudit_use_ptys(getty_t) ') optional_policy(` udev_read_db(getty_t) ')