
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://selinuxproject.org/w/skins/common/feed.css?63"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>TypeStatements - Revision history</title>
		<link>http://selinuxproject.org/w/?title=TypeStatements&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.10.4</generator>
		<lastBuildDate>Sun, 19 May 2013 04:24:05 GMT</lastBuildDate>
		<item>
			<title>RichardHaines: New page: = Type Enforcement and Attribute Statements = These statements share the same namespace, therefore the general convention is to use '_' as the final two characters of a type identifier to ...</title>
			<link>http://selinuxproject.org/w/?title=TypeStatements&amp;diff=835&amp;oldid=prev</link>
			<description>&lt;p&gt;New page: = Type Enforcement and Attribute Statements = These statements share the same namespace, therefore the general convention is to use '_' as the final two characters of a type identifier to ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Type Enforcement and Attribute Statements =&lt;br /&gt;
These statements share the same namespace, therefore the general convention is to use '_' as the final two characters of a type identifier to differentiate it from an attribute identifier as shown in the following examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Statement&amp;lt;/nowiki&amp;gt;      Identifier      Comment&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#---------------------------------------------------&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
type             bin_t;&amp;lt;nowiki&amp;gt;          # A type identifier ends with _t&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
attribute        file_type;&amp;lt;nowiki&amp;gt;      # An attribute identifier ends with &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;                                 # anything else&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== type Statement ==&lt;br /&gt;
The type statement declares the type identifier and any optional associated alias or attribute identifiers. Type identifiers are the main component of a Security Context. &lt;br /&gt;
&lt;br /&gt;
'''The statement definition is:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type type_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Or'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type type_id ,attribute_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Or'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type type_id alias alias_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Or'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type type_id alias alias_id ,attribute_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Where:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|type&lt;br /&gt;
|The type keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type_id&lt;br /&gt;
|The type identifier.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|alias&lt;br /&gt;
|Optional alias keyword that signifies alternate identifiers for the type_id that are declared in the alias_id list.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|alias_id&lt;br /&gt;
|One or more alias identifiers. Multiple entries consist of a space separated list enclosed in braces ({}).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|attribute_id&lt;br /&gt;
|One or more optional attribute identifiers that have been previously declared by the attribute Statement. Multiple entries consist of a comma (,) separated list, also note the lead comma.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The statement is valid in:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Monolithic Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Base Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Module Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Conditional Policy (if) Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''optional Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''require Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of shell_exec_t, &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# where &amp;lt;/nowiki&amp;gt;exec_t is used to identify a file as an executable type.&lt;br /&gt;
&lt;br /&gt;
type shell_exec_t;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of bin_t, where&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;bin_t is used to identify a file as an ordinary program type.&lt;br /&gt;
&lt;br /&gt;
type bin_t;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of bin_t with two &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# alias names. The &amp;lt;/nowiki&amp;gt;sbin_t is used to identify the file as a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# system admin program type.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type bin_t alias { ls_exec_t sbin_t };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of boolean_t that &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# also associates it to a previously declared attribute &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;booleans_type (see the attribute Statement).&lt;br /&gt;
&lt;br /&gt;
attribute booleans_type;&amp;lt;nowiki&amp;gt;# declare the attribute&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type boolean_t, booleans_type;&amp;lt;nowiki&amp;gt;# and associate with the type&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of setfiles_t that &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# also has an alias of &amp;lt;/nowiki&amp;gt;restorecon_t and one previously declared&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# attribute of &amp;lt;/nowiki&amp;gt;can_relabelto_binary_policy associated with it.&lt;br /&gt;
&lt;br /&gt;
attribute can_relabelto_binary_policy;&lt;br /&gt;
&lt;br /&gt;
type setfiles_t alias restorecon_t, can_relabelto_binary_policy;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;type statement to declare a type of&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;ssh_server_packet_t that also associates it to two previously&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# declared attributes &amp;lt;/nowiki&amp;gt;packet_type and server_packet_type.&lt;br /&gt;
&lt;br /&gt;
attribute packet_type&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;# declare attribute 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
attribute server_packet_type&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;# declare attribute 2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Associate the type identifier with the two attributes:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type ssh_server_packet_t, packet_type, server_packet_type;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== attribute Statement ==&lt;br /&gt;
An attribute statement declares an identifier that can then be used to refer to a group of types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The statement definition is:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attribute attribute_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Where:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|attribute&lt;br /&gt;
|The attribute keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|attribute_id&lt;br /&gt;
|The attribute identifier.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The statement is valid in:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Monolithic Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Base Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Module Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Conditional Policy (if) Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''optional Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''require Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;attribute statement to declare attributes domain, &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;daemon, file_type and non_security_file_type:&lt;br /&gt;
&lt;br /&gt;
attribute domain;&lt;br /&gt;
attribute daemon;&lt;br /&gt;
attribute file_type;&lt;br /&gt;
attribute non_security_file_type;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== typeattribute Statement ==&lt;br /&gt;
The typeattribute statement allows the association of previously declared types to one or more previously declared attributes. &lt;br /&gt;
&lt;br /&gt;
'''The statement definition is:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;typeattribute type_id attribute_id [ ,attribute_id ];&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|typeattribute&lt;br /&gt;
|The typeattribute keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type_id&lt;br /&gt;
|The identifier of a previously declared type.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|attribute_id&lt;br /&gt;
|One or more previously declared attribute identifiers. Multiple entries consist of a comma (,) separated list.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The statement is valid in:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Monolithic Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Base Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Module Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Conditional Policy (if) Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''optional Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''require Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Using the typeattribute statement to associate a previously &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# declared type of&amp;lt;/nowiki&amp;gt; setroubleshootd_t to a previously declared &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;domain attribute.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# The previously declared attribute:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
attribute domain;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# The previously declared type:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type setroubleshootd_t;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# The association using the typeattribute statement:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
typeattribute setroubleshootd_t domain;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Using the typeattribute statement to associate a type of&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; setroubleshootd_exec_t to two attributes file_type and &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;non_security_file_type. &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# These are the previously declared attributes:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
attribute file_type;&lt;br /&gt;
attribute non_security_file_type;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# The previously declared type:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type setroubleshootd_exec_t;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# These are the associations using the &amp;lt;/nowiki&amp;gt;typeattribute statement:&lt;br /&gt;
&lt;br /&gt;
typeattribute setroubleshootd_exec_t file_type, non_security_file_type;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== typealias Statement ==&lt;br /&gt;
The typealias statement allows the association of a previously declared type to one or more alias identifiers (an alternative way is to use the type Statement). &lt;br /&gt;
&lt;br /&gt;
'''The statement definition is:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typealias type_id alias alias_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|typealias&lt;br /&gt;
|The typealias keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type_id&lt;br /&gt;
|The identifier of a previously declared type.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|alias&lt;br /&gt;
|The alias keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|alias_id&lt;br /&gt;
|One or more alias identifiers. Multiple entries consist of a space separated list enclosed in braces ({}).&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The statement is valid in:'''&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Monolithic Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Base Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Module Policy'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Conditional Policy (if) Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''optional Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''require Statement'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;typealias statement to associate the previously &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# declared type &amp;lt;/nowiki&amp;gt;mount_t with an alias of mount_ntfs_t.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Declare the type:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type mount_t;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Then alias the identifier:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
typealias mount_t alias mount_ntfs_t;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Using the &amp;lt;/nowiki&amp;gt;typealias statement to associate the previously &lt;br /&gt;
&amp;lt;nowiki&amp;gt;# declared type &amp;lt;/nowiki&amp;gt;netif_t with two alias, lo_netif_t and netif_lo_t.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Declare the type:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
type netif_t;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Then assign two alias identifiers &amp;lt;/nowiki&amp;gt;lo_netif_t and netif_lo_t:&lt;br /&gt;
&lt;br /&gt;
typealias netif_t alias { lo_netif_t netif_lo_t };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sun, 29 Nov 2009 14:31:21 GMT</pubDate>			<dc:creator>RichardHaines</dc:creator>			<comments>http://selinuxproject.org/page/Talk:TypeStatements</comments>		</item>
	</channel>
</rss>