DokuWiki

It's better when it's simple

Herramientas de usuario

Herramientas del sitio


es:acl

Access Controls (Control de Acceso)

Configuración

Para habilitar ACL en Dokuwiki, necesitas al menos un ACL por defecto. Simplemente copia los archivos de ejemplo conf/acl.auth.php.dist y conf/users.auth.php.dist a conf/acl.auth.php y conf/users.auth.php respectivamente y la página de acceso debería funcionar. Si recibes un mensaje “No ACL setup yet! Denying access to everyone.” asegúrate de que el texto en el principio del fichero acl.auth.php lee de acl.auth.php y no de users.auth.php.

También necesitas configurar algunas opciones. Échale un vistazo a un ejemplo que podrás añadir a tu local.php para habilitar el método de autentificación texto plano con el registro público:

  $conf['useacl']       = 1;        // activa la característica ACL
  $conf['superuser']    = '@admin'; // el grupo admin es el superusuario

useacl habilita la caractererística ACL. Una vez esta característica está activada, en la parte inferior de cada página aparece un botón para identificarse, y los usuarios podrán identificarse. La opción superuser especifica quien es capaz de hacer cualquier cosa DokuWiki (incluido añadir restricciones ACL) - esto puede ser realizado sobre un usuario o sobre un grupo (marcado con @). Cuando instalas un dokuwiki con ACL desde el principio, utilizando el navegador, haz clic sobre el botón “Login”, sigue el enlace “register”, y registra almenos a un usuario. (Si no ves el enlace para registrarse, es porque los permisos de conf/users.auth.php o conf/acl.auth.php son incorrectos o no puedes escribir sobre estos archivos.) Después, edita conf/users.auth.php y cambia el grupo de un usuario de “user” a “admin”. Desde ahora los usuarios del grupo “admin” tendrán un botón adicional “Admin”.

En este punto, una característica adicional puede ser activada. Para evitar que los usuarios puedan registrarse ellos mismos, debes añadir 'register' a las opciones disableactions:

  $conf['disableactions'] = 'register';        // ya no se permite a los usuarios registrarse por si mismos

La antigua forma de hacer esto era la opción openregister option la cual ya no se utiliza.

Si todo ha ido bien, los usuarios sólo podrán ser añadidos por un usuario del grupo admin (bien desde la interfaz web o editando directamente el archivo… conf/users.auth.php).

Hay algunas opciones de configuración adicionales que permiten el control de otros aspectos de ACL pero con utilizar los valores por defecto de momento nos vale.

$conf['autopasswd']  = 1;                //genera automáticamente contraseñas y las envia al usuario por mail
$conf['passcrypt']   = 'smd5';           //Método de encriptación utilizado (smd5,md5,sha1,ssha,crypt,mysql,my411)
$conf['defaultgroup']= 'user';           //Grupo por defecto donde los usuarios son añadidos
$conf['profileconfirm'] = '1';           //Requiere la contraseña actual para confirmar los cambios de un perfil de usuario
$conf['authtype']     = 'plain';         // plaintext backend (por defecto)
  • Cambia autopasswd a 0 para permitir a los usuarios seleccionar su propia contraseña cuando se registren. Esto tiene el efecto de que no se garantiza que los usuarios se hayan registrado con una dirección de mail válida.
  • passcrypt determina el método de encriptación utilizado para almacenar contraseñas.
  • defaultgroup está claro: todos los nuevos usuarios serán añadidos a este grupo por defecto.
  • Establece profileconfirm a 0 para permitir a un usuario modificar su perfil (nombre completo, contraseña y dirección de correo electrónico) sin tener que confirmar su contraseña actual.
  • DokuWiki puede utilizar diferentes formas de acceso a los usuarios. Por defecto se utiliza un sistema propio:plaintext. El sistema utilizado es elegido estableciendo la opción authtype. Échale un vistazo a la página auth para ver que opciones están disponibles.

Gestión de usuarios

