Rights are associated with handles and convey privileges to perform actions on either the associated handle or the object associated with the handle.

The <magenta/rights.h> header defines default rights for each object type, which can be reduced via mx_handle_replace() or mx_handle_duplicate().

RightConferred Privileges
MX_RIGHT_DUPLICATEAllows handle duplication via mx_handle_duplicate
MX_RIGHT_TRANSFERAllows handle transfer via mx_channel_write
MX_RIGHT_READAllows inspection of object state
Allows reading of data from containers (channels, sockets, VM objects, etc)
MX_RIGHT_WRITEAllows modification of object state
Allows writing of data to containers (channels, sockets, VM objects, etc)
MX_RIGHT_DEBUGPlaceholder for debugger use, pending audit of all rights usage

See also

Objects, Magenta Handles