type getty_t; #, privfd domain_make_domain(getty_t) type getty_exec_t; domain_make_entrypoint_file(getty_t,getty_exec_t) type getty_etc_t; typealias getty_etc_t alias etc_getty_t; type getty_tmp_t; files_make_file(getty_tmp_t) type getty_log_t; logging_make_log_file(getty_log_t) ######################################## # # Getty local policy # # Use capabilities. allow getty_t self:capability { dac_override chown sys_resource sys_tty_config }; # fbgetty needs fsetid for some reason #allow getty_t self:capability fsetid; allow getty_t self:process { getpgid getsession }; allow getty_t getty_etc_t:dir { getattr search read }; allow getty_t getty_etc_t:file { getattr read }; allow getty_t getty_tmp_t:file { getattr create read setattr write setattr unlink }; allow getty_t getty_tmp_t:dir { getattr search create read setattr write setattr unlink rmdir }; allow getty_t getty_log_t:file { getattr append setattr }; kernel_read_hardware_state(getty_t) files_create_private_config(getty_t,getty_etc_t,{ file dir }) files_create_private_tmp_data(getty_t,getty_tmp_t,{ file dir }) authlogin_modify_login_records(getty_t) logging_send_system_log_message(getty_t) # Write to /var/run/utmp. files_modify_system_runtime_data(getty_t) files_manage_general_lock_files(getty_t) files_read_runtime_system_config(getty_t) files_read_general_system_config(getty_t) miscfiles_read_localization(getty_t) # for error condition handling filesystem_read_persistent_filesystem_stats(getty_t) # Chown, chmod, read and write ttys. terminal_use_all_terminals(getty_t) ############## # TODO Items # TODO:May need to create a new interface for setting device node attributes #allow getty_t console_device_t:chr_file setattr; # TODO: to allow w to display everyone... #bool user_ttyfile_stat false; #if (user_ttyfile_stat) { #allow userdomain ttyfile:chr_file getattr; #} # TODO: Run login in local_login_t domain. #allow getty_t bin_t:dir search; #domain_auto_trans(getty_t, login_exec_t, local_login_t) # TODO: There is no interface for this in init.if yet. #allow getty_t initrc_devpts_t:chr_file { read write }; # TODO: This needs to go into the init module. Allow init module to transition into getty domain. #getty_transition(init_t)