Los usuarios pueden ser creados, eliminados y modificados a través de usermanager. Para ver información de como añadir usuarios manualmente vea las descripciones en la documentación del sistema de autenticación. Por defecto los usuarios se pueden registrar ellos mismos

Vea también: FAQ: Cómo evitar el registro de usuarios

Restricciones de acceso

Las restricciones de acceso pueden ser sobre páginas y namespaces. Hay cinco tipos de permiso: lectura, modificación, creación, subir ficheros y borrado. Cada nivel de permiso contiene a los anteriores, empezando desde el permiso de lectura y terminando por el de borrado. Por supuesto, los permisos de creación, subir ficheros y borrado sólo pueden ser establecidos a namespaces.

Cuando DokuWiki comprueba que derechos debe dar a un usuario, utiliza todas las reglas existentes para emparejar el nombre de usuario o bien el nombre del grupo al que pertenece el usuario. La regla que le proporciona el permiso más alto es la que se utiliza finalmente. Los permisos se comprueban para la prímera página, después todos los namespaces son comprobados hasta que se encuentra una regla adecuada.

Para añadir una regla de restricción, visite la página sobre la que desea restringir su acceso y acceda a la interfaz de administración pulsando el botón Admin (sólo disponible para los superusuarios). Una vez dentro, seleccione Access Control List Management. Se le mostrará una tabla como la siguiente, mostrando todas las restricciones relevantes a dicha página.

Example of an ACL-Restriction

Las restricciones son añadidas en la parte superior de la tabla. Necesitas seleccionar el ámbito, que puede ser la propia página, o cualquier namespace 1). También necesitas elegir a quien quieres dar acceso o denegárselo; esto puede ser un grupo o un usuario. Y finalmente, necesitas seleccionar los permisos que deseas. Seleccionando none bloqueas el acceso a la página o al namespace a un determinado usuario o grupo.

Nota: Los permisos de borrado afecta sólo a los ficheros subidos. Las páginas pueden ser eliminadas (y reestablecidas) con al menos permisos de edición. Quien tenga permisos para subir ficheros pero no de borrado, no podrá sobreescribir estos ficheros

Grupos especiales

ALL. Cualquiera, incluso usuarios no registrados, son miembros del grupo ALL. Puedes usar este grupo para restringir el acceso a todos los usuarios (por defecto) y después relajar los permisos para determinados usuarios. Por ejemplo, en el pantallazo anterior, nadie puede subir archivos, excepto los miembros del grupo upload.

user. Todos los usuarios pertenecen por defecto al grupo 'user'. Utilice esto para dar permisos a todos los usuarios registrados. El nombre de este grupo se puede configurar a través de la opción defaultgroup. El grupo “user” es un grupo real al que todos los nuevos usuarios son añadidos por defecto cuando se utiliza al sistema de autenticación de texto plano. Si utilizar otro sistema de autenticación, necesitas utilizar los grupos utilizados por este sistema.

Información adicional

Las restricciones de acceso se almacena en un fichero llamado conf/acl.auth.php, que debe tener permisos de escritura por el servidor web si se desea poder utilizar la interfaz web de administración ACL :!: No es recomendable editar este fichero manualmente. Utilice en su lugar la interfaz web de administración.

Las líneas vacias y los comentario tipo shell son ignorados. Cada línea contiene 3 campos separados por espacios en blanco:

  • El recurso a restringir. Esto puede user un nombre de página o un espacio de nombres. Los espacios de nombres se marcan con un asterisco adicional (observa los ejemplos de abajo)
  • Un grupo o un nombre de usuario. Los nombres de grupos se marcan con @ al inicio del nombre.
  • Un nivel de permiso (observa abajo)

Hay 7 niveles de permisos representados por un entero. Los niveles más alto incluyen los más bajos. Si puedes editar, también puedes leer. Quizás el nivel de permiso de administrador representado por el valor 255 no será nunca utilizado en el fichero conf/acl.auth.php. Sólo se utiliza internamente para emparejar la opción de superusuario.

