Home | History | Annotate | Download | only in sepolicy
      1 #
      2 # Define common prefixes for access vectors
      3 #
      4 # common common_name { permission_name ... }
      5 
      6 
      7 #
      8 # Define a common prefix for file access vectors.
      9 #
     10 
     11 common file
     12 {
     13 	ioctl
     14 	read
     15 	write
     16 	create
     17 	getattr
     18 	setattr
     19 	lock
     20 	relabelfrom
     21 	relabelto
     22 	append
     23 	unlink
     24 	link
     25 	rename
     26 	execute
     27 	swapon
     28 	quotaon
     29 	mounton
     30 }
     31 
     32 
     33 #
     34 # Define a common prefix for socket access vectors.
     35 #
     36 
     37 common socket
     38 {
     39 # inherited from file
     40 	ioctl
     41 	read
     42 	write
     43 	create
     44 	getattr
     45 	setattr
     46 	lock
     47 	relabelfrom
     48 	relabelto
     49 	append
     50 # socket-specific
     51 	bind
     52 	connect
     53 	listen
     54 	accept
     55 	getopt
     56 	setopt
     57 	shutdown
     58 	recvfrom
     59 	sendto
     60 	recv_msg
     61 	send_msg
     62 	name_bind
     63 }
     64 
     65 #
     66 # Define a common prefix for ipc access vectors.
     67 #
     68 
     69 common ipc
     70 {
     71 	create
     72 	destroy
     73 	getattr
     74 	setattr
     75 	read
     76 	write
     77 	associate
     78 	unix_read
     79 	unix_write
     80 }
     81 
     82 #
     83 # Define the access vectors.
     84 #
     85 # class class_name [ inherits common_name ] { permission_name ... }
     86 
     87 
     88 #
     89 # Define the access vector interpretation for file-related objects.
     90 #
     91 
     92 class filesystem
     93 {
     94 	mount
     95 	remount
     96 	unmount
     97 	getattr
     98 	relabelfrom
     99 	relabelto
    100 	transition
    101 	associate
    102 	quotamod
    103 	quotaget
    104 }
    105 
    106 class dir
    107 inherits file
    108 {
    109 	add_name
    110 	remove_name
    111 	reparent
    112 	search
    113 	rmdir
    114 	open
    115 	audit_access
    116 	execmod
    117 }
    118 
    119 class file
    120 inherits file
    121 {
    122 	execute_no_trans
    123 	entrypoint
    124 	execmod
    125 	open
    126 	audit_access
    127 }
    128 
    129 class lnk_file
    130 inherits file
    131 {
    132 	open
    133 	audit_access
    134 	execmod
    135 }
    136 
    137 class chr_file
    138 inherits file
    139 {
    140 	execute_no_trans
    141 	entrypoint
    142 	execmod
    143 	open
    144 	audit_access
    145 }
    146 
    147 class blk_file
    148 inherits file
    149 {
    150 	open
    151 	audit_access
    152 	execmod
    153 }
    154 
    155 class sock_file
    156 inherits file
    157 {
    158 	open
    159 	audit_access
    160 	execmod
    161 }
    162 
    163 class fifo_file
    164 inherits file
    165 {
    166 	open
    167 	audit_access
    168 	execmod
    169 }
    170 
    171 class fd
    172 {
    173 	use
    174 }
    175 
    176 
    177 #
    178 # Define the access vector interpretation for network-related objects.
    179 #
    180 
    181 class socket
    182 inherits socket
    183 
    184 class tcp_socket
    185 inherits socket
    186 {
    187 	connectto
    188 	newconn
    189 	acceptfrom
    190 	node_bind
    191 	name_connect
    192 }
    193 
    194 class udp_socket
    195 inherits socket
    196 {
    197 	node_bind
    198 }
    199 
    200 class rawip_socket
    201 inherits socket
    202 {
    203 	node_bind
    204 }
    205 
    206 class node
    207 {
    208 	tcp_recv
    209 	tcp_send
    210 	udp_recv
    211 	udp_send
    212 	rawip_recv
    213 	rawip_send
    214 	enforce_dest
    215 	dccp_recv
    216 	dccp_send
    217 	recvfrom
    218 	sendto
    219 }
    220 
    221 class netif
    222 {
    223 	tcp_recv
    224 	tcp_send
    225 	udp_recv
    226 	udp_send
    227 	rawip_recv
    228 	rawip_send
    229 	dccp_recv
    230 	dccp_send
    231 	ingress
    232 	egress
    233 }
    234 
    235 class netlink_socket
    236 inherits socket
    237 
    238 class packet_socket
    239 inherits socket
    240 
    241 class key_socket
    242 inherits socket
    243 
    244 class unix_stream_socket
    245 inherits socket
    246 {
    247 	connectto
    248 	newconn
    249 	acceptfrom
    250 }
    251 
    252 class unix_dgram_socket
    253 inherits socket
    254 
    255 #
    256 # Define the access vector interpretation for process-related objects
    257 #
    258 
    259 class process
    260 {
    261 	fork
    262 	transition
    263 	sigchld # commonly granted from child to parent
    264 	sigkill # cannot be caught or ignored
    265 	sigstop # cannot be caught or ignored
    266 	signull # for kill(pid, 0)
    267 	signal  # all other signals
    268 	ptrace
    269 	getsched
    270 	setsched
    271 	getsession
    272 	getpgid
    273 	setpgid
    274 	getcap
    275 	setcap
    276 	share
    277 	getattr
    278 	setexec
    279 	setfscreate
    280 	noatsecure
    281 	siginh
    282 	setrlimit
    283 	rlimitinh
    284 	dyntransition
    285 	setcurrent
    286 	execmem
    287 	execstack
    288 	execheap
    289 	setkeycreate
    290 	setsockcreate
    291 }
    292 
    293 
    294 #
    295 # Define the access vector interpretation for ipc-related objects
    296 #
    297 
    298 class ipc
    299 inherits ipc
    300 
    301 class sem
    302 inherits ipc
    303 
    304 class msgq
    305 inherits ipc
    306 {
    307 	enqueue
    308 }
    309 
    310 class msg
    311 {
    312 	send
    313 	receive
    314 }
    315 
    316 class shm
    317 inherits ipc
    318 {
    319 	lock
    320 }
    321 
    322 
    323 #
    324 # Define the access vector interpretation for the security server.
    325 #
    326 
    327 class security
    328 {
    329 	compute_av
    330 	compute_create
    331 	compute_member
    332 	check_context
    333 	load_policy
    334 	compute_relabel
    335 	compute_user
    336 	setenforce     # was avc_toggle in system class
    337 	setbool
    338 	setsecparam
    339 	setcheckreqprot
    340 	read_policy
    341 }
    342 
    343 
    344 #
    345 # Define the access vector interpretation for system operations.
    346 #
    347 
    348 class system
    349 {
    350 	ipc_info
    351 	syslog_read
    352 	syslog_mod
    353 	syslog_console
    354 	module_request
    355 	module_load
    356 }
    357 
    358 #
    359 # Define the access vector interpretation for controling capabilies
    360 #
    361 
    362 class capability
    363 {
    364 	# The capabilities are defined in include/linux/capability.h
    365 	# Capabilities >= 32 are defined in the capability2 class.
    366 	# Care should be taken to ensure that these are consistent with
    367 	# those definitions. (Order matters)
    368 
    369 	chown
    370 	dac_override
    371 	dac_read_search
    372 	fowner
    373 	fsetid
    374 	kill
    375 	setgid
    376 	setuid
    377 	setpcap
    378 	linux_immutable
    379 	net_bind_service
    380 	net_broadcast
    381 	net_admin
    382 	net_raw
    383 	ipc_lock
    384 	ipc_owner
    385 	sys_module
    386 	sys_rawio
    387 	sys_chroot
    388 	sys_ptrace
    389 	sys_pacct
    390 	sys_admin
    391 	sys_boot
    392 	sys_nice
    393 	sys_resource
    394 	sys_time
    395 	sys_tty_config
    396 	mknod
    397 	lease
    398 	audit_write
    399 	audit_control
    400 	setfcap
    401 }
    402 
    403 class capability2
    404 {
    405 	mac_override	# unused by SELinux
    406 	mac_admin	# unused by SELinux
    407 	syslog
    408 	wake_alarm
    409 	block_suspend
    410 	audit_read
    411 }
    412 
    413 #
    414 # Extended Netlink classes
    415 #
    416 class netlink_route_socket
    417 inherits socket
    418 {
    419 	nlmsg_read
    420 	nlmsg_write
    421 }
    422 
    423 class netlink_firewall_socket
    424 inherits socket
    425 {
    426 	nlmsg_read
    427 	nlmsg_write
    428 }
    429 
    430 class netlink_tcpdiag_socket
    431 inherits socket
    432 {
    433 	nlmsg_read
    434 	nlmsg_write
    435 }
    436 
    437 class netlink_nflog_socket
    438 inherits socket
    439 
    440 class netlink_xfrm_socket
    441 inherits socket
    442 {
    443 	nlmsg_read
    444 	nlmsg_write
    445 }
    446 
    447 class netlink_selinux_socket
    448 inherits socket
    449 
    450 class netlink_audit_socket
    451 inherits socket
    452 {
    453 	nlmsg_read
    454 	nlmsg_write
    455 	nlmsg_relay
    456 	nlmsg_readpriv
    457 	nlmsg_tty_audit
    458 }
    459 
    460 class netlink_ip6fw_socket
    461 inherits socket
    462 {
    463 	nlmsg_read
    464 	nlmsg_write
    465 }
    466 
    467 class netlink_dnrt_socket
    468 inherits socket
    469 
    470 # Define the access vector interpretation for controlling
    471 # access to IPSec network data by association
    472 #
    473 class association
    474 {
    475 	sendto
    476 	recvfrom
    477 	setcontext
    478 	polmatch
    479 }
    480 
    481 # Updated Netlink class for KOBJECT_UEVENT family.
    482 class netlink_kobject_uevent_socket
    483 inherits socket
    484 
    485 class appletalk_socket
    486 inherits socket
    487 
    488 class packet
    489 {
    490 	send
    491 	recv
    492 	relabelto
    493 	flow_in		# deprecated
    494 	flow_out	# deprecated
    495 	forward_in
    496 	forward_out
    497 }
    498 
    499 class key
    500 {
    501 	view
    502 	read
    503 	write
    504 	search
    505 	link
    506 	setattr
    507 	create
    508 }
    509 
    510 class dccp_socket
    511 inherits socket
    512 {
    513 	node_bind
    514 	name_connect
    515 }
    516 
    517 class memprotect
    518 {
    519 	mmap_zero
    520 }
    521 
    522 # network peer labels
    523 class peer
    524 {
    525 	recv
    526 }
    527 
    528 class kernel_service
    529 {
    530 	use_as_override
    531 	create_files_as
    532 }
    533 
    534 class tun_socket
    535 inherits socket
    536 {
    537 	attach_queue
    538 }
    539 
    540 class binder
    541 {
    542 	impersonate
    543 	call
    544 	set_context_mgr
    545 	transfer
    546 }
    547 
    548 class netlink_iscsi_socket
    549 inherits socket
    550 
    551 class netlink_fib_lookup_socket
    552 inherits socket
    553 
    554 class netlink_connector_socket
    555 inherits socket
    556 
    557 class netlink_netfilter_socket
    558 inherits socket
    559 
    560 class netlink_generic_socket
    561 inherits socket
    562 
    563 class netlink_scsitransport_socket
    564 inherits socket
    565 
    566 class netlink_rdma_socket
    567 inherits socket
    568 
    569 class netlink_crypto_socket
    570 inherits socket
    571 
    572 class property_service
    573 {
    574 	set
    575 }
    576 
    577 class service_manager
    578 {
    579 	add
    580 	find
    581 	list
    582 }
    583 
    584 class keystore_key
    585 {
    586 	get_state
    587 	get
    588 	insert
    589 	delete
    590 	exist
    591 	list
    592 	reset
    593 	password
    594 	lock
    595 	unlock
    596 	is_empty
    597 	sign
    598 	verify
    599 	grant
    600 	duplicate
    601 	clear_uid
    602 	add_auth
    603 	user_changed
    604 }
    605 
    606 class debuggerd
    607 {
    608 	dump_tombstone
    609 	dump_backtrace
    610 }
    611 
    612 class drmservice {
    613 	consumeRights
    614 	setPlaybackStatus
    615 	openDecryptSession
    616 	closeDecryptSession
    617 	initializeDecryptUnit
    618 	decrypt
    619 	finalizeDecryptUnit
    620 	pread
    621 }
    622