ES/ACL: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
Line 39: Line 39:
''*Nota: Como notaras, este grupo en especial incluye a todos los usuarios y recursos gracias al uso del '''*'''.''
''*Nota: Como notaras, este grupo en especial incluye a todos los usuarios y recursos gracias al uso del '''*'''.''


Now, scroll further down the ACL and you will see the '''<acl name="Default" />''' listing. Note I have trimmed this list dramatically due to its length.
Ahora, desplácese al final de el ACL y verá la lista '''<acl name="Default" />'''. Tenga en cuenta que he recortado drásticamente esta lista debido a su longitud.


<syntaxhighlight lang="lua">    <acl name="Default">
<syntaxhighlight lang="lua">    <acl name="Default">
Line 61: Line 61:
</syntaxhighlight>
</syntaxhighlight>
<br \>
<br \>
*'''Function''' entries are MTA scripting functions. For example, if a resource needed to use restartResource and was only in the 'Everyone' group (with the 'Default' list), it would be denied access to restartResource and fail to work correctly.
*'''Entradas de funcion''' son funciones de scripting de MTA. Por ejemplo, si un recurso necesita utilizar restartResource y fue se encuentra en el grupo 'Everyone' (con la lista 'Default'), se le negaría el acceso a restartResource y no funcionar correctamente.
*'''Commands''' are created when a resource uses [[addCommandHandler]]. An example would be typing '''/createvehicle [vehicle]''' in the chatbox for the freeroam resource. This controls whether users in the group using this ACL can use the command. ''Note: commands have no effect on resources within the group. Commands are only related to users.''
*'''Comandos''' se crean cuando un recurso utiliza [[addCommandHandler]]. Un ejemplo sería escribiendo '''/ createvehicle [vehículo]''' en la ventana de chat para el recurso Freeroam. Esto  si los usuarios del grupo utilizando este  ACL pueden utilizar el comando. ''Nota: los comandos no tienen ningún efecto sobre los recursos dentro del grupo. Los comandos sólo están relacionados con los usuarios''.
**''General is a custom right name group created by the admin resource but it works on the same principles. The script works with them by using [[hasObjectPermissionTo]]''
**''General es un grupo con derechos modificados creado por el recurso de administración pero trabaja en los mismos principios. El script funciona con ellos mediante el uso de [[hasObjectPermissionTo]]''
<br\>


 
Te darás cuenta que algunos grupos, como ''admin'' tienen múltiples nodos de '''<acl name="" />''' . Un ejemplo es el grupo de ''administracion o Admin'':
You will notice some groups such as admin have multiple '''<acl name="" />''' nodes. An example is the admin group:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
     <group name="Admin">
     <group name="Admin">
Line 78: Line 78:
     </group>
     </group>
</syntaxhighlight>
</syntaxhighlight>
<br\>


This gives all the permissions defined in each '''<acl name="" />''' node in order of listing. So for example, the admin group makes sure all the permissions are given to admins by using all the lists. If there are any conflicts, the lowest entry wins. For example, pretend these 2 acls were in a group in the following order:
Esto le da a todos los permisos definidos en cada nodo '''<acl name="" />''' por orden de lista. Así, por ejemplo, el grupo de administración asegura que todos los permisos se otorgan a los administradores mediante el uso de toda la lista. Si hay algún conflicto, la entrada más baja gana. Por ejemplo, pretenda que estos 2 ACL estaban en un grupo en el siguiente orden:
 
<br\>
'''1.''' '''<acl name="Default">''' sets <right name="general.ModifyOtherObjects" access="false" /> <br\>
'''1.''' '''<acl name="Default">''' sets <right name="general.ModifyOtherObjects" access="false" /> <br\>
'''2.''' '''<acl name="Admin">''' sets <right name="general.ModifyOtherObjects" access="true" /> <br\>
'''2.''' '''<acl name="Admin">''' sets <right name="general.ModifyOtherObjects" access="true" /> <br\>
'''3.''' For all users and resources in group admin: <right name="general.ModifyOtherObjects" access="true" /><br\>
'''3.''' Para todos los usuarios y recursos en el grupo administrador "''Admin''": <right name="general.ModifyOtherObjects" access="true" /><br\>
<br\>
<br\>


