<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- This is a template file for queue acls configuration properties -->

<configuration>

<property>
  <name>mapred.queue.default.acl-submit-job</name>
  <value> </value>
  <description> Comma separated list of user and group names that are allowed
    to submit jobs to the 'default' queue. The user list and the group list
    are separated by a blank. For e.g. user1,user2 group1,group2. 
    If set to the special value '*', it means all users are allowed to 
    submit jobs. If set to ' '(i.e. space), no user will be allowed to submit
    jobs.

    It is only used if authorization is enabled in Map/Reduce by setting the
    configuration property mapred.acls.enabled to true.

    Irrespective of this ACL configuration, the user who started the cluster and
    cluster administrators configured via
    mapreduce.cluster.administrators can submit jobs.
  </description>
</property>

<property>
  <name>mapred.queue.default.acl-administer-jobs</name>
  <value> </value>
  <description> Comma separated list of user and group names that are allowed
    to view job details, kill jobs or modify job's priority for all the jobs
    in the 'default' queue. The user list and the group list
    are separated by a blank. For e.g. user1,user2 group1,group2. 
    If set to the special value '*', it means all users are allowed to do 
    this operation. If set to ' '(i.e. space), no user will be allowed to do
    this operation.

    It is only used if authorization is enabled in Map/Reduce by setting the
    configuration property mapred.acls.enabled to true.

    Irrespective of this ACL configuration, the user who started the cluster and
    cluster administrators configured via
    mapreduce.cluster.administrators can do the above operations on all the jobs
    in all the queues. The job owner can do all the above operations on his/her
    job irrespective of this ACL configuration.
  </description>
</property>

</configuration>
