Saludos amigos, hace unos días un comentario de UnderUp, en la entrada sobre ONLYOFFICE como docker dentro de Nextcloud, me comentaba que cómo podía restringir ciertos aspectos como por ejemplo extensiones o similares, con lo que creo que merece un post para explicarlo.
¿Qué es File Access Control?
Como muchos ya sabéis Nextcloud puede extenderse con aplicaciones, una de ellas es File Access Control, una aplicación gratuita que nos permite controlar como nuestros usuarios interactúan con nuestro servidor de Nextcloud,, a nivel de ficheros, carpetas, agentes, tamaños, y mucho más.
Descargar e instalar File Access Control
En mi caso voy a basarme en los pasos para Nextcloud 11.0.x que es mi versión, si tenéis Nextcloud 12, podéis descargar la app desde aquí.
Como os comentaba tengo Nextcloud 11.0.x, por lo que necesitará irme al Github oficial de la aplicación y descargar desde allí el binario para mi versión, de la siguiente manera, tener en cuenta que esto tendremos que hacerlo desde la carpeta de apps de Nextcloud, en mi caso la tengo en /var/www/nextcloud/apps
wget https://github.com/nextcloud/files_accesscontrol/archive/v11.0.5.tar.gz --2017-09-29 10:06:06-- https://github.com/nextcloud/files_accesscontrol/archive/v11.0.5.tar.gz Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113 Connecting to github.com (github.com)|192.30.253.112|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/nextcloud/files_accesscontrol/tar.gz/v11.0.5 [following] --2017-09-29 10:06:06-- https://codeload.github.com/nextcloud/files_accesscontrol/tar.gz/v11.0.5 Resolving codeload.github.com (codeload.github.com)... 192.30.253.120, 192.30.253.121 Connecting to codeload.github.com (codeload.github.com)|192.30.253.120|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/x-gzip] Saving to: ‘v11.0.5.tar.gz’ v11.0.5.tar.gz [ <=> ] 23.30K --.-KB/s in 0.08s 2017-09-29 10:06:07 (302 KB/s) - ‘v11.0.5.tar.gz’ saved [23857]
Descomprimiremos el fichero y lo moveremos al nombre pertinente:
tar xzvf v11.0.5.tar.gz mv files_accesscontrol-11.0.5/ files_accesscontrol
Podremos borrar ahora el fichero comprimido ya que no nos hace falta:
rm v11.0.5.tar.gz
Si ahora nos vamos hasta nuestro Panel de Control como usuario admin, y nos vamos hasta Apps – Not enabled, ya podremos ver File Access Control haremos click en Enable:
Nos pedirá la contraseña del usuario: 
Con esto hemos terminado la instalación, vamos a ver ahora diferentes casos de uso de File Access Control.
Restringiendo extensiones de ficheros
Como sabemos, todos los ficheros tienen un formato mime que nos ayuda a identificarlos, por ejemplo si queremos bloquear que los usuarios no puedan subir ficheros .zip el ejemplo sería como el siguiente:
La lista de extensiones para bloquear la podéis encontrar aquí:
Le pondremos un nombre a la regla que nos ayude a identificarla mejor y seleccionaremos la opción File mime type upload luego la variable de matches y luego el mime que queremos bloquear, en mi caso .zip, podemos añadir más reglas:
Cuando el usuario se va a su Cliente Web, o Móvil, o de Escritorio e intenta subir un fichero .zip, o la extensión bloqueada:
Recibirá un error como el siguiente, no muy descriptivo pero suficiente:
Restringiendo ficheros y Carpetas con determinadas Tags
En ciertas ocasiones queremos restringir acceso a determinados grupos para que no puedan acceder a carpetas o ficheros etiquetados con una tag específica. Por ejemplo, imaginemos que tenemos una tag (de tipo invisible) llamada Confidential, y queremos que nadie fuera del grupo admin pueda ver ficheros o carpetas con esta tag, así quedaría la regla:
Un usuario cuando intentará acceder a un fichero al descargarlo vería esto:
Si el usuario intentará previsualizar el fichero online, imaginemos un .jpg o .pdf, vería esto:
Si además tuviéramos el cliente de escritorio, podríamos ver que no podemos editar los ficheros, agregar nuevos a esas carpetas, etc. 
Restringiendo el tamaño a subir de ficheros
Nextcloud es la solución para usuarios que quieren compartir ficheros grandes de manera corporativa, pero ¿qué sucede si no queremos que los usuarios suban ficheros de más de x MB? Para ello también podemos controlarlo, la regla sería la siguiente:
El usuario procedería a subir su fichero mayor del tamaño, y al finalizar, ¡baam! error forbidden, esto debería ser un poco más amigable, pero al menos funciona.
Eso es todo amigos, recordaros que los filtros pueden ser tan depurados y granulares como queráis, podríamos por ejemplo también:
- Restringir a ciertos usuarios y a otros no.
- Bloquear que usuarios no se conecten usando web client, o aplicaciones móviles o el cliente de escritorio.
- Restringir el acceso a determinados grupos, o global, el acceso durante horas de no oficina.
- etc.
Espero que os haya gustado este artículo, y que lo encontréis interesante. Si os ha gustado por favor ojear el resto de entradas sobre Nextcloud, y dejar algún comentario:





