## Name service cache daemon ######################################## ## ## Send generic signals to NSCD. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_signal',` gen_require(` type nscd_t; ') allow $1 nscd_t:process signal; ') ######################################## ## ## Execute NSCD in the nscd domain. ## ## ## ## The type of the process performing this action. ## ## # interface(`nscd_domtrans',` gen_require(` type nscd_t, nscd_exec_t; ') corecmd_search_sbin($1) domain_auto_trans($1,nscd_exec_t,nscd_t) allow $1 nscd_t:fd use; allow nscd_t $1:fd use; allow nscd_t $1:fifo_file rw_file_perms; allow nscd_t $1:process sigchld; ') ######################################## ## ## Allow the specified domain to execute nscd ## in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_exec',` gen_require(` type nscd_exec_t; ') can_exec($1,nscd_exec_t) ') ######################################## ## ## Use NSCD services by connecting using ## a unix stream socket. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_socket_use',` gen_require(` type nscd_t, nscd_var_run_t; class nscd { getpwd getgrp gethost shmempwd shmemgrp shmemhost }; ') allow $1 self:unix_stream_socket create_socket_perms; allow $1 nscd_t:unix_stream_socket connectto; allow $1 nscd_t:nscd { getpwd getgrp gethost }; dontaudit $1 nscd_t:fd use; dontaudit $1 nscd_t:nscd { shmempwd shmemgrp shmemhost }; files_search_pids($1) allow $1 nscd_var_run_t:dir r_dir_perms; allow $1 nscd_var_run_t:sock_file rw_file_perms; dontaudit $1 nscd_var_run_t:file { getattr read }; ') ######################################## ## ## Use NSCD services by mapping the database from ## an inherited NSCD file descriptor. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_shm_use',` gen_require(` type nscd_t, nscd_var_run_t; class nscd { getpwd getgrp gethost shmempwd shmemgrp shmemhost }; ') allow $1 nscd_var_run_t:dir r_dir_perms; allow $1 nscd_t:nscd { shmempwd shmemgrp shmemhost }; # Receive fd from nscd and map the backing file with read access. allow $1 nscd_t:fd use; # cjp: these were originally inherited from the # nscd_socket_domain macro. need to investigate # if they are all actually required allow $1 self:unix_stream_socket create_stream_socket_perms; allow $1 nscd_t:unix_stream_socket connectto; allow $1 nscd_var_run_t:sock_file rw_file_perms; files_search_pids($1) allow $1 nscd_t:nscd { getpwd getgrp gethost }; dontaudit $1 nscd_var_run_t:file { getattr read }; ') ######################################## ## ## Do not audit attempts to search the NSCD pid directory. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_dontaudit_search_pid',` gen_require(` type nscd_var_run_t; ') dontaudit $1 nscd_var_run_t:dir search; ') ######################################## ## ## Read NSCD pid file. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_read_pid',` gen_require(` type nscd_var_run_t; ') files_search_pids($1) allow $1 nscd_var_run_t:dir search; allow $1 nscd_var_run_t:file { getattr read }; ') ######################################## ## ## Unconfined access to NSCD services. ## ## ## ## Domain allowed access. ## ## # interface(`nscd_unconfined',` gen_require(` type nscd_t; class nscd all_nscd_perms; ') allow $1 nscd_t:nscd *; ')