Nombre Nivel aplicado a Permisos Constante DokuWiki
none 0 páginas, espacios de nombres sin permisos – bloqueo absoluto AUTH_NONE
read 1 páginas, espacios de nombres permisos de lectura AUTH_READ
edit 2 páginas, espacios de nombres páginas existentes pueden ser editadas AUTH_EDIT
create 4 espacios de nombres puede crear nuevas páginas AUTH_CREATE
upload 8 espacios de nombres puede subir archivos AUTH_UPLOAD
delete 16 espacios de nombres archivos pueden ser modificados o eliminados AUTH_DELETE
admin 255 plugins de administración superusuario2) puede cambiar los parámetro de configuración AUTH_ADMIN

Aquí hay un ejemplo:

*                     @ALL        4
*                     bigboss    16
start                 @ALL        1
marketing:*           @marketing  8
devel:*               @ALL        0
devel:*               @devel      8
devel:*               bigboss    16
devel:funstuff        bigboss     0
devel:*               @marketing  1
devel:marketing       @marketing  2

Vamos a echarle un vistazo línea a línea:

  1. Esto establece permisos para el espacio de nombres principal. Permite a cualquiera editar y crear páginas. Quizás subir archivos no esté permitido.
  2. Al usuario bigboss se le dan plenos derechos
  3. La página start sólo puede ser leída por cualquiera
  4. Establecemos los permisos del espacio de nombres marketing. Se permite a todos los miembros del grupo marketing subir archivos - el resto de usuarios se emparejarán con la lína 1, con lo que éstos todavía podrán crear y editar. bigboss hereda sus derechos de la línea 2, con lo que él puede subir y eliminar ficheros.
  5. Restringimos el acceso para el espacio de nombres devel. Nadie puede hacer nada.
  6. En realidad no es realmente nadie – le damos plenos derechos a los miembros del grupo devel
  7. Y por supuesto bigboss sigue teniendo sus derechos, – es el único que puede eliminar archivos subidos
  8. Quizás los miembros del grupo devel no quieren que su jefe pueda ver la página funstuff – recuerda que nombres de página exactos sobreescriben los permisos a los espacios de nombres
  9. Y el equipo de marketing puede leer cualquier cosa en el espacio de nombres devel
  10. Y por último, los miembros del grupo marketing pueden editar la página devel:marketing.

Por favor, recuerda que el orden de las instrucciones en el fichero no importa. El fichero es analizado por completo, buscando la combinación perfecta del usuario y la página visitada. Si se encuentra una pareja más adelante, se aborta el emparejamiento. Si no se encuentra nada, se comprueba los permisos del grupo para la página actual. Si sigue sin encontrarse nada, se continúa el chequeo en el siguiente espacio de nombres.

Puedes ver en el ejemplo anterior los permisos para el usuario bigboss. Se le dan plenos derechos en la línea 2, pero necesita conseguir los accesos totales para el espacio de nombres devel:* en la línea 7. Si no estuviera esta línea, el primer emparejamiento para el usuario bigboss para una página dentro del espacio de nombres devel sería la línea 5, ya que bigboss es miembro del grupo mágico ALL.

Nota: Para configurar los usuarios y grupos con caracteres especiales (como caracteres en blanco), necesitas codificarlos. Esto sólo se aplica a los caracteres especiales por debajo del rango de 128 bytes. El fichero de configuración ACL utiliza la codificación UTF-8 con lo que pueden ser escritos caracteres multibyte. Esto sólo se aplica cuando el sistema de autenticación es diferente del texto plano – el sistema de autenticación de texto plano no permite ningún tipo de carácter especial.

1)
el namespace más utilizado es *
es/acl.txt · Última modificación: 2022-02-14 03:58 por 2806:261:492:65:b843:f21:472d:f304

Excepto donde se indique lo contrario, el contenido de este wiki esta bajo la siguiente licencia: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki