policy for the Reliability Availability servicability daemon (#690)

* policy for the Reliability Availability servicability daemon

Signed-off-by: Russell Coker <russell@coker.com.au>
This commit is contained in:
Russell Coker 2023-09-22 00:22:36 +10:00 committed by GitHub
parent e349de1507
commit 125e52ef58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 91 additions and 0 deletions

View File

@ -6136,6 +6136,43 @@ interface(`fs_getattr_tracefs_files',`
allow $1 tracefs_t:file getattr;
')
########################################
## <summary>
## Read/write trace filesystem files
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`fs_rw_tracefs_files',`
gen_require(`
type tracefs_t;
')
allow $1 tracefs_t:dir list_dir_perms;
allow $1 tracefs_t:file rw_file_perms;
')
########################################
## <summary>
## create trace filesystem directories
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`fs_create_tracefs_dirs',`
gen_require(`
type tracefs_t;
')
allow $1 tracefs_t:dir { create rw_dir_perms };
')
########################################
## <summary>
## Mount a XENFS filesystem.

View File

@ -0,0 +1,3 @@
/usr/sbin/rasdaemon -- gen_context(system_u:object_r:rasdaemon_exec_t,s0)
/var/lib/rasdaemon(/.*)? gen_context(system_u:object_r:rasdaemon_var_t,s0)

View File

@ -0,0 +1,10 @@
## <summary>RAS (Reliability, Availability and Serviceability) logging tool</summary>
##
## <desc>
## rasdaemon is a RAS (Reliability, Availability and Serviceability) logging
## tool. It currently records memory errors, using the EDAC tracing events.
## EDAC are drivers in the Linux kernel that handle detection of ECC errors
## from memory controllers for most chipsets on x86 and ARM architectures.
##
## https://git.infradead.org/users/mchehab/rasdaemon.git
## </desc>

View File

@ -0,0 +1,41 @@
policy_module(rasdaemon)
########################################
#
# Declarations
#
type rasdaemon_t;
type rasdaemon_exec_t;
init_daemon_domain(rasdaemon_t, rasdaemon_exec_t)
type rasdaemon_var_t;
files_type(rasdaemon_var_t)
########################################
#
# Local policy
#
allow rasdaemon_t self:process getsched;
allow rasdaemon_t self:capability sys_rawio;
allow rasdaemon_t rasdaemon_var_t:dir manage_dir_perms;
allow rasdaemon_t rasdaemon_var_t:file manage_file_perms;
kernel_read_debugfs(rasdaemon_t)
kernel_read_system_state(rasdaemon_t)
kernel_read_vm_overcommit_sysctl(rasdaemon_t)
kernel_search_fs_sysctls(rasdaemon_t)
dev_read_sysfs(rasdaemon_t)
dev_read_urand(rasdaemon_t)
dev_rw_cpu_microcode(rasdaemon_t)
files_search_var_lib(rasdaemon_t)
fs_create_tracefs_dirs(rasdaemon_t)
fs_rw_tracefs_files(rasdaemon_t)
logging_send_syslog_msg(rasdaemon_t)
miscfiles_read_localization(rasdaemon_t)