selinux\_raw\_context\_to\_color(3) Library Functions Manual selinux\_raw\_context\_to\_color(3)

# [NAME](#NAME)

selinux\_raw\_context\_to\_color - Return RGB color string for an SELinux security context

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;selinux/selinux.h&gt;**

**int selinux\_raw\_context\_to\_color(const char \*raw,**

**char \*\*color\_str);**

# [DESCRIPTION](#DESCRIPTION)

**selinux\_raw\_context\_to\_color**() returns a *color\_str* associated to the raw context *raw* provided that the [**mcstransd**(8)](/man/os/libselinux/mcstransd.8) daemon is running, the policy is an MLS type policy (MCS or MLS) and there is a color configuration file [**secolor.conf**(5)](/man/os/libselinux/secolor.conf.5) (see the **FILES** section).

The *color\_str* string is a space separated list of eight hexadecimal RGB triples, each prefixed by a hash character (#). These represent the user:role:type:range components of the foreground and background colors. An example string is shown in the **EXAMPLE** section.

The returned *color\_str* string must be freed with [**free**(3)](/man/os/libselinux/free.3).

If a color has not been configured for a specific user, role, type and/or range component of context *raw*, then **selinux\_raw\_context\_to\_color**() will select the color returned in *color\_str* in order of precedence as follows:

role, type, range  
user, type, range  
user, role, range  
user, role, type

If there are no entries in the [**secolor.conf**(5)](/man/os/libselinux/secolor.conf.5) file for any of the components of context *raw* (or the file is not present), then the default string returned in *color\_str* is:

----- user ---- ---- role ---- ---- type ---- ---- range ----  
#000000 #ffffff #000000 #ffffff #000000 #ffffff #000000 #ffffff

# [RETURN VALUE](#RETURN_VALUE)

On success, zero is returned.  
On failure, -1 is returned with *errno* set appropriately.

# [ERRORS](#ERRORS)

**ENOENT** If the [**mcstransd**(8)](/man/os/libselinux/mcstransd.8) daemon is not running.

# [FILES](#FILES)

**selinux\_raw\_context\_to\_color**() obtains the translated entry from the active policy [**secolor.conf**(5)](/man/os/libselinux/secolor.conf.5) file as returned by [**selinux\_colors\_path**(3)](/man/os/libselinux/selinux_colors_path.3). The file format is described in [**secolor.conf**(5)](/man/os/libselinux/secolor.conf.5).

# [NOTES](#NOTES)

1\. The primary use of **selinux\_raw\_context\_to\_color**() is to return a color that corresponds to a range, that can then be used to highlight information at different MLS levels.

2\. The [**mcstransd**(8)](/man/os/libselinux/mcstransd.8) daemon process security level must dominate the *raw* security level passed to it by the **selinux\_raw\_context\_to\_color**() function. If not, the range color selected will be as defined by the order of precedence.

# [EXAMPLE](#EXAMPLE)

**selinux\_raw\_context\_to\_color**() returns the foreground and background colors of the context string components (user:role:type:range) as RGB triples as follows:

user : role : type : range  
fg bg : fg bg : fg bg : fg bg  
#000000 #ffffff #ffffff #000000 #d2b48c #ffa500 #000000 #008000  
black white : white black : tan orange : black green

# [SEE ALSO](#SEE_ALSO)

[**selinux**(8)](/man/os/libselinux/selinux.8), [**selinux\_colors\_path**(3)](/man/os/libselinux/selinux_colors_path.3), [**mcstransd**(8)](/man/os/libselinux/mcstransd.8), [**secolor.conf**(5)](/man/os/libselinux/secolor.conf.5), [**selinux\_raw\_to\_trans\_context**(3)](/man/os/libselinux/selinux_raw_to_trans_context.3), [**selinux\_trans\_to\_raw\_context**(3)](/man/os/libselinux/selinux_trans_to_raw_context.3), [**free**(3)](/man/os/libselinux/free.3)

08 April 2011 SELinux API documentation

---

Document: selinux_raw_context_to_color(3) from libselinux 3.11-r2 (Chainguard OS)
Source: https://github.com/SELinuxProject/selinux.git
