Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración de Oracle Solaris ZFS |
1. Sistema de archivos ZFS de Oracle Solaris (introducción)
2. Procedimientos iniciales con Oracle Solaris ZFS
3. Oracle Solaris ZFS y sistemas de archivos tradicionales
4. Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS
5. Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris
6. Administrar sistemas de archivos ZFS de Oracle Solaris
7. Uso de clones e instantáneas de Oracle Solaris ZFS
8. Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS
Nuevo modelo de ACL de Solaris
Descripciones de la sintaxis para definir las ACL
Establecimiento de las ACL en archivos ZFS
Establecimiento y visualización de ACL en archivos ZFS en formato detallado
Establecimiento de herencia de ACL en archivos ZFS en formato detallado
9. Administración delegada de ZFS Oracle Solaris
10. Temas avanzados de Oracle Solaris ZFS
11. Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS
En archivos ZFS puede establecer y visualizar permisos en un formato compacto que utiliza 14 caracteres exclusivos para representar los permisos. Las letras que representan los permisos compactos se enumeran en la Tabla 8-2 y la Tabla 8-3.
Puede visualizar listas de ACL en formato compacto para archivos y directorios mediante el comando ls -V. Por ejemplo:
# ls -V file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 file.1 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
La salida de ACL compacta se interpreta de la forma siguiente:
El propietario puede leer y modificar el contenido del archivo ( rw=read_data/write_data), (p= append_data). El propietario también puede modificar los atributos de un archivo, como las indicaciones de hora, los atributos ampliados y las ACL (a=read_attributes , A=write_xattr, R=read_xattr, W=write_attributes, c=read_acl, C=write_acl). Además, el propietario puede modificar la propiedad del archivo (o=write_owner).
El permiso de acceso synchronize no está implementado en la actualidad.
Se otorga al grupo permisos de lectura para el archivo (r= read_data) y los atributos del archivo (a=read_attributes , R=read_xattr, c= read_acl).
El permiso de acceso synchronize no está implementado en la actualidad.
Se concede a quien no sea usuario ni grupo los permisos de lectura del archivo y los atributos del archivo (r=read_data, a=append_data, R=read_xattr , c=read_acl y s= synchronize).
El permiso de acceso synchronize no está implementado en la actualidad.
El formato compacto de las ACL presenta las ventajas siguientes respecto al formato detallado:
Los permisos se pueden especificar como argumentos posicionales en el comando chmod.
Los caracteres de guión (-), que no identifican permisos, se pueden eliminar. Sólo hace falta especificar los caracteres necesarios.
Los indicadores de permisos y de herencia se establecen de la misma manera.
Para obtener información sobre el uso del formato de ACL detallado, consulte Establecimiento y visualización de ACL en archivos ZFS en formato detallado.
Ejemplo 8-10 Establecimiento y visualización de las ACL en formato compacto
En el ejemplo siguiente, en file.1 hay una ACL trivial:
# ls -V file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 file.1 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
En este ejemplo, se agregan los permisos read_data/execute para el usuario gozer en file.1.
# chmod A+user:gozer:rx:allow file.1 # ls -V file.1 -rw-r--r--+ 1 root root 206663 Jun 23 15:06 file.1 user:gozer:r-x-----------:------:allow owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
En el ejemplo siguiente, al usuario gozer se le conceden permisos de lectura, escritura y ejecución que se heredan para archivos y directorios recientemente creados mediante el formato de ACL comprimido.
# chmod A+user:gozer:rwx:fd:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
También puede cortar y pegar indicadores de herencia y permisos de la salida de ls -V en el formato compacto de chmod. Por ejemplo, para duplicar los permisos e indicadores de herencia de dir.2 para el usuario gozer en el usuario cindy en dir.2, copie y pegue los permisos y los indicadores de herencia ( rwx-----------:fd----:allow) en el comando chmod. Por ejemplo:
# chmod A+user:cindy:rwx-----------:fd----:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:cindy:rwx-----------:fd----:allow user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
Ejemplo 8-11 Herencia de ACL con el modo ACL heredado establecido en passthrough
Un sistema de archivos que tiene la propiedad aclinherit establecida en passthrough hereda todas las entradas de ACL que se pueden heredar sin modificaciones en las entradas de ACL cuando se heredan. Si la propiedad se configura como passthrough, los archivos se crean con un modo de permiso que determinan las entradas de control de acceso que se pueden heredar. Si no existen entradas de control de acceso que se puedan heredar y que afecten al modo de permiso, el modo de permiso se configurará de acuerdo con el modo solicitado desde la aplicación.
Los ejemplos siguientes utilizan sintaxis de ACL compacta para mostrar cómo heredar bits de permisos estableciendo el modo aclinherit en passthrough.
En este ejemplo, se establece una ACL en test1.dir para forzar la herencia. La sintaxis crea una entrada de ACL owner@, group@ y everyone@ para cada archivo que cree. Los directorios que cree heredan una entrada de ACL @owner, group@ y everyone@.
# zfs set aclinherit=passthrough tank/cindy # pwd /tank/cindy # mkdir test1.dir
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:10 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
En este ejemplo, un archivo recién creado hereda la ACL especificada para heredarse en los archivos recién creados.
# cd test1.dir # touch file.1 # ls -V file.1 -rwxrwx---+ 1 root root 0 Jun 23 16:11 file.1 owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
En este ejemplo, un directorio que se cree hereda tanto las entradas que controlan el acceso a este directorio como las entradas de control de acceso para la futura propagación a los elementos secundarios del directorio que se cree.
# mkdir subdir.1 # ls -dV subdir.1 drwxrwx---+ 2 root root 2 Jun 23 16:13 subdir.1 owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Las entradas fd---- son para propagar la herencia y no se tienen en cuenta durante el control de acceso. En este ejemplo, se crea un archivo con una ACL trivial en otro directorio en el que no haya entradas de control de acceso heredadas.
# cd /tank/cindy # mkdir test2.dir # cd test2.dir # touch file.2 # ls -V file.2 -rw-r--r-- 1 root root 0 Jun 23 16:15 file.2 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
Ejemplo 8-12 Herencia de ACL con el modo ACL heredado establecido en passthrough-X
Cuando aclinherit=passthrough-x está habilitada, los archivos se crean con el permiso de ejecución (x) para owner@, group@ o everyone@, pero sólo si el permiso de ejecución se define en el modo de creación de archivos y en un ACE heredable que afecta al modo.
El siguiente ejemplo muestra cómo se heredan los permisos de ejecución al establecer el modo aclinherit en passthrough-x.
# zfs set aclinherit=passthrough-x tank/cindy
La siguiente ACL se establece en /tank/cindy/test1.dir para proporcionar herencia de ACL ejecutable para los archivos de owner@.
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:17 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Un archivo (file1) se crea con permisos solicitados 0666. Los permisos resultantes son 0660. El permiso de ejecución no se ha heredado porque el modo de creación no lo solicitó.
# touch test1.dir/file1 # ls -V test1.dir/file1 -rw-rw----+ 1 root root 0 Jun 23 16:18 test1.dir/file1 owner@:rw-pdDaARWcCos:------:allow group@:rw-p----------:------:allow everyone@:--------------:------:allow
A continuación, se generará un ejecutable llamado t mediante el compilador cc en el directorio testdir.
# cc -o t t.c # ls -V t -rwxrwx---+ 1 root root 7396 Dec 3 15:19 t owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
Los permisos resultantes son 0770 porque cc solicitó permisos 0777, que provocaron que el permiso de ejecución se heredara de las entradas owner@, group@ y everyone@.