Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Guía de administración de Oracle Solaris ZFS Oracle Solaris 10 1/13 Information Library (Español) |
1. Sistema de archivos ZFS de Oracle Solaris (introducción)
2. Procedimientos iniciales con Oracle Solaris ZFS
3. Administración de agrupaciones de almacenamiento de Oracle Solaris ZFS
4. Instalación e inicio de un sistema de archivos raíz ZFS Oracle Solaris
5. Administración de sistemas de archivos ZFS de Oracle Solaris
6. Uso de clones e instantáneas de Oracle Solaris ZFS
7. Uso de listas de control de acceso y atributos para proteger archivos Oracle Solaris ZFS
Descripciones de la sintaxis para definir las ACL
Establecimiento de las LCA en archivos ZFS
Establecimiento y visualización de ACL en archivos ZFS en formato detallado
Establecimiento de herencia de LCA en archivos ZFS en formato detallado
8. Administración delegada de ZFS Oracle Solaris
9. Temas avanzados de Oracle Solaris ZFS
10. Recuperación de agrupaciones y solución de problemas de Oracle Solaris ZFS
11. Prácticas de ZFS recomendadas por Oracle Solaris
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 7-2 and Tabla 7-4.
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 del archivo, como las indicaciones de fecha y hora, los atributos ampliados y las ACL (a=read_attributes , W=write_xattr, R= read_xattr, A=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 (s) 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 (s) 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 (s) 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 7-10 Establecimiento y visualización de las ACL en formato compacto
En el ejemplo siguiente, en file.1 hay una LCA 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 de 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 7-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 LCA que se pueden heredar sin modificaciones en las entradas LCA 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 LCA 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 LCA 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 LCA 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 7-12 Herencia de ACL con el modo ACL heredado establecido en passthrough-X
Cuando aclinherit=passthrough-x está activada, 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@.
Ejemplo 7-13 Interacción de ACL con las operaciones chmod en archivos ZFS
Los siguientes ejemplos muestran de qué manera los valores específicos de propiedad aclmode y aclinherit influyen en la interacción de las ACL existentes con una operación chmod que cambia los permisos de archivo o de directorio para reducir o ampliar los permisos de ACL existentes a fin de que sean coherentes con el grupo propietario.
En este ejemplo, la propiedad aclmode se establece como mask y la propiedad aclinherit se establece como restricted. Los permisos de ACL de este ejemplo se muestran en modo compacto, que permite ilustrar el cambio de los permisos con más facilidad.
El archivo original y la propiedad de grupo y los permisos de ACL son los siguientes:
# zfs set aclmode=mask pond/whoville # zfs set aclinherit=restricted pond/whoville # ls -lV file.1 -rwxrwx---+ 1 root root 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
Una operación chown cambia la propiedad de archivo de file.1, y el usuario propietario, amy, empieza a ver la salida. Por ejemplo:
# chown amy:staff file.1 # su - amy $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
La siguiente operación chmod cambia el modo de los permisos a uno más restrictivo. En este ejemplo, los permisos de ACL modificados de los grupos sysadmin y staff no exceden los permisos del grupo propietario.
$ chmod 640 file.1 $ ls -lV file.1 -rw-r-----+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:r-----a-R-c---:-------:allow group:staff:r-----a-R-c---:-------:allow owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:------a-R-c--s:-------:allow
La siguiente operación chmod cambia el modo de los permisos a uno menos restrictivo. En este ejemplo, los permisos de ACL modificados de los grupos sysadmin y staff se restauran para permitir los mismos permisos que el grupo propietario.
$ chmod 770 file.1 $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow