semanage_modify — SELinux Management API

Synopsis

The following modify function is supported for any semanage record.
Replace the function and object name as necessary.

extern int MODIFY_FUNCTION (
semanage_handle_t *handle,
const semanage_OBJECT_key_t *key,
const semanage_OBJECT_t *data);

Description

Behavior:

If a matching key is found in the local store, the provided object will replace the current one. Otherwise, it will be added to the store. When semanage_commit(3) is invoked, changes will be permanently written into the local store, and then loaded into policy. Validity of the object being added is checked at commit time. Adding new objects with respect to policy is allowed, except in the case of booleans. Attempt to add new booleans with respect to policy will fail at commit time.

Parameters:

The handle is used to track persistent state across semanage calls, and for error reporting. The key identifies the data object, which will be written into the store. The key are data are properties of the caller, and are not stored or modified internally.

Requirements:

This function requires an semanage connection to be established (see semanage_connect(3) ), and must be executed in a transaction (see semanage_begin_transaction(3) ).

Return Value

In case of failure, -1 is returned, and the semanage error callback is invoked, describing the error. Otherwise 0 is returned.

See Also

semanage_handle_create(3), semanage_begin_transaction(3), semanage_connect(3), semanage_commit(3).

Referenced By

semanage_bool(3), semanage_fcontext(3), semanage_iface(3), semanage_node(3), semanage_port(3), semanage_seuser(3), semanage_user(3).

The man pages semanage_bool_modify_local(3), semanage_fcontext_modify_local(3), semanage_iface_modify_local(3), semanage_node_modify_local(3), semanage_port_modify_local(3), semanage_seuser_modify_local(3) and semanage_user_modify_local(3) are aliases of semanage_modify(3).

16 March 2006 ivg2@cornell.edu Libsemanage API documentation