=== Resource Groups and ACLs ===
=== Grupos de recursos y ACLs ===
You will notice there are some other groups that came with MTA. These were defined by resources that came with MTA. If a resource wants to designate specific ACL rights not provided by the default MTA groups, it can create its own ACL name and a group to use it. I will show AMX's entry as an example. AMX is designed to emulate SA-MP scripts and it needs a certain set of permissions that doesn't fit the default groups well. It is shown below:
Usted se dará cuenta que hay algunos otros grupos que vienen con MTA. Estos fueron definidos por los recursos que vienen con MTA. Si un recurso quiere designar algunos derechos de ACL específicos no previstos por los grupos de  MTA por defecto, puede crear su propio nombre y grupo en la ACL para usarlo. Voy a mostrar la entrada de AMX como ejemplo. AMX está diseñado para emular scripts de SA-MP y necesita un cierto conjunto de permisos que no se ajusta bien a los grupos predeterminados. Este se muestra a continuación:


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 108: Line 109:
</syntaxhighlight>
</syntaxhighlight>


==Modifying the ACL==
==Modificación de la ACL==
There are three ways you can modify the ACL - how you do it depends who you are.
Hay tres formas de modificar la ACL - La forma de hacerlo depende de quién eres.  


===HTTP Interface===
===Interfaz HTTP===
You can use the [[Resource/webadmin|webadmin]] http interface to modify the ACL in your web browser. This is by far the easiest way to do so. Just make sure the ''webadmin'' resource is started on your server and visit ''<nowiki>http://ServerIP:HttpPort/</nowiki>''. You can then use the two sections - ACLs and Groups. ACLs allows you to create your Access Control Lists - lists of rights. Groups allow you to group together collections of users and assign ACLs to them. For example, the ACLs section allows you to specify that the Admin ACL has access to the ''start'' console command. You can the go to the Groups section and create an Admin ''group'' that has access to your Admin ''acl''. You can then add users to your Admin ''group''.
Usted puede utilizar la interfaz http [[Resource/webadmin|webadmin]] para modificar la ACL en su navegador web. Esta es por lejos la forma más fácil de hacerlo. Sólo asegúrese de que el recurso ''webadmin'' se encuentra iniciado en el servidor y visite ''<nowiki>http://ServerIP:HttpPort/</nowiki>''. Usted puede utilizar las dos secciones - ACL y Grupos o "''Group''". ACL le permite crear sus listas de control de acceso - listas de derechos. Grupos o "''Group''" les permiten agrupar colecciones de usuarios y asignar las ACLs para ellos. Por ejemplo, la seccion ACLs le permite especificar que la ACL de administración o "''Admin''" tiene acceso a el comando ''start'' en la consola. Usted puede ir a la sección de Grupos y crear un ''Group'' de administración que tiene acceso a la administración de su ''acl''. Entonces usted podrá añadir usuarios a su ''Group'' de Administración.


===XML file===
===Archivo XML===
You can modify the ACL.xml file manually. This has a fairly straightforward syntax, but it can get a bit confusing at times. If you do it while the server is running, don't forget to call the scripting function [[aclReload]] ("start runcode", "run aclReload()") so the new ACL is loaded, or otherwise stop your server before modifying. This also prevents your changes from being accidentally overwritten by the server.
Usted puede modificar el archivo ACL.xml manualmente. Este tiene una sintaxis bastante sencilla, pero puede ser un poco confuso a veces. Si lo hace mientras el servidor está en ejecución, no se olvide de llamar a la función [[aclReload]] ("start runcode", "run aclReload()") así el nuevo ACL será cargado, o de lo contrario detener el servidor antes de realizar las modificaciones. Esto también evita que los cambios sean sobrescritos accidentalmente por el servidor.


