1*2d543d20SAndroid Build Coastguard WorkerRole Statements 2*2d543d20SAndroid Build Coastguard Worker=============== 3*2d543d20SAndroid Build Coastguard Worker 4*2d543d20SAndroid Build Coastguard Workerrole 5*2d543d20SAndroid Build Coastguard Worker---- 6*2d543d20SAndroid Build Coastguard Worker 7*2d543d20SAndroid Build Coastguard WorkerDeclares a role identifier in the current namespace. 8*2d543d20SAndroid Build Coastguard Worker 9*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 10*2d543d20SAndroid Build Coastguard Worker 11*2d543d20SAndroid Build Coastguard Worker```secil 12*2d543d20SAndroid Build Coastguard Worker (role role_id) 13*2d543d20SAndroid Build Coastguard Worker``` 14*2d543d20SAndroid Build Coastguard Worker 15*2d543d20SAndroid Build Coastguard Worker**Where:** 16*2d543d20SAndroid Build Coastguard Worker 17*2d543d20SAndroid Build Coastguard Worker<table> 18*2d543d20SAndroid Build Coastguard Worker<colgroup> 19*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 20*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 21*2d543d20SAndroid Build Coastguard Worker</colgroup> 22*2d543d20SAndroid Build Coastguard Worker<tbody> 23*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 24*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>role</code></p></td> 25*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>role</code> keyword.</p></td> 26*2d543d20SAndroid Build Coastguard Worker</tr> 27*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 28*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>role_id</code></p></td> 29*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>role</code> identifier.</p></td> 30*2d543d20SAndroid Build Coastguard Worker</tr> 31*2d543d20SAndroid Build Coastguard Worker</tbody> 32*2d543d20SAndroid Build Coastguard Worker</table> 33*2d543d20SAndroid Build Coastguard Worker 34*2d543d20SAndroid Build Coastguard Worker**Example:** 35*2d543d20SAndroid Build Coastguard Worker 36*2d543d20SAndroid Build Coastguard WorkerThis example declares two roles: `object_r` in the global namespace and `unconfined.role`: 37*2d543d20SAndroid Build Coastguard Worker 38*2d543d20SAndroid Build Coastguard Worker```secil 39*2d543d20SAndroid Build Coastguard Worker (role object_r) 40*2d543d20SAndroid Build Coastguard Worker 41*2d543d20SAndroid Build Coastguard Worker (block unconfined 42*2d543d20SAndroid Build Coastguard Worker (role role) 43*2d543d20SAndroid Build Coastguard Worker ) 44*2d543d20SAndroid Build Coastguard Worker``` 45*2d543d20SAndroid Build Coastguard Worker 46*2d543d20SAndroid Build Coastguard Workerroletype 47*2d543d20SAndroid Build Coastguard Worker-------- 48*2d543d20SAndroid Build Coastguard Worker 49*2d543d20SAndroid Build Coastguard WorkerAuthorises a [`role`](cil_role_statements.md#role) to access a [`type`](cil_type_statements.md#type) identifier. 50*2d543d20SAndroid Build Coastguard Worker 51*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 52*2d543d20SAndroid Build Coastguard Worker 53*2d543d20SAndroid Build Coastguard Worker```secil 54*2d543d20SAndroid Build Coastguard Worker (role role_id type_id) 55*2d543d20SAndroid Build Coastguard Worker``` 56*2d543d20SAndroid Build Coastguard Worker 57*2d543d20SAndroid Build Coastguard Worker**Where:** 58*2d543d20SAndroid Build Coastguard Worker 59*2d543d20SAndroid Build Coastguard Worker<table> 60*2d543d20SAndroid Build Coastguard Worker<colgroup> 61*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 62*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 63*2d543d20SAndroid Build Coastguard Worker</colgroup> 64*2d543d20SAndroid Build Coastguard Worker<tbody> 65*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 66*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roletype</code></p></td> 67*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roletype</code> keyword.</p></td> 68*2d543d20SAndroid Build Coastguard Worker</tr> 69*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 70*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>role_id</code></p></td> 71*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> or <code>roleattribute</code> identifier.</p></td> 72*2d543d20SAndroid Build Coastguard Worker</tr> 73*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 74*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>type_id</code></p></td> 75*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>type</code>, <code>typealias</code> or <code>typeattribute</code> identifier.</p></td> 76*2d543d20SAndroid Build Coastguard Worker</tr> 77*2d543d20SAndroid Build Coastguard Worker</tbody> 78*2d543d20SAndroid Build Coastguard Worker</table> 79*2d543d20SAndroid Build Coastguard Worker 80*2d543d20SAndroid Build Coastguard Worker**Example:** 81*2d543d20SAndroid Build Coastguard Worker 82*2d543d20SAndroid Build Coastguard WorkerThis example will declare [`role`](cil_role_statements.md#role) and [`type`](cil_type_statements.md#type) identifiers, then associate them: 83*2d543d20SAndroid Build Coastguard Worker 84*2d543d20SAndroid Build Coastguard Worker```secil 85*2d543d20SAndroid Build Coastguard Worker (block unconfined 86*2d543d20SAndroid Build Coastguard Worker (role role) 87*2d543d20SAndroid Build Coastguard Worker (type process) 88*2d543d20SAndroid Build Coastguard Worker (roletype role process) 89*2d543d20SAndroid Build Coastguard Worker ) 90*2d543d20SAndroid Build Coastguard Worker``` 91*2d543d20SAndroid Build Coastguard Worker 92*2d543d20SAndroid Build Coastguard Workerroleattribute 93*2d543d20SAndroid Build Coastguard Worker------------- 94*2d543d20SAndroid Build Coastguard Worker 95*2d543d20SAndroid Build Coastguard WorkerDeclares a role attribute identifier in the current namespace. The identifier may have zero or more [`role`](cil_role_statements.md#role) and [`roleattribute`](cil_role_statements.md#roleattribute) identifiers associated to it via the [`roleattributeset`](cil_role_statements.md#roleattributeset) statement. 96*2d543d20SAndroid Build Coastguard Worker 97*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 98*2d543d20SAndroid Build Coastguard Worker 99*2d543d20SAndroid Build Coastguard Worker```secil 100*2d543d20SAndroid Build Coastguard Worker (roleattribute roleattribute_id) 101*2d543d20SAndroid Build Coastguard Worker``` 102*2d543d20SAndroid Build Coastguard Worker 103*2d543d20SAndroid Build Coastguard Worker**Where:** 104*2d543d20SAndroid Build Coastguard Worker 105*2d543d20SAndroid Build Coastguard Worker<table> 106*2d543d20SAndroid Build Coastguard Worker<colgroup> 107*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 108*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 109*2d543d20SAndroid Build Coastguard Worker</colgroup> 110*2d543d20SAndroid Build Coastguard Worker<tbody> 111*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 112*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roleattribute</code></p></td> 113*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roleattribute</code> keyword.</p></td> 114*2d543d20SAndroid Build Coastguard Worker</tr> 115*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 116*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roleattribute_id</code></p></td> 117*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roleattribute</code> identifier.</p></td> 118*2d543d20SAndroid Build Coastguard Worker</tr> 119*2d543d20SAndroid Build Coastguard Worker</tbody> 120*2d543d20SAndroid Build Coastguard Worker</table> 121*2d543d20SAndroid Build Coastguard Worker 122*2d543d20SAndroid Build Coastguard Worker**Example:** 123*2d543d20SAndroid Build Coastguard Worker 124*2d543d20SAndroid Build Coastguard WorkerThis example will declare a role attribute `roles.role_holder` that will have an empty set: 125*2d543d20SAndroid Build Coastguard Worker 126*2d543d20SAndroid Build Coastguard Worker```secil 127*2d543d20SAndroid Build Coastguard Worker (block roles 128*2d543d20SAndroid Build Coastguard Worker (roleattribute role_holder) 129*2d543d20SAndroid Build Coastguard Worker ) 130*2d543d20SAndroid Build Coastguard Worker``` 131*2d543d20SAndroid Build Coastguard Worker 132*2d543d20SAndroid Build Coastguard Workerroleattributeset 133*2d543d20SAndroid Build Coastguard Worker---------------- 134*2d543d20SAndroid Build Coastguard Worker 135*2d543d20SAndroid Build Coastguard WorkerAllows the association of one or more previously declared [`role`](cil_role_statements.md#role) identifiers to a [`roleattribute`](cil_role_statements.md#roleattribute) identifier. Expressions may be used to refine the associations as shown in the examples. 136*2d543d20SAndroid Build Coastguard Worker 137*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 138*2d543d20SAndroid Build Coastguard Worker 139*2d543d20SAndroid Build Coastguard Worker```secil 140*2d543d20SAndroid Build Coastguard Worker (roleattributeset roleattribute_id (role_id ... | expr ...)) 141*2d543d20SAndroid Build Coastguard Worker``` 142*2d543d20SAndroid Build Coastguard Worker 143*2d543d20SAndroid Build Coastguard Worker**Where:** 144*2d543d20SAndroid Build Coastguard Worker 145*2d543d20SAndroid Build Coastguard Worker<table> 146*2d543d20SAndroid Build Coastguard Worker<colgroup> 147*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 148*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 149*2d543d20SAndroid Build Coastguard Worker</colgroup> 150*2d543d20SAndroid Build Coastguard Worker<tbody> 151*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 152*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roleattributeset</code></p></td> 153*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roleattributeset</code> keyword.</p></td> 154*2d543d20SAndroid Build Coastguard Worker</tr> 155*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 156*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roleattribute_id</code></p></td> 157*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>roleattribute</code> identifier.</p></td> 158*2d543d20SAndroid Build Coastguard Worker</tr> 159*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 160*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>role_id</code></p></td> 161*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>Zero or more previously declared <code>role</code> or <code>roleattribute</code> identifiers.</p> 162*2d543d20SAndroid Build Coastguard Worker<p>Note that there must be at least one <code>role_id</code> or <code>expr</code> parameter declared.</p></td> 163*2d543d20SAndroid Build Coastguard Worker</tr> 164*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 165*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>expr</code></p></td> 166*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>Zero or more <code>expr</code>'s, the valid operators and syntax are:</p> 167*2d543d20SAndroid Build Coastguard Worker<p><code> (and (role_id ...) (role_id ...))</code></p> 168*2d543d20SAndroid Build Coastguard Worker<p><code> (or (role_id ...) (role_id ...))</code></p> 169*2d543d20SAndroid Build Coastguard Worker<p><code> (xor (role_id ...) (role_id ...))</code></p> 170*2d543d20SAndroid Build Coastguard Worker<p><code> (not (role_id ...))</code></p> 171*2d543d20SAndroid Build Coastguard Worker<p><code> (all)</code></p></td> 172*2d543d20SAndroid Build Coastguard Worker</tr> 173*2d543d20SAndroid Build Coastguard Worker</tbody> 174*2d543d20SAndroid Build Coastguard Worker</table> 175*2d543d20SAndroid Build Coastguard Worker 176*2d543d20SAndroid Build Coastguard Worker**Example:** 177*2d543d20SAndroid Build Coastguard Worker 178*2d543d20SAndroid Build Coastguard WorkerThis example will declare three roles and two role attributes, then associate all the roles to them as shown: 179*2d543d20SAndroid Build Coastguard Worker 180*2d543d20SAndroid Build Coastguard Worker```secil 181*2d543d20SAndroid Build Coastguard Worker (block roles 182*2d543d20SAndroid Build Coastguard Worker (role role_1) 183*2d543d20SAndroid Build Coastguard Worker (role role_2) 184*2d543d20SAndroid Build Coastguard Worker (role role_3) 185*2d543d20SAndroid Build Coastguard Worker 186*2d543d20SAndroid Build Coastguard Worker (roleattribute role_holder) 187*2d543d20SAndroid Build Coastguard Worker (roleattributeset role_holder (role_1 role_2 role_3)) 188*2d543d20SAndroid Build Coastguard Worker 189*2d543d20SAndroid Build Coastguard Worker (roleattribute role_holder_all) 190*2d543d20SAndroid Build Coastguard Worker (roleattributeset role_holder_all (all)) 191*2d543d20SAndroid Build Coastguard Worker ) 192*2d543d20SAndroid Build Coastguard Worker``` 193*2d543d20SAndroid Build Coastguard Worker 194*2d543d20SAndroid Build Coastguard Workerroleallow 195*2d543d20SAndroid Build Coastguard Worker--------- 196*2d543d20SAndroid Build Coastguard Worker 197*2d543d20SAndroid Build Coastguard WorkerAuthorise the current role to assume a new role. 198*2d543d20SAndroid Build Coastguard Worker 199*2d543d20SAndroid Build Coastguard WorkerNotes: 200*2d543d20SAndroid Build Coastguard Worker 201*2d543d20SAndroid Build Coastguard Worker- May require a [`roletransition`](cil_role_statements.md#roletransition) rule to ensure transition to the new role. 202*2d543d20SAndroid Build Coastguard Worker 203*2d543d20SAndroid Build Coastguard Worker- This rule is not allowed in [`booleanif`](cil_conditional_statements.md#booleanif) statements. 204*2d543d20SAndroid Build Coastguard Worker 205*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 206*2d543d20SAndroid Build Coastguard Worker 207*2d543d20SAndroid Build Coastguard Worker```secil 208*2d543d20SAndroid Build Coastguard Worker (roleallow current_role_id new_role_id) 209*2d543d20SAndroid Build Coastguard Worker``` 210*2d543d20SAndroid Build Coastguard Worker 211*2d543d20SAndroid Build Coastguard Worker**Where:** 212*2d543d20SAndroid Build Coastguard Worker 213*2d543d20SAndroid Build Coastguard Worker<table> 214*2d543d20SAndroid Build Coastguard Worker<colgroup> 215*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 216*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 217*2d543d20SAndroid Build Coastguard Worker</colgroup> 218*2d543d20SAndroid Build Coastguard Worker<tbody> 219*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 220*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roleallow</code></p></td> 221*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roleallow</code> keyword.</p></td> 222*2d543d20SAndroid Build Coastguard Worker</tr> 223*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 224*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>current_role_id</code></p></td> 225*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> or <code>roleattribute</code> identifier.</p></td> 226*2d543d20SAndroid Build Coastguard Worker</tr> 227*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 228*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>new_role_id</code></p></td> 229*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> or <code>roleattribute</code> identifier.</p></td> 230*2d543d20SAndroid Build Coastguard Worker</tr> 231*2d543d20SAndroid Build Coastguard Worker</tbody> 232*2d543d20SAndroid Build Coastguard Worker</table> 233*2d543d20SAndroid Build Coastguard Worker 234*2d543d20SAndroid Build Coastguard Worker**Example:** 235*2d543d20SAndroid Build Coastguard Worker 236*2d543d20SAndroid Build Coastguard WorkerSee the [`roletransition`](cil_role_statements.md#roletransition) statement for an example. 237*2d543d20SAndroid Build Coastguard Worker 238*2d543d20SAndroid Build Coastguard Workerroletransition 239*2d543d20SAndroid Build Coastguard Worker-------------- 240*2d543d20SAndroid Build Coastguard Worker 241*2d543d20SAndroid Build Coastguard WorkerSpecify a role transition from the current role to a new role when computing a context for the target type. The [`class`](cil_class_and_permission_statements.md#class) identifier would normally be `process`, however for kernel versions 2.6.39 with policy version \>= 25 and above, any valid class may be used. Note that a [`roleallow`](cil_role_statements.md#roleallow) rule must be used to authorise the transition. 242*2d543d20SAndroid Build Coastguard Worker 243*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 244*2d543d20SAndroid Build Coastguard Worker 245*2d543d20SAndroid Build Coastguard Worker```secil 246*2d543d20SAndroid Build Coastguard Worker (roletransition current_role_id target_type_id class_id new_role_id) 247*2d543d20SAndroid Build Coastguard Worker``` 248*2d543d20SAndroid Build Coastguard Worker 249*2d543d20SAndroid Build Coastguard Worker**Where:** 250*2d543d20SAndroid Build Coastguard Worker 251*2d543d20SAndroid Build Coastguard Worker<table> 252*2d543d20SAndroid Build Coastguard Worker<colgroup> 253*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 254*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 255*2d543d20SAndroid Build Coastguard Worker</colgroup> 256*2d543d20SAndroid Build Coastguard Worker<tbody> 257*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 258*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>roletransition</code></p></td> 259*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>roletransition</code> keyword.</p></td> 260*2d543d20SAndroid Build Coastguard Worker</tr> 261*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 262*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>current_role_id</code></p></td> 263*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> or <code>roleattribute</code> identifier.</p></td> 264*2d543d20SAndroid Build Coastguard Worker</tr> 265*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 266*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>target_type_id</code></p></td> 267*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>type</code>, <code>typealias</code> or <code>typeattribute</code> identifier.</p></td> 268*2d543d20SAndroid Build Coastguard Worker</tr> 269*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 270*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>class_id</code></p></td> 271*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>class</code> or <code>classmap</code> identifier.</p></td> 272*2d543d20SAndroid Build Coastguard Worker</tr> 273*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 274*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>new_role_id</code></p></td> 275*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> identifier to be set on transition.</p></td> 276*2d543d20SAndroid Build Coastguard Worker</tr> 277*2d543d20SAndroid Build Coastguard Worker</tbody> 278*2d543d20SAndroid Build Coastguard Worker</table> 279*2d543d20SAndroid Build Coastguard Worker 280*2d543d20SAndroid Build Coastguard Worker**Example:** 281*2d543d20SAndroid Build Coastguard Worker 282*2d543d20SAndroid Build Coastguard WorkerThis example will authorise the `unconfined.role` to assume the `msg_filter.role` role, and then transition to that role: 283*2d543d20SAndroid Build Coastguard Worker 284*2d543d20SAndroid Build Coastguard Worker```secil 285*2d543d20SAndroid Build Coastguard Worker (block ext_gateway 286*2d543d20SAndroid Build Coastguard Worker (type process) 287*2d543d20SAndroid Build Coastguard Worker (type exec) 288*2d543d20SAndroid Build Coastguard Worker 289*2d543d20SAndroid Build Coastguard Worker (roletype msg_filter.role process) 290*2d543d20SAndroid Build Coastguard Worker (roleallow unconfined.role msg_filter.role) 291*2d543d20SAndroid Build Coastguard Worker (roletransition unconfined.role exec process msg_filter.role) 292*2d543d20SAndroid Build Coastguard Worker ) 293*2d543d20SAndroid Build Coastguard Worker``` 294*2d543d20SAndroid Build Coastguard Worker 295*2d543d20SAndroid Build Coastguard Workerrolebounds 296*2d543d20SAndroid Build Coastguard Worker---------- 297*2d543d20SAndroid Build Coastguard Worker 298*2d543d20SAndroid Build Coastguard WorkerDefines a hierarchical relationship between roles where the child role cannot have more privileges than the parent. 299*2d543d20SAndroid Build Coastguard Worker 300*2d543d20SAndroid Build Coastguard WorkerNotes: 301*2d543d20SAndroid Build Coastguard Worker 302*2d543d20SAndroid Build Coastguard Worker- It is not possible to bind the parent role to more than one child role. 303*2d543d20SAndroid Build Coastguard Worker 304*2d543d20SAndroid Build Coastguard Worker- While this is added to the binary policy, it is not enforced by the SELinux kernel services. 305*2d543d20SAndroid Build Coastguard Worker 306*2d543d20SAndroid Build Coastguard Worker**Statement definition:** 307*2d543d20SAndroid Build Coastguard Worker 308*2d543d20SAndroid Build Coastguard Worker```secil 309*2d543d20SAndroid Build Coastguard Worker (rolebounds parent_role_id child_role_id) 310*2d543d20SAndroid Build Coastguard Worker``` 311*2d543d20SAndroid Build Coastguard Worker 312*2d543d20SAndroid Build Coastguard Worker**Where:** 313*2d543d20SAndroid Build Coastguard Worker 314*2d543d20SAndroid Build Coastguard Worker<table> 315*2d543d20SAndroid Build Coastguard Worker<colgroup> 316*2d543d20SAndroid Build Coastguard Worker<col width="25%" /> 317*2d543d20SAndroid Build Coastguard Worker<col width="75%" /> 318*2d543d20SAndroid Build Coastguard Worker</colgroup> 319*2d543d20SAndroid Build Coastguard Worker<tbody> 320*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 321*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>rolebounds</code></p></td> 322*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>The <code>rolebounds</code> keyword.</p></td> 323*2d543d20SAndroid Build Coastguard Worker</tr> 324*2d543d20SAndroid Build Coastguard Worker<tr class="even"> 325*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>parent_role_id</code></p></td> 326*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> identifier.</p></td> 327*2d543d20SAndroid Build Coastguard Worker</tr> 328*2d543d20SAndroid Build Coastguard Worker<tr class="odd"> 329*2d543d20SAndroid Build Coastguard Worker<td align="left"><p><code>child_role_id</code></p></td> 330*2d543d20SAndroid Build Coastguard Worker<td align="left"><p>A single previously declared <code>role</code> identifier.</p></td> 331*2d543d20SAndroid Build Coastguard Worker</tr> 332*2d543d20SAndroid Build Coastguard Worker</tbody> 333*2d543d20SAndroid Build Coastguard Worker</table> 334*2d543d20SAndroid Build Coastguard Worker 335*2d543d20SAndroid Build Coastguard Worker**Example:** 336*2d543d20SAndroid Build Coastguard Worker 337*2d543d20SAndroid Build Coastguard WorkerIn this example the role `test` cannot have greater privileges than `unconfined.role`: 338*2d543d20SAndroid Build Coastguard Worker 339*2d543d20SAndroid Build Coastguard Worker```secil 340*2d543d20SAndroid Build Coastguard Worker (role test) 341*2d543d20SAndroid Build Coastguard Worker 342*2d543d20SAndroid Build Coastguard Worker (block unconfined 343*2d543d20SAndroid Build Coastguard Worker (role role) 344*2d543d20SAndroid Build Coastguard Worker (rolebounds role .test) 345*2d543d20SAndroid Build Coastguard Worker ) 346*2d543d20SAndroid Build Coastguard Worker``` 347