| .TH "selinux_file_context_cmp" "3" "08 March 2011" "SELinux API documentation" |
| .SH "NAME" |
| selinux_file_context_cmp \- Compare two SELinux security contexts excluding the 'user' component |
| . |
| .SH "SYNOPSIS" |
| .B #include <selinux/selinux.h> |
| .sp |
| .BI "int selinux_file_context_cmp(const char *" a ", " |
| .RS |
| .BI "const char *" b ");" |
| .RE |
| . |
| .SH "DESCRIPTION" |
| .BR selinux_file_context_cmp () |
| compares two context strings excluding the user component with |
| .BR strcmp (3) |
| as shown in the |
| .B EXAMPLE |
| section. |
| .sp |
| This is useful as for most object contexts, the user component is not relevant. |
| . |
| .SH "RETURN VALUE" |
| The return values follow the |
| .BR strcmp (3) |
| function, where: |
| .RS |
| 0 if they are equal. |
| .RE |
| .RS |
| 1 if |
| .I a |
| is greater than |
| .I b |
| .RE |
| .RS |
| \-1 if |
| .I a |
| is less than |
| .I b |
| .RE |
| . |
| .SH "ERRORS" |
| None. |
| . |
| .SH "NOTES" |
| The contexts being compared do not specifically need to be file contexts. |
| . |
| .SH "EXAMPLE" |
| If context |
| .I a |
| is: |
| .RS |
| user_u:user_r:user_t:s0 |
| .RE |
| .sp |
| and context |
| .I b |
| is: |
| .RS |
| root:user_r:user_t:s0 |
| .RE |
| .sp |
| then the actual strings compared are: |
| .RS |
| :user_r:user_t:s0 and :user_r:user_t:s0 |
| .RE |
| .sp |
| Therefore they will match and |
| .BR selinux_file_context_cmp () |
| will return zero. |
| . |
| .SH "SEE ALSO" |
| .BR selinux "(8)" |