===Scripting functions===
===Funciones de Scripting===
You can use a large number of ACL scripting functions to modify the ACL on the fly. Of course, you can (and really should!) limit access to the ACL functions with the ACL. Note that the '''admin resource''' that comes with MTA can be used to manage the ACL from the resources tab. You must be setup as admin to use the admin panel. [http://wiki.multitheftauto.com/wiki/Admin Click here for admin setup instructions].
Usted puede utilizar un gran número de funciones de script de ACL para modificar la ACL en la marcha. Por supuesto, usted puede (y de verdad Debe!) limitar el acceso a las funciones de ACL con la ACL. Tenga en cuenta que el '''admin resource''' que viene con MTA se puede utilizar para administrar la ACL en la ficha recursos. Usted debe ser configurado como administrador para utilizar el panel de administración. [http://wiki.multitheftauto.com/wiki/Admin Haga clic aquí para obtener instrucciones de configuración de administración].


==See Also==
==Vea también==
{{ACL functions}}
{{ACL functions}}
[[Category:Scripting Concepts]]
[[Category:Scripting Concepts]]
[[ru:Access Control List]]
[[ru:Access Control List]]

Revision as of 19:18, 7 April 2014

Multi Theft Auto incluye una completa y útil Lista de Control de Acceso (ACL) la que te permite asegurar y limitar el acceso a distintas funciones, recursos del servidor de múltiples maneras.

El concepto en Multi Theft Auto de ACL es el de dar a un objeto especifico una serie de derechos. En el caso de Multi Theft Auto, los objetos son una de dos cosas - recursos o usuarios. Hay numerosos derechos disponibles en Multi Theft Auto - estos están enfocados principalmente en las funciones del lado del servidor.

Lo que esto significa, esencialmente es que el ACL te permite escoger con exactitud a que funciones (un recurso o un usuario) pueden acceder. Esto, por ejemplo, puede prevenir que los jugadores de tu servidor sean capaces de banearse mutuamente o prevenir que errores en recursos aun no probados causen daños y problemas en tu servidor.

Por supuesto un gran poder conlleva una gran responsabilidad y es muy sencillo causar graves problemas con los recursos, por ejemplo, deshabilitar la función spawnPlayer para cada recurso causaría que los jugadores ya no puedan spawnear. Por supuesto, existen situaciones en las que se busca hacer esto. (Si deseas hacer que un solo recurso se encargue de spawnear a los jugadores, por ejemplo.)

Entiendido el funcionamiento

Existen dos grandes componentes en el ACL: grupos y listas ACL. Estos aparecen como <group name=""> y <acl name="" />. Cuyo propósito es:
1. Garantizar a los usuarios el permiso de controlar el servidor y utilizar comandos. Ejemplos:

  • Permitir solo a los administradores utilizar la función giveWeapon en freeroam.
  • Permitir a todos los jugadores iniciar un recurso.

2. Garantizar a los recursos el permiso de utilizar una función o funciones de otros recursos. Ejemplos:

  • Permitir a un recurso utilizar la funcion restartResource.
  • Permitir a un recurso llamar funciones exportadas desde otro recurso.

Grupos por defecto

Multi Theft Auto trae por defecto algunos grupos con ciertos permisos. Estos son:

  • Everyone - Toda cuenta registrada, por defecto, es añadida a este grupo.
  • Moderator
  • SuperModerator
  • Admin
  • Console - Este grupo controla los permisos del usuario de la Consola <object name="user.Console" />
  • RPC - Procedimientos Remotos (En ingles, Remote Procedure Call). Garantiza el acceso a callRemote, para mas información revisa la información de la función.


A modo de ejemplo, utilizare el grupo Everyone. Por defecto, este luce así:

    <group name="Everyone">
        <acl name="Default" />
        <object name="user.*" />
        <object name="resource.*" />
    </group>


Lo primero que deberías notar es el nombre ACL (acl name) asignado dentro del grupo. Esto define que permisos tiene el grupo en cuestión, usuarios y recursos en este grupo pueden acceder a los permisos especificados dentro de la lista ACL llamada "Default". *Nota: Como notaras, este grupo en especial incluye a todos los usuarios y recursos gracias al uso del *.

Ahora, desplácese al final de el ACL y verá la lista <acl name="Default" />. Tenga en cuenta que he recortado drásticamente esta lista debido a su longitud.

    <acl name="Default">
        <right name="command.start" access="false" />
        <right name="command.stop" access="false" />
        <right name="command.stopall" access="false" />
        ...etc etc...
        <right name="function.executeCommandHandler" access="false" />
        <right name="function.setPlayerMuted" access="false" />
        <right name="function.restartResource" access="false" />
        ...etc etc...
        <right name="general.adminpanel" access="false" />
        <right name="general.tab_players" access="false" />
        <right name="general.tab_resources" access="false" />
        ...etc etc...
        <right name="command.freeze" access="false" />
        <right name="command.shout" access="false" />
        <right name="command.spectate" access="false" />
        ...etc etc...
    </acl>


  • Entradas de funcion son funciones de scripting de MTA. Por ejemplo, si un recurso necesita utilizar restartResource y fue se encuentra en el grupo 'Everyone' (con la lista 'Default'), se le negaría el acceso a restartResource y no funcionar correctamente.
  • Comandos se crean cuando un recurso utiliza addCommandHandler. Un ejemplo sería escribiendo / createvehicle [vehículo] en la ventana de chat para el recurso Freeroam. Esto si los usuarios del grupo utilizando este ACL pueden utilizar el comando. Nota: los comandos no tienen ningún efecto sobre los recursos dentro del grupo. Los comandos sólo están relacionados con los usuarios.
    • General es un grupo con derechos modificados creado por el recurso de administración pero trabaja en los mismos principios. El script funciona con ellos mediante el uso de hasObjectPermissionTo

<br\>

Te darás cuenta que algunos grupos, como admin tienen múltiples nodos de <acl name="" /> . Un ejemplo es el grupo de administracion o Admin:

    <group name="Admin">
        <acl name="Moderator" />
        <acl name="SuperModerator" />
        <acl name="Admin" />
        <acl name="RPC" />
        <object name="resource.admin" />
        <object name="resource.webadmin" />
        <object name="user.Ransom" />
    </group>

<br\>

Esto le da a todos los permisos definidos en cada nodo <acl name="" /> por orden de lista. Así, por ejemplo, el grupo de administración asegura que todos los permisos se otorgan a los administradores mediante el uso de toda la lista. Si hay algún conflicto, la entrada más baja gana. Por ejemplo, pretenda que estos 2 ACL estaban en un grupo en el siguiente orden: <br\> 1. <acl name="Default"> sets <right name="general.ModifyOtherObjects" access="false" /> <br\> 2. <acl name="Admin"> sets <right name="general.ModifyOtherObjects" access="true" /> <br\> 3. Para todos los usuarios y recursos en el grupo administrador "Admin": <right name="general.ModifyOtherObjects" access="true" /><br\> <br\>

Grupos de recursos y ACLs

Usted se dará cuenta que hay algunos otros grupos que vienen con MTA. Estos fueron definidos por los recursos que vienen con MTA. Si un recurso quiere designar algunos derechos de ACL específicos no previstos por los grupos de MTA por defecto, puede crear su propio nombre y grupo en la ACL para usarlo. Voy a mostrar la entrada de AMX como ejemplo. AMX está diseñado para emular scripts de SA-MP y necesita un cierto conjunto de permisos que no se ajusta bien a los grupos predeterminados. Este se muestra a continuación:

    <group name="AMX">
        <acl name="AMX" />
        <object name="resource.amx" />
    </group>

    <acl name="AMX">
        <right name="general.ModifyOtherObjects" access="true" />
        <right name="function.startResource" access="true" />
        <right name="function.stopResource" access="true" />
        <right name="general.adminpanel" access="false" />
        ...etc etc...
        <right name="command.kick" access="false" />
        <right name="command.freeze" access="false" />
        <right name="command.mute" access="false" />
        ...etc etc...
    </acl>

Modificación de la ACL

Hay tres formas de modificar la ACL - La forma de hacerlo depende de quién eres.

Interfaz HTTP

Usted puede utilizar la interfaz http webadmin para modificar la ACL en su navegador web. Esta es por lejos la forma más fácil de hacerlo. Sólo asegúrese de que el recurso webadmin se encuentra iniciado en el servidor y visite http://ServerIP:HttpPort/. Usted puede utilizar las dos secciones - ACL y Grupos o "Group". ACL le permite crear sus listas de control de acceso - listas de derechos. Grupos o "Group" les permiten agrupar colecciones de usuarios y asignar las ACLs para ellos. Por ejemplo, la seccion ACLs le permite especificar que la ACL de administración o "Admin" tiene acceso a el comando start en la consola. Usted puede ir a la sección de Grupos y crear un Group de administración que tiene acceso a la administración de su acl. Entonces usted podrá añadir usuarios a su Group de Administración.

Archivo XML

Usted puede modificar el archivo ACL.xml manualmente. Este tiene una sintaxis bastante sencilla, pero puede ser un poco confuso a veces. Si lo hace mientras el servidor está en ejecución, no se olvide de llamar a la función aclReload ("start runcode", "run aclReload()") así el nuevo ACL será cargado, o de lo contrario detener el servidor antes de realizar las modificaciones. Esto también evita que los cambios sean sobrescritos accidentalmente por el servidor.

Funciones de Scripting

Usted puede utilizar un gran número de funciones de script de ACL para modificar la ACL en la marcha. Por supuesto, usted puede (y de verdad Debe!) limitar el acceso a las funciones de ACL con la ACL. Tenga en cuenta que el admin resource que viene con MTA se puede utilizar para administrar la ACL en la ficha recursos. Usted debe ser configurado como administrador para utilizar el panel de administración. Haga clic aquí para obtener instrucciones de configuración de administración.

Vea también