|
Chris PeBenito |
1ae2c3 |
## <summary>device locking policy for lockdev</summary>
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
#######################################
|
|
Chris PeBenito |
1ae2c3 |
## <summary>
|
|
Chris PeBenito |
1ae2c3 |
## The per user domain template for the lockdev module.
|
|
Chris PeBenito |
1ae2c3 |
## </summary>
|
|
Chris PeBenito |
1ae2c3 |
## <desc>
|
|
Chris PeBenito |
1ae2c3 |
##
|
|
Chris PeBenito |
1ae2c3 |
## This template creates derived domains which are used
|
|
Chris PeBenito |
1ae2c3 |
## for lockdev. A derived type is also created to protect
|
|
Chris PeBenito |
1ae2c3 |
## the user's device locks.
|
|
Chris PeBenito |
1ae2c3 |
##
|
|
Chris PeBenito |
1ae2c3 |
##
|
|
Chris PeBenito |
1ae2c3 |
## This template is invoked automatically for each user, and
|
|
Chris PeBenito |
1ae2c3 |
## generally does not need to be invoked directly
|
|
Chris PeBenito |
1ae2c3 |
## by policy writers.
|
|
Chris PeBenito |
1ae2c3 |
##
|
|
Chris PeBenito |
1ae2c3 |
## </desc>
|
|
Chris PeBenito |
1ae2c3 |
## <param name="userdomain_prefix">
|
|
Chris PeBenito |
885b83 |
## <summary>
|
|
Chris PeBenito |
1ae2c3 |
## The prefix of the user domain (e.g., user
|
|
Chris PeBenito |
1ae2c3 |
## is the prefix for user_t).
|
|
Chris PeBenito |
885b83 |
## </summary>
|
|
Chris PeBenito |
1ae2c3 |
## </param>
|
|
Chris PeBenito |
1ae2c3 |
## <param name="user_domain">
|
|
Chris PeBenito |
885b83 |
## <summary>
|
|
Chris PeBenito |
1ae2c3 |
## The type of the user domain.
|
|
Chris PeBenito |
885b83 |
## </summary>
|
|
Chris PeBenito |
1ae2c3 |
## </param>
|
|
Chris PeBenito |
1ae2c3 |
## <param name="user_role">
|
|
Chris PeBenito |
885b83 |
## <summary>
|
|
Chris PeBenito |
1ae2c3 |
## The role associated with the user domain.
|
|
Chris PeBenito |
885b83 |
## </summary>
|
|
Chris PeBenito |
1ae2c3 |
## </param>
|
|
Chris PeBenito |
1ae2c3 |
#
|
|
Chris PeBenito |
1ae2c3 |
template(`lockdev_per_userdomain_template',`
|
|
Chris PeBenito |
1ae2c3 |
gen_require(`
|
|
Chris PeBenito |
1ae2c3 |
type lockdev_exec_t;
|
|
Chris PeBenito |
1ae2c3 |
')
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
########################################
|
|
Chris PeBenito |
1ae2c3 |
#
|
|
Chris PeBenito |
1ae2c3 |
# Declarations
|
|
Chris PeBenito |
1ae2c3 |
#
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
type $1_lockdev_t;
|
|
Chris PeBenito |
1ae2c3 |
domain_type($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
domain_entry_file($1_lockdev_t,lockdev_exec_t)
|
|
Chris PeBenito |
1ae2c3 |
role $3 types $1_lockdev_t;
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
type $1_lockdev_lock_t;
|
|
Chris PeBenito |
1ae2c3 |
files_lock_file($1_lockdev_lock_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
########################################
|
|
Chris PeBenito |
1ae2c3 |
#
|
|
Chris PeBenito |
1ae2c3 |
# Local policy
|
|
Chris PeBenito |
1ae2c3 |
#
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
# Use capabilities.
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t self:capability setgid;
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t $2:process signull;
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
# Transition from the user domain to the derived domain.
|
|
Chris PeBenito |
1ae2c3 |
domain_auto_trans($2, lockdev_exec_t, $1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
allow $2 $1_lockdev_t:fd use;
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t $2:fd use;
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t $2:fifo_file rw_file_perms;
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t $2:process sigchld;
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
allow $1_lockdev_t $1_lockdev_lock_t:file create_file_perms;
|
|
Chris PeBenito |
1c1ac6 |
files_lock_filetrans($1_lockdev_t,$1_lockdev_lock_t,file)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
files_read_all_locks($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
fs_getattr_xattr_fs($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
libs_use_ld_so($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
libs_use_shared_libs($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
logging_send_syslog_msg($1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
userdom_use_user_terminals($1, $1_lockdev_t)
|
|
Chris PeBenito |
1ae2c3 |
|
|
Chris PeBenito |
1ae2c3 |
optional_policy(`logging',`
|
|
Chris PeBenito |
1ae2c3 |
logging_send_syslog_msg($1_t)
|
|
Chris PeBenito |
1ae2c3 |
')
|
|
Chris PeBenito |
1ae2c3 |
')
|