---
name: "selinux_raw_context_to_color"
section: "3"
platform: "linux"
package: "libselinux1-dev"
version: "3.8.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/selinux_raw_context_to_color"
---

# selinux\_raw\_context\_to\_color(3)

Return RGB color string for an SELinux security context

## NAME

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

## SYNOPSIS

**#include \<selinux/selinux.h\>**

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

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

## DESCRIPTION

**selinux\_raw\_context\_to\_color**() returns a  *color\_str* associated to the raw context  *raw* provided that the  [**mcstransd**(8)](/mcstransd/8.md) daemon is running, the policy is an MLS type policy (MCS or MLS) and there is a color configuration file [**secolor.conf**(5)](/secolor.conf/5.md) (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)](/free/3.md).

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)](/secolor.conf/5.md) 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

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

## ERRORS

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

## FILES

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

## 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)](/mcstransd/8.md) 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

**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

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