Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Support macros for sets of object classes and permissions
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# This file should only have object class and permission set macros - they
Chris PeBenito 17de1b
# can only reference object classes and/or permissions.
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# All directory and file classes
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`dir_file_class_set', `{ dir file lnk_file sock_file fifo_file chr_file blk_file }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# All non-directory file classes.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`file_class_set', `{ file lnk_file sock_file fifo_file chr_file blk_file }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Non-device file classes.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`notdevfile_class_set', `{ file lnk_file sock_file fifo_file }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Device file classes.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`devfile_class_set', `{ chr_file blk_file }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# All socket classes.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`socket_class_set', `{ tcp_socket udp_socket rawip_socket netlink_socket packet_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_firewall_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_ip6fw_socket netlink_dnrt_socket netlink_kobject_uevent_socket }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Datagram socket classes.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`dgram_socket_class_set', `{ udp_socket unix_dgram_socket }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Stream socket classes.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`stream_socket_class_set', `{ tcp_socket unix_stream_socket }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Unprivileged socket classes (exclude rawip, netlink, packet).
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`unpriv_socket_class_set', `{ tcp_socket udp_socket unix_stream_socket unix_dgram_socket }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Macros for sets of permissions
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for getting file attributes.
Chris PeBenito 17de1b
#
Chris PeBenito ef659a
define(`stat_file_perms', `{ getattr } refpolicywarn(`$0 is deprecated please use getattr_file_perms instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for executing files.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`x_file_perms', `{ getattr open execute } refpolicywarn(`$0 is deprecated please use { getattr execute } instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for reading files and their attributes.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`r_file_perms', `{ open read getattr lock ioctl } refpolicywarn(`$0 is deprecated please use read_file_perms instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for reading and executing files.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`rx_file_perms', `{ open read getattr lock execute ioctl } refpolicywarn(`$0 is deprecated please use { mmap_file_perms ioctl lock } instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for reading and appending to files.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`ra_file_perms', `{ open ioctl read getattr lock append } refpolicywarn(`$0 is deprecated please use { read_file_perms append_file_perms } instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for linking, unlinking and renaming files.
Chris PeBenito 17de1b
# 
Chris PeBenito ef659a
define(`link_file_perms', `{ getattr link unlink rename } refpolicywarn(`$0 is deprecated please use { getattr link unlink rename } instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating lnk_files.
Chris PeBenito 17de1b
#
Chris PeBenito ef659a
define(`create_lnk_perms', `{ create read getattr setattr link unlink rename } refpolicywarn(`$0 is deprecated please use manage_lnk_file_perms instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for reading directories and their attributes.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`r_dir_perms', `{ open read getattr lock search ioctl } refpolicywarn(`$0 is deprecated please use list_dir_perms instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
# Permissions for reading and adding names to directories.
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`ra_dir_perms', `{ open read getattr lock search ioctl add_name write } refpolicywarn(`$0 is deprecated please use { list_dir_perms add_entry_dir_perms } instead.')')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions to mount and unmount file systems.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`mount_fs_perms', `{ mount remount unmount getattr }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for using sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`rw_socket_perms', `{ ioctl read getattr write setattr append bind connect getopt setopt shutdown }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating and using sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`create_socket_perms', `{ create rw_socket_perms }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for using stream sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`rw_stream_socket_perms', `{ rw_socket_perms listen accept }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating and using stream sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`create_stream_socket_perms', `{ create_socket_perms listen accept }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating and using sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`connected_socket_perms', `{ create ioctl read getattr write setattr append bind getopt setopt shutdown }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating and using sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`connected_stream_socket_perms', `{ connected_socket_perms listen accept }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for creating and using netlink sockets.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`create_netlink_socket_perms', `{ create_socket_perms nlmsg_read nlmsg_write }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for using netlink sockets for operations that modify state.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`rw_netlink_socket_perms', `{ create_socket_perms nlmsg_read nlmsg_write }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for using netlink sockets for operations that observe state.
Chris PeBenito 17de1b
# 
Chris PeBenito 17de1b
define(`r_netlink_socket_perms', `{ create_socket_perms nlmsg_read }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for sending all signals.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`signal_perms', `{ sigchld sigkill sigstop signull signal }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for sending and receiving network packets.
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`packet_perms', `{ tcp_recv tcp_send udp_recv udp_send rawip_recv rawip_send }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Permissions for using System V IPC
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`r_sem_perms', `{ associate getattr read unix_read }')
Chris PeBenito 17de1b
define(`rw_sem_perms', `{ associate getattr read write unix_read unix_write }')
Chris PeBenito 17de1b
define(`create_sem_perms', `{ associate getattr setattr create destroy read write unix_read unix_write }')
Chris PeBenito 17de1b
define(`r_msgq_perms', `{ associate getattr read unix_read }')
Chris PeBenito 17de1b
define(`rw_msgq_perms', `{ associate getattr read write enqueue unix_read unix_write }')
Chris PeBenito 17de1b
define(`create_msgq_perms', `{ associate getattr setattr create destroy read write enqueue unix_read unix_write }')
Chris PeBenito 17de1b
define(`r_shm_perms', `{ associate getattr read unix_read }')
Chris PeBenito 17de1b
define(`rw_shm_perms', `{ associate getattr read write lock unix_read unix_write }')
Chris PeBenito 17de1b
define(`create_shm_perms', `{ associate getattr setattr create destroy read write lock unix_read unix_write }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# New permission sets
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito c0868a
# Directory (dir)
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`getattr_dir_perms',`{ getattr }')
Chris PeBenito 17de1b
define(`setattr_dir_perms',`{ setattr }')
Chris PeBenito 7ca3f5
define(`search_dir_perms',`{ getattr search open }')
Chris PeBenito 0b36a2
define(`list_dir_perms',`{ getattr search open read lock ioctl }')
Chris PeBenito 0b36a2
define(`add_entry_dir_perms',`{ getattr search open lock ioctl write add_name }')
Chris PeBenito 0b36a2
define(`del_entry_dir_perms',`{ getattr search open lock ioctl write remove_name }')
Chris PeBenito 0b36a2
define(`rw_dir_perms', `{ open read getattr lock search ioctl add_name remove_name write }')
Chris PeBenito c0868a
define(`create_dir_perms',`{ getattr create }')
Chris PeBenito 7f819d
define(`rename_dir_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_dir_perms',`{ getattr rmdir }')
Chris PeBenito cbe82b
define(`manage_dir_perms',`{ create open getattr setattr read write link unlink rename search add_name remove_name reparent rmdir lock ioctl }')
Chris PeBenito c0868a
define(`relabelfrom_dir_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_dir_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_dir_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito c0868a
# Regular file (file)
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`getattr_file_perms',`{ getattr }')
Chris PeBenito 17de1b
define(`setattr_file_perms',`{ setattr }')
Chris PeBenito 0b36a2
define(`read_file_perms',`{ getattr open read lock ioctl }')
Chris PeBenito 0b36a2
define(`mmap_file_perms',`{ getattr open read execute ioctl }')
Chris PeBenito c8d563
define(`exec_file_perms',`{ getattr open read execute ioctl execute_no_trans }')
Chris PeBenito 0b36a2
define(`append_file_perms',`{ getattr open append lock ioctl }')
Chris PeBenito 0b36a2
define(`write_file_perms',`{ getattr open write append lock ioctl }')
Chris PeBenito 0b36a2
define(`rw_file_perms',`{ getattr open read write append ioctl lock }')
Chris PeBenito cbe82b
define(`create_file_perms',`{ getattr create open }')
Chris PeBenito c0868a
define(`rename_file_perms',`{ getattr rename }')
Chris PeBenito 17de1b
define(`delete_file_perms',`{ getattr unlink }')
Chris PeBenito cbe82b
define(`manage_file_perms',`{ create open getattr setattr read write append rename link unlink ioctl lock }')
Chris PeBenito c0868a
define(`relabelfrom_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# Symbolic link (lnk_file)
Chris PeBenito c0868a
#
Chris PeBenito c0868a
define(`getattr_lnk_file_perms',`{ getattr }')
Chris PeBenito c0868a
define(`setattr_lnk_file_perms',`{ setattr }')
Chris PeBenito c0868a
define(`read_lnk_file_perms',`{ getattr read }')
Chris PeBenito b34db7
define(`append_lnk_file_perms',`{ getattr append lock ioctl }')
Chris PeBenito b34db7
define(`write_lnk_file_perms',`{ getattr append write lock ioctl }')
Chris PeBenito c0868a
define(`rw_lnk_file_perms',`{ getattr read write lock ioctl }')
Chris PeBenito c0868a
define(`create_lnk_file_perms',`{ create getattr }')
Chris PeBenito c0868a
define(`rename_lnk_file_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_lnk_file_perms',`{ getattr unlink }')
Chris PeBenito c9ab77
define(`manage_lnk_file_perms',`{ create read write getattr setattr link unlink rename }')
Chris PeBenito c0868a
define(`relabelfrom_lnk_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_lnk_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_lnk_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# (Un)named Pipes/FIFOs (fifo_file)
Chris PeBenito c0868a
#
Chris PeBenito c0868a
define(`getattr_fifo_file_perms',`{ getattr }')
Chris PeBenito c0868a
define(`setattr_fifo_file_perms',`{ setattr }')
Chris PeBenito 0b36a2
define(`read_fifo_file_perms',`{ getattr open read lock ioctl }')
Chris PeBenito 0b36a2
define(`append_fifo_file_perms',`{ getattr open append lock ioctl }')
Chris PeBenito 0b36a2
define(`write_fifo_file_perms',`{ getattr open write append lock ioctl }')
Chris PeBenito 0b36a2
define(`rw_fifo_file_perms',`{ getattr open read write append ioctl lock }')
Chris PeBenito cbe82b
define(`create_fifo_file_perms',`{ getattr create open }')
Chris PeBenito c040ea
define(`rename_fifo_file_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_fifo_file_perms',`{ getattr unlink }')
Chris PeBenito cbe82b
define(`manage_fifo_file_perms',`{ create open getattr setattr read write append rename link unlink ioctl lock }')
Chris PeBenito c0868a
define(`relabelfrom_fifo_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_fifo_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_fifo_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# (Un)named Sockets (sock_file)
Chris PeBenito c0868a
#
Chris PeBenito c0868a
define(`getattr_sock_file_perms',`{ getattr }')
Chris PeBenito c0868a
define(`setattr_sock_file_perms',`{ setattr }')
Chris PeBenito d3cdc3
define(`read_sock_file_perms',`{ getattr open read }')
Chris PeBenito d3cdc3
define(`write_sock_file_perms',`{ getattr write open append }')
Chris PeBenito d3cdc3
define(`rw_sock_file_perms',`{ getattr open read write append }')
Chris PeBenito d3cdc3
define(`create_sock_file_perms',`{ getattr create open }')
Chris PeBenito c040ea
define(`rename_sock_file_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_sock_file_perms',`{ getattr unlink }')
Chris PeBenito d3cdc3
define(`manage_sock_file_perms',`{ create open getattr setattr read write rename link unlink ioctl lock append }')
Chris PeBenito c0868a
define(`relabelfrom_sock_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_sock_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_sock_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# Block device nodes (blk_file)
Chris PeBenito c0868a
#
Chris PeBenito c0868a
define(`getattr_blk_file_perms',`{ getattr }')
Chris PeBenito c0868a
define(`setattr_blk_file_perms',`{ setattr }')
Chris PeBenito 0b36a2
define(`read_blk_file_perms',`{ getattr open read lock ioctl }')
Chris PeBenito 0b36a2
define(`append_blk_file_perms',`{ getattr open append lock ioctl }')
Chris PeBenito 0b36a2
define(`write_blk_file_perms',`{ getattr open write append lock ioctl }')
Chris PeBenito 0b36a2
define(`rw_blk_file_perms',`{ getattr open read write append ioctl lock }')
Chris PeBenito c0868a
define(`create_blk_file_perms',`{ getattr create }')
Chris PeBenito c0868a
define(`rename_blk_file_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_blk_file_perms',`{ getattr unlink }')
Chris PeBenito cbe82b
define(`manage_blk_file_perms',`{ create open getattr setattr read write append rename link unlink ioctl lock }')
Chris PeBenito c0868a
define(`relabelfrom_blk_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_blk_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_blk_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# Character device nodes (chr_file)
Chris PeBenito c0868a
#
Chris PeBenito c0868a
define(`getattr_chr_file_perms',`{ getattr }')
Chris PeBenito c0868a
define(`setattr_chr_file_perms',`{ setattr }')
Chris PeBenito 0b36a2
define(`read_chr_file_perms',`{ getattr open read lock ioctl }')
Chris PeBenito 0b36a2
define(`append_chr_file_perms',`{ getattr open append lock ioctl }')
Chris PeBenito 0b36a2
define(`write_chr_file_perms',`{ getattr open write append lock ioctl }')
Chris PeBenito 0b36a2
define(`rw_chr_file_perms',`{ getattr open read write append ioctl lock }')
Chris PeBenito c0868a
define(`create_chr_file_perms',`{ getattr create }')
Chris PeBenito c0868a
define(`rename_chr_file_perms',`{ getattr rename }')
Chris PeBenito c0868a
define(`delete_chr_file_perms',`{ getattr unlink }')
Chris PeBenito cbe82b
define(`manage_chr_file_perms',`{ create open getattr setattr read write append rename link unlink ioctl lock }')
Chris PeBenito c0868a
define(`relabelfrom_chr_file_perms',`{ getattr relabelfrom }')
Chris PeBenito c0868a
define(`relabelto_chr_file_perms',`{ getattr relabelto }')
Chris PeBenito c0868a
define(`relabel_chr_file_perms',`{ getattr relabelfrom relabelto }')
Chris PeBenito c0868a
Chris PeBenito c0868a
########################################
Chris PeBenito c0868a
#
Chris PeBenito c0868a
# Special permission sets
Chris PeBenito c0868a
#
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Use (read and write) terminals
Chris PeBenito 17de1b
#
Chris PeBenito 0b36a2
define(`rw_term_perms', `{ getattr open read write ioctl }')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
# Sockets
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
define(`client_stream_socket_perms', `{ create ioctl read getattr write setattr append bind getopt setopt shutdown }')
Chris PeBenito 17de1b
define(`server_stream_socket_perms', `{ client_stream_socket_perms listen accept }')
Chris PeBenito c8d563
Chris PeBenito c8d563
#
Chris PeBenito c8d563
# Keys
Chris PeBenito c8d563
#
Chris PeBenito c8d563
define(`manage_key_perms', `{ create link read search setattr view write } ')