Comprensi√≥n del comando’setfacl’ de Linux

4.6 (92.2%) 164 votes


La utilidad Setfacl establece Listas de Control de Acceso (ACLs) de archivos y directorios. En la l√≠nea de comandos, una secuencia de comandos es seguida por una secuencia de archivos (que a su vez puede ser seguida por otra secuencia de comandos, ….).

  • Las opciones -m, y -x esperan un ACL en la l√≠nea de comandos. Las entradas m√ļltiples de ACL est√°n separadas por comas (`,’). Las opciones -M, y -X leen un ACL desde un archivo o desde una entrada est√°ndar. El formato de entrada ACL se describe en la secci√≥n ACL ENTRADAS.
  • Las opciones –set y –set-file establecen el ACL de un archivo o directorio. Se reemplaza el ACL anterior. Las entradas ACL para esta operaci√≥n deben incluir permisos.
  • Las opciones -m (–modify) y -M (–modify-file) modifican el ACL de un archivo o directorio. Las entradas ACL para esta operaci√≥n deben incluir permisos.
  • Las opciones -x (–remove) y -X (–remove-file) eliminan ACL enries. S√≥lo se aceptan como par√°metros las entradas ACL sin el campo perms, a menos que se defina POSIXLY_CORRECT.

Cuando se lee desde archivos usando las opciones -M, y -X, setfacl acepta la salida que produce getfacl. Hay como m√°ximo una entrada ACL por l√≠nea. Despu√©s de un signo de libra (`#’), todo hasta el final de la l√≠nea es tratado como un comentario.

Si setfacl se utiliza en un sistema de ficheros que no soporta ACLs, setfacl opera en los bits de permiso del modo de fichero. Si la ACL no encaja completamente en los bits de permiso, setfacl modifica los bits de permiso del modo de archivo para reflejar la ACL lo m√°s fielmente posible, escribe un mensaje de error en el error est√°ndar y vuelve con un estado de salida mayor que 0

.

Sinopsis

setfacl [-bkndRLPvh][{-m|-x} acl_spec][{-M|-X} acl_file] file ….

setfacl –restore=file

Permisos

El propietario del fichero y los procesos capaces de CAP_FOWNER tienen derecho a modificar las ACLs de un fichero. Esto es an√°logo a los permisos necesarios para acceder al modo de archivo. (En los sistemas Linux actuales, root es el √ļnico usuario con la capacidad CAP_FOWNER.)

Opciones

-b, –remove-all

  • Eliminar todas las entradas ACL extendidas. Se conservan las entradas ACL base del propietario, grupo y otros.

-k, –remove-default

  • Elimine el ACL predeterminado. Si no existe ning√ļn ACL predeterminado, no se emitir√°n advertencias.

-n, –no-mask

  • No recalcule la m√°scara de derechos efectivos. El comportamiento por defecto de setfacl es recalcular la entrada de la m√°scara ACL, a menos que se haya dado expl√≠citamente una entrada de m√°scara. La entrada de la m√°scara se establece en la uni√≥n de todos los permisos del grupo propietario, y todas las entradas de usuario y grupo con nombre. (Estas son exactamente las entradas afectadas por la entrada de la m√°scara).

–mask

  • Vuelva a calcular la m√°scara de derechos efectivos, incluso si se ha dado expl√≠citamente una entrada de m√°scara ACL. (V√©ase la opci√≥n -n ).

-d, –default

  • Todas las operaciones se aplican al ACL predeterminado. Las entradas regulares de ACL en el conjunto de entradas se promueven a entradas de ACL predeterminadas. Las entradas ACL predeterminadas del conjunto de entradas se descartan. (Se emite una advertencia en caso de que eso ocurra).

–restore=file

  • Restaurar una copia de seguridad de permisos creada por `getfacl -R’ o similar. Todos los permisos de un sub√°rbol de directorio completo se restauran utilizando este mecanismo. Si la entrada contiene comentarios del propietario o comentarios del grupo, y setfacl se ejecuta por root, el propietario y el grupo propietario de todos los archivos tambi√©n se restauran. Esta opci√≥n no se puede mezclar con otras opciones excepto `–test’.

–test

  • Modo de prueba. En lugar de cambiar las ACL de cualquier archivo, se enumeran las ACL resultantes.

-R, –recursive

  • Aplicar operaciones a todos los archivos y directorios de forma recursiva. Esta opci√≥n no se puede mezclar con `–restore’.

-L, –logical

  • Paseo l√≥gico, seguir enlaces simb√≥licos. El comportamiento predeterminado es seguir los argumentos de los enlaces simb√≥licos y omitir los enlaces simb√≥licos que se encuentran en los subdirectorios. Esta opci√≥n no se puede mezclar con `–restore’.

-P, –physical

  • Caminata f√≠sica, salte todos los enlaces simb√≥licos. Esto tambi√©n salta los argumentos simb√≥licos de los enlaces. Esta opci√≥n no se puede mezclar con `–restore’.

–version

  • Imprimir la versi√≥n de setfacl y salir.

–help

  • Imprimir la ayuda explicando las opciones de la l√≠nea de comandos.

Opciones de fin de línea de comandos. Todos los demás parámetros se interpretan como nombres de archivo, incluso si comienzan con un guión.

Si el parámetro de nombre de archivo es un solo guión, setfacl lee una lista de archivos de la entrada estándar.

Entradas ACL

La utilidad setfacl reconoce los siguientes formatos de entrada ACL:

  • [d[efault]:] [u[ser]:] uid [: perms]
  • Permisos de un usuario nombrado. Permisos del propietario del archivo si uid est√° vac√≠o.
  • [d[efault]:] g[roup]: gid [: perms]
  • Permisos de un grupo nombrado. Permisos del grupo propietario si gid est√° vac√≠o.
  • [d[efault]:] m[ask][:] [: perms]
  • M√°scara de derechos efectivos
  • [d[efault]:] o[ther][:] [: perms]
  • Permisos de otros

Se ignoran los espacios en blanco entre los caracteres delimitadores y los caracteres no delimitadores.

Las entradas ACL adecuadas, incluidos los permisos, se utilizan en las operaciones de modificaci√≥n y establecimiento. (opciones -m, -M, –set y –set-file). Las entradas sin el campo perms se utilizan para la eliminaci√≥n de entradas (opciones -x y -X).

Para uid y gid puede especificar un nombre o un n√ļmero.

El campo perms es una combinación de caracteres que indican los permisos: read (r), write (w), execute (x), execute (x), execute only if the file is a directory or already has execute permission for some user (X). Alternativamente, el campo perms puede ser un dígito octal (0-7).

Entradas creadas autom√°ticamente

Inicialmente, los archivos y directorios contienen sólo las tres entradas ACL básicas para el propietario, el grupo y otros. Hay algunas reglas que necesitan ser satisfechas para que un ACL sea válido:

  • Las tres entradas base no se pueden eliminar. Debe haber exactamente una entrada de cada una de estas clases de entrada base.
  • Siempre que una ACL contenga entradas de usuario con nombre u objetos de grupo con nombre, tambi√©n debe contener una m√°scara de derechos efectiva.
  • Siempre que una ACL contenga entradas ACL predeterminadas, tambi√©n deben existir las tres entradas base ACL predeterminadas (propietario predeterminado, grupo predeterminado y otros valores predeterminados).
  • Siempre que una ACL predeterminada contenga entradas de usuario con nombre u objetos de grupo con nombre, tambi√©n debe contener una m√°scara de derechos efectivos predeterminada.

Para ayudar al usuario a asegurar estas reglas, setfacl crea entradas a partir de entradas existentes bajo las siguientes condiciones:

  • Si una ACL contiene entradas de usuario o de grupo con nombre, y no existe ninguna entrada de m√°scara, se crea una entrada de m√°scara que contiene los mismos permisos que la entrada de grupo. A menos que se indique la opci√≥n -n, los permisos de la entrada de la m√°scara se ajustan para incluir la uni√≥n de todos los permisos afectados por la entrada de la m√°scara. (V√©ase la descripci√≥n de la opci√≥n -n).
  • Si se crea una entrada ACL predeterminada y la ACL predeterminada no contiene ninguna entrada de propietario, grupo propietario u otros, se agrega una copia del propietario de la ACL, grupo propietario u otros a la ACL predeterminada.
  • Si una ACL predeterminada contiene entradas de usuario o entradas de grupo con nombre, y no existe ninguna entrada de m√°scara, se agrega una entrada de m√°scara que contiene los mismos permisos que la entrada de grupo predeterminada de la ACL predeterminada. A menos que se indique la opci√≥n -n, los permisos de la entrada de la m√°scara se ajustan para incluir la uni√≥n de todos los permisos afectados por la entrada de la m√°scara. (V√©ase la descripci√≥n -nopci√≥n).

Ejemplos

  • Conceder acceso de lectura a un usuario adicional
  • setfacl -m u:lisa:r archivo
  • Revocaci√≥n del acceso de escritura de todos los grupos y todos los usuarios nombrados (utilizando la m√°scara de derechos efectivos)
  • setfacl -m m::rx archivo
  • Eliminaci√≥n de una entrada de grupo con nombre de una ACL de un archivo
  • setfacl -x g:archivo de pentagrama
  • Copiar el ACL de un archivo a otro
  • getfacl file1 | setfacl –set-file=- file2
  • Copiar la ACL de acceso en la ACL predeterminada
  • getfacl -a dir | setfacl -d -M- dir

Conformidad con el Proyecto de Norma 17 Posix 1003.1e

Si se define la variable de entorno POSIXLY_CORRECT, el comportamiento por defecto de setfacl cambia como sigue: Todas las opciones no est√°ndar est√°n deshabilitadas. El prefijo «default:»’ est√° desactivado. Las opciones -x y -X tambi√©n aceptan campos de permiso (e ignorarlos).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *