This screen shows application types that are defined for process running with the '%(APP)s' type.


The description should give you a decent description for what the application is allowed to do with the type.   If your application type is being denied access to a particular file, you might want to change the label of that file.

It is recommended that you use one of the types defined on this page.

Note if the label of the content that is being denied is owned by another domain, you might have to write policy or use 'audit2allow -M mypol' to allow access.