Se agradece la publicación, la cual es muy informativa.
Solo un comentario adicional… después de sufrir con los mimetypes para Nextclud, encontré que el listado que adminte NexCloud lo podemos encontrar en el siguiente archivo:
/srv/www/htdocs/nextcloud/resources/config/mimetypemapping.dist.json
Gracias UnderUp, un saludo
Hola Jorge
Disculpa que te vuelva a molestar. Tengo una duda respecto a este plugin de Nextcloud.
Deseo hacer una regla para bloquera la subida de archivos de video, en sus múltiples extensiones.
Ejemplo: Si quiero bloquear los mp4, agrego el MIME video/mp4. Lo probé y funciona correctamente.
Pero quiero, en una sola regla, bloquear todos los formatos de video:
3gp [“video/3gpp”]
dv [“video/dv”],
vob [“video/dvd”],
m2t [“video/mp2t”],
mts [“video/MP2T”],
mt2s [“video/MP2T”],
m4v [“video/mp4”],
mp4 [“video/mp4”],
mpeg [“video/mpeg”],
mpg [“video/mpeg”],
ogv [“video/ogg”],
mov [“video/quicktime”],
webm [“video/webm”],
flv [“video/x-flv”],
mkv [“video/x-matroska”],
avi [“video/x-msvideo”],
wmv [“video/x-ms-wmv”],
He intentando poniendolos separados por coma, pero no funciona.
Me respondo a mi mismo.
Al crear la regla seleccionamos:
Tipo de archivo MIME
coincidencias
/^video\/(3gpp|dv|dvd|mp2t|mp4|mpeg|ogg|quicktime|webm|x-flv|x-matroska|x-msvideo|x-ms-wmv)$/i
Hola, una consulta, sabes si es posible que se autobloquee un archivo que esta editandose, de modo que cualquiera que desee editar el mismo fichero sepa que esta abierto?
ya lo solucionaste?
Jorge, cuando dos usuarios abren el mismo archivo compartido en el servidor. Hay una forma de notificar al que lo abrió de segundo que el archivo ya fue abierto.
Gracias.
ya lo solucionaste?
estoy con este mismo problema, existe solucion?
Buenas Tardes Jorge, tengo una inquietud como es posible configurar una segmentación de que un grupo de usuario acceda a la carpeta raiz pero a la subcarpeta necesito que solo un grupo predeterminado de usuarios accedan a ella y modifiquen es decir así
Plataforma Documental (Acceso General Todo Modo Lectura)
1) Direccion Gerencial (Acceso General Todo Modo Lectura)
1. Formatos (Acceso General Todo Modo Lectura)
2. Registros(Solo necesito que los usuarios de Gerencian puedan ingresar a esta carpeta nadie mas ingrese)
Muchas Gracias
Saludos,
Ojea este link, y si no es lo que buscas, seguro alli te pueden ayudar mas, es la comunidad oficial de nextcloud https://help.nextcloud.com/t/folder-permissions-and-sharing/30201
Un saludo!
Aguien tiene un ejemplo de como restingir la descarga de un archivo ??
Hola Jorge estoy tratanto de subir los ficheros a next cloud y no me permite subir ficheros de mas de 2mb donde se puede cambiar esta configuracion, ya la cambie en el php.ini y sigue sin dejarme subir ficheros mayores de 2mb
Saludos Juan Carlos,
Mira este documento a ver si te sirve:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html
Hola Jorge gracias por tu trabajo muy bueno, yo tengo la siguiente inqietud: tengo un nextcloud y me interesaria que ningun usuario pueda guardar nada en local. Mis usuarios se loguean con ldap y las carpetas compartidas estan en win2012 y se montan en nexclod a traves de nfs cada usuario tiene acceso a las carpetas segun las directivas de grupos de active directory y montadas sus respectivas carpetas en nexclod segun los grupos. Por esto es que no quiero que guarden cosas en local ya que el servidor de nexcloud no es un datastore no tiene la capacidad de disco y no realizamos backups sobre los mismos. Atte. Nahuel Baglietto