diff --git a/domain.te b/domain.te index 8fb020b9801d0fbd80b5a85f1e9a3a0dd481f77b..3775c95da31ea180dfde51392b5b5e3422f80418 100644 --- a/domain.te +++ b/domain.te @@ -424,3 +424,22 @@ neverallow { domain -init } proc:{ file dir } mounton; # from a domain to a non-domain type and vice versa. neverallow domain ~domain:process { transition dyntransition }; neverallow ~domain domain:process { transition dyntransition }; + +# +# Only system_app and system_server should be creating or writing +# their files. The proper way to share files is to setup +# type transitions to a more specific type or assigning a type +# to its parent directory via a file_contexts entry. +# Example type transition: +# mydomain.te:file_type_auto_trans(mydomain, system_data_file, new_file_type) +# +neverallow { + domain + -system_server + -system_app + -init + -installd # for relabelfrom and unlink, check for this in explicit neverallow +} system_data_file:file no_w_file_perms; +# do not grant anything greater than r_file_perms and relabelfrom unlink +# to installd +neverallow installd system_data_file:file ~{ r_file_perms relabelfrom unlink };