Changeset 2794

Show
Ignore:
Timestamp:
08/29/08 14:00:02 (3 months ago)
Author:
cpebenito
Message:

trunk: first part of init script labeling support.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Changelog

    r2787 r2794  
     1- Init script file and domain support. 
    12- Glibc 2.7 fix from Vaclav Ovsik. 
    23- Samba/winbind update from Mike Edenfield. 
  • trunk/policy/modules/system/init.if

    r2765 r2794  
    11## <summary>System initialization programs (init and init scripts).</summary> 
     2 
     3######################################## 
     4## <summary> 
     5##      Create a file type used for init scripts. 
     6## </summary> 
     7## <desc> 
     8##      <p> 
     9##      Create a file type used for init scripts. 
     10##      Can not be used in conjunction with 
     11##      init_script_domain(). 
     12##      </p> 
     13## </desc> 
     14## <param name="script_file"> 
     15##      <summary> 
     16##      Type of the script file used as an entry point to this domain. 
     17##      </summary> 
     18## </param> 
     19# 
     20interface(`init_script_file',` 
     21        gen_require(` 
     22                type initrc_t; 
     23                attribute init_script_file_type, init_run_all_scripts_domain; 
     24        ') 
     25 
     26        typeattribute $1 init_script_file_type; 
     27 
     28        domain_entry_file(initrc_t, $1) 
     29 
     30        domtrans_pattern(init_run_all_scripts_domain, $1, initrc_t) 
     31') 
     32 
     33######################################## 
     34## <summary> 
     35##      Create a domain used for init scripts. 
     36## </summary> 
     37## <desc> 
     38##      <p> 
     39##      Create a domain used for init scripts. 
     40##      Can not be used in conjunction with 
     41##      init_script_file(). 
     42##      </p> 
     43## </desc> 
     44## <param name="domain"> 
     45##      <summary> 
     46##      Type to be used as an init script domain. 
     47##      </summary> 
     48## </param> 
     49## <param name="script_file"> 
     50##      <summary> 
     51##      Type of the script file used as an entry point to this domain. 
     52##      </summary> 
     53## </param> 
     54# 
     55interface(`init_script_domain',` 
     56        gen_require(` 
     57                attribute init_script_domain_type, init_script_file_type; 
     58                attribute init_run_all_scripts_domain; 
     59        ') 
     60 
     61        typeattribute $1 init_script_domain_type; 
     62        typeattribute $2 init_script_file_type; 
     63 
     64        domain_type($1) 
     65        domain_entry_file($1, $2) 
     66 
     67        domtrans_pattern(init_run_all_scripts_domain, $2, $1) 
     68') 
    269 
    370######################################## 
     
    704771######################################## 
    705772## <summary> 
     773##      Read init scripts. 
     774## </summary> 
     775## <param name="domain"> 
     776##      <summary> 
     777##      Domain allowed access. 
     778##      </summary> 
     779## </param> 
     780# 
     781interface(`init_read_script_files',` 
     782        gen_require(` 
     783                type initrc_exec_t; 
     784        ') 
     785 
     786        files_search_etc($1) 
     787        allow $1 initrc_exec_t:file read_file_perms; 
     788') 
     789 
     790######################################## 
     791## <summary> 
    706792##      Execute init scripts in the caller domain. 
    707793## </summary> 
     
    719805        files_list_etc($1) 
    720806        can_exec($1,initrc_exec_t) 
     807') 
     808 
     809######################################## 
     810## <summary> 
     811##      Get the attribute of all init script entrypoint files. 
     812## </summary> 
     813## <param name="domain"> 
     814##      <summary> 
     815##      Domain allowed access. 
     816##      </summary> 
     817## </param> 
     818# 
     819interface(`init_getattr_all_script_files',` 
     820        gen_require(` 
     821                attribute init_script_file_type; 
     822        ') 
     823 
     824        files_list_etc($1) 
     825        allow $1 init_script_file_type:file getattr; 
     826') 
     827 
     828######################################## 
     829## <summary> 
     830##      Read all init script files. 
     831## </summary> 
     832## <param name="domain"> 
     833##      <summary> 
     834##      Domain allowed access. 
     835##      </summary> 
     836## </param> 
     837# 
     838interface(`init_read_all_script_files',` 
     839        gen_require(` 
     840                attribute init_script_file_type; 
     841        ') 
     842 
     843        files_search_etc($1) 
     844        allow $1 init_script_file_type:file read_file_perms; 
     845') 
     846 
     847######################################## 
     848## <summary> 
     849##      Execute all init scripts in the caller domain. 
     850## </summary> 
     851## <param name="domain"> 
     852##      <summary> 
     853##      Domain allowed access. 
     854##      </summary> 
     855## </param> 
     856# 
     857interface(`init_exec_all_script_files',` 
     858        gen_require(` 
     859                attribute init_script_file_type; 
     860        ') 
     861 
     862        files_list_etc($1) 
     863        can_exec($1, init_script_file_type) 
    721864') 
    722865 
     
    10311174######################################## 
    10321175## <summary> 
    1033 ##      Read init scripts. 
    1034 ## </summary> 
    1035 ## <param name="domain"> 
    1036 ##      <summary> 
    1037 ##      Domain allowed access. 
    1038 ##      </summary> 
    1039 ## </param> 
    1040 # 
    1041 interface(`init_read_script_files',` 
    1042         gen_require(` 
    1043                 type initrc_exec_t; 
    1044         ') 
    1045  
    1046         files_search_etc($1) 
    1047         allow $1 initrc_exec_t:file read_file_perms; 
    1048 ') 
    1049  
    1050 ######################################## 
    1051 ## <summary> 
    10521176##      Get the attributes of init script 
    10531177##      status files. 
  • trunk/policy/modules/system/init.te

    r2765 r2794  
    2424attribute direct_init_entry; 
    2525 
     26attribute init_script_domain_type; 
     27attribute init_script_file_type; 
     28attribute init_run_all_scripts_domain; 
     29 
    2630# Mark process types as daemons 
    2731attribute daemon; 
     
    5256mls_trusted_object(initctl_t) 
    5357 
    54 type initrc_t
    55 type initrc_exec_t
     58type initrc_t, init_script_domain_type, init_run_all_scripts_domain
     59type initrc_exec_t, init_script_file_type
    5660domain_type(initrc_t) 
    5761domain_entry_file(initrc_t,initrc_exec_t) 
     
    218222init_exec(initrc_t) 
    219223 
    220 can_exec(initrc_t,initrc_exec_t) 
     224can_exec(initrc_t, init_script_file_type) 
     225 
     226domtrans_pattern(init_run_all_scripts_domain, initrc_exec_t, initrc_t) 
    221227 
    222228manage_dirs_pattern(initrc_t,initrc_state_t,initrc_state_t)