User Tools

Site Tools


linux:acl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:acl [2010/10/23 12:17] rlunarolinux:acl [2022/12/02 22:02] (current) – external edit 127.0.0.1
Line 42: Line 42:
  
 Primero, segundo y tercero son ficheros, y uno, dos y tres son directorios. Todos tienen como único propietario "santiago:santiago". Vamos a añadir los comandos necesarios para que además sean visibles por el usuario mediatomb:mediatomb y además, a partir de ahora, todos los nuevos ficheros se comporten igual.  Primero, segundo y tercero son ficheros, y uno, dos y tres son directorios. Todos tienen como único propietario "santiago:santiago". Vamos a añadir los comandos necesarios para que además sean visibles por el usuario mediatomb:mediatomb y además, a partir de ahora, todos los nuevos ficheros se comporten igual. 
 +
 +Para ello, añadimos los permisos (recursivamente) para el nuevo usuario y el nuevo grupo: 
 +
 +<code shell>
 +# primero ponemos permisos de lectura y ejecución para el grupo 
 +setfacl -R -m g:mediatomb:rx test
 +# y luego ponemos permisos de lectura y ejecución para el usuario
 +setfacl -R -m u:mediatomb:rx test
 +</code>
 +
 +A continuación podemos comprobar que la operación se ha ejecutado, ejecutando ''getfacl'' para comprobar el resultado: 
 +
 +<code shell>
 +root:/data# getfacl test/uno
 +# file: test/
 +# owner: santiago
 +# group: santiago
 +user::rwx
 +user:mediatomb:r-x
 +group::r-x
 +group:mediatomb:r-x
 +mask::r-x
 +other::r-x
 +</code>
 +
 +El último paso consiste en establecer qué va a pasar a partir de ahora con los ficheros y directorios nuevos que se creen. Eso se define con las ACL's por defecto. Se establecen de la misma forma, pero usando la opción ''-d'' en la llamada al comando, y no se aplicarán recursivamente: se coge la que esté disponible. 
 +
 +<code shell>
 +# a partir de ahora, todos los ficheros nuevos tendrán 
 +# permisos de lectura y ejecución para el grupo "mediatomb"
 +setfacl -d -m g:mediatomb:rx test
 +# y también para el usuario "mediatomb"
 +setfacl -d -m u:mediatomb:rx test
 +</code>
 +
 +A continuación hemos creado un directorio llamado "cuatro" con un fichero llamado "cuarto". Veamos si el usuario mediatomb tiene permisos: 
 +
 +<code shell>
 +root:/data/test/cuatro# getfacl cuarto
 +# file: cuarto
 +# owner: root
 +# group: root
 +user::rw-
 +user:mediatomb:r-x #effective:r--
 +group::r-x #effective:r--
 +group:mediatomb:r-x #effective:r--
 +mask::r--
 +other::r--
 +
 +</code>
 +
 +Efectivamente, tiene permisos. 
 +
 +===== Las máscaras =====
 +
 +Confieso que entender exactamente cual es el propósito de la máscara me ha costado un poco, y aún así no entiendo realmente cual es el propósito. En una primera instancia, comprobarás que los permisos establecidos en la máscara limitan los permisos efectivos establecidos en la acl. Así, si los permisos en la máscara son ''r--'', verás que aunque los permisos que hayas establecido para un grupo sean ''rwx'', estos quedarán limitados a sólo ''r--''; es decir a lo que coincida con la máscara. 
 +
 +Puestas así las cosas, ¿Porqué??? ¿Porqué no hacer un modelo de ACL sin máscaras?? Parece que lo más sencillo es establecer los permisos para cada grupo individualmente y ya está. No obstante, creo que guarda relación en cómo debemos cambiar los permisos cuando cambiamos los permisos mediante chmod en el grupo. 
 +
 +Pero dejémonos de teorías. Creo que si los permisos del grupo por defecto son lo suficientemente amplios --''rwx''--, entonces la máscara resultante será ''rwx'', con lo cual el resto de grupos no tendrán ningún problema. 
 +
 +Si no es el caso, y las máscaras te dan problemas, que sepas que se pueden cambiar también, incluso se pueden poner máscaras por defecto, pero creo uq eno tienen mucho sentido. 
 +
 +<code>
 +# primero ponemos la mascara del directorio
 +setfacl -R -m mask::rwx test
 +# y luego ponemos la máscara por defecto
 +setfacl -d -m mask::rwx test
 +</code>
  
  
linux/acl.1287829071.txt.gz · Last modified: 2022/12/02 22:02 (external edit)