## Vino. The Remote Desktop Project. Take 2.
##
##
## The primary goal of Vino was originally to provide a
## mechanism by which system administrators could remotely
## connect to a desktop machine and resolve basic problems
## for users.
##
##
########################################
##
## Role access for Vino.
##
##
##
## The prefix of the user role (e.g., user
## is the prefix for user_r).
##
##
##
##
## Role allowed access.
##
##
##
##
## User domain for the role.
##
##
#
interface(`vino_role', `
gen_require(`
type vino_server_t, vino_server_exec_t;
')
########################################
#
# Vino server shared declarations.
#
dbus_session_domain($1, vino_server_t, vino_server_exec_t)
role $2 types vino_server_t;
########################################
#
# Vino server shared policy.
#
domtrans_pattern($3, vino_server_exec_t, vino_server_t)
allow $3 vino_server_t:process { ptrace signal_perms };
ps_process_pattern($3, vino_server_t)
vino_server_dbus_chat($3)
vino_server_read_tmpfs_files($3)
vino_server_stream_connect($3)
')
########################################
##
## Send DBus messages to and from
## Vino server.
##
##
##
## Domain allowed access.
##
##
#
interface(`vino_server_dbus_chat', `
gen_require(`
type vino_server_t;
class dbus send_msg;
')
allow $1 vino_server_t:dbus send_msg;
allow vino_server_t $1:dbus send_msg;
')
########################################
##
## Stream connect to Vino server.
##
##
##
## Domain allowed access.
##
##
#
interface(`vino_server_stream_connect', `
gen_require(`
type vino_server_t, vino_server_tmp_t;
')
stream_connect_pattern($1, vino_server_tmp_t, vino_server_tmp_t, vino_server_t)
')
########################################
##
## Stream connect to Vino server.
##
##
##
## Domain allowed access.
##
##
#
interface(`vino_server_read_tmpfs_files', `
gen_require(`
type vino_server_tmpfs_t;
')
allow $1 vino_server_tmpfs_t:file { read_file_perms unlink };
')