Aprende o setfacl do comando Linux

Conxuntos de utilidade Setfacl Listas de control de acceso (ACL) de ficheiros e directorios. Na liña de comandos , unha secuencia de comandos é seguida por unha secuencia de ficheiros (que á súa vez pode ser seguida por outra secuencia de comandos, ...).

As opcións -m, e -x esperan unha ACL na liña de comandos. Múltiples entradas de ACL están separadas por caracteres de comas (`, '). As opcións -M, e -X le unha ACL dun ficheiro ou de entrada estándar. O formato de entrada de ACL descríbese na sección ACL ENTERAS.

As opcións de --set e --set-file configuran a ACL dun ficheiro ou dun directorio. Cambia a ACL anterior. As entradas de ACL para esta operación deben incluír permisos.

As opcións -m (--modify) e -M (--modify-file) modifican a ACL dun ficheiro ou directorio. As entradas de ACL para esta operación deben incluír permisos.

As opcións -x (--remove) e -X (--remove-file) eliminan as enriquecinas ACL. Só se aceptan as entradas ACL sen o campo perms a menos que se defina POSIXLY_CORRECT.

Cando lea desde ficheiros usando as opcións -M e -X , setfacl acepta a produción que produce getfacl. Hai como máximo unha entrada ACL por liña. Despois dun signo de Pound (`# '), todo ata o final da liña é tratado como un comentario.

Se setfacl se usa nun sistema de ficheiros que non admite ACLs, setfacl opera nos bits de permisos do modo de ficheiro. Se a ACL non se encaixa completamente nos bits de permisos, setfacl modifica os bits de permisos do modo de ficheiro para reflectir o ACL o máis próximo posible, escribe unha mensaxe de erro no erro estándar e regresa cun estado de saída superior a 0.

SINOPSE

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

setfacl --restore = ficheiro

PERMISOS

O propietario do ficheiro e os procesos capaces de CAP_FOWNER teñen dereito a modificar as ACL dun ficheiro. Isto é análogo aos permisos necesarios para acceder ao modo de ficheiro. (Nos sistemas Linux actuais, a raíz é o único usuario coa capacidade CAP_FOWNER).

OPCIÓNS

-b, --remove-all

Elimina todas as entradas ACL prolongadas. As entradas ACL base do propietario, o grupo e outros mantéñense.

-k, --remove-default

Elimina a ACL predefinida. Se non existe ACL por defecto, non se emiten avisos.

-n, --no-mask

Non recalculate a máscara de dereitos efectivos. O comportamento predeterminado do setfacl é recalcular a entrada da máscara de ACL, a non ser que se proporcione explicitamente unha entrada de máscara. A entrada de máscara está configurada na unión de todos os permisos do grupo propietario e todas as entradas de usuario e grupo nomeadas. (Estas son exactamente as entradas afectadas pola entrada de máscara).

--mask

Recalcula a máscara de dereitos efectivos, aínda que se outorgue explicitamente unha entrada de máscara de ACL. (Vexa a opción -n ).

-d, --default

Todas as operacións se aplican á ACL predefinida. As entradas ACL regulares no conxunto de entradas son ascendidas a entradas de ACL predeterminadas. As entradas predeterminadas da ACL no conxunto de entrada descartáronse. (Aviso emitido se isto ocorre).

--restore = ficheiro

Restaurar unha copia de seguridade de permiso creada por `getfacl-R 'ou similar. Todos os permisos dun subtree de directorio completo son restaurados mediante este mecanismo. Se a entrada contén comentarios de propietario ou comentarios de grupo, e setfacl é administrado por root, tamén se restauran o propietario e o grupo propietario de todos os ficheiros. Esta opción non pode ser mesturada con outras opcións excepto `--test '.

- proba

Modo proba. En vez de cambiar as ACL de todos os ficheiros, amósanse as ACL resultantes.

-R, --recursivo

Aplicar operacións a todos os ficheiros e directorios de forma recursiva. Esta opción non se pode combinar con `--restore '.

-L, --logical

Camiño lóxico, siga ligazóns simbólicas. O comportamento predeterminado é seguir os argumentos de ligazón simbólica e saltar ligazóns simbólicas atopadas nos subdirectorios. Esta opción non se pode combinar con `--restore '.

-P, --físico

Camiño físico, omita todas as ligazóns simbólicas. Isto tamén omite os argumentos da ligazón simbólica. Esta opción non se pode combinar con `--restore '.

--versión

Imprimir a versión de setfacl e saír.

- axuda

Imprimir axuda a explicar as opcións da liña de comandos.

Opcións de liña de fin de comando. Todos os parámetros restantes son interpretados como nomes de ficheiros, mesmo se comezan cun guión.

Se o parámetro nome de ficheiro é un só guión, setfacl le unha lista de ficheiros de entrada estándar.

ACL INGRESOS

A utilidade setfacl recoñece os seguintes formatos de entrada de ACL (espazos en branco inseridos para maior claridade):

[d [efault]:] [u [ser]:] uid [: perms ]

Permisos dun usuario nomeado. Permisos do propietario do ficheiro se uid está baleiro.

[d [efault]:] g [roup]: gid [: perms ]

Permisos dun grupo nomeado. Permisos do grupo propietario se gid está baleiro.

[d [efault]:] m [preguntar] [:] [: perms ]

Máscara de dereitos efectivos

[d [efault]:] o [ther] [:] [: perms ]

Permisos dos demais.

O espazo en branco entre caracteres delimitadores e caracteres non delimitadores ignórase.

As entradas de ACL axeitadas que inclúen permisos son usadas nas operacións de modificación e configuración. (opcións -m , -M , --set e --set-file ). As entradas sen o campo perms úsanse para eliminar as entradas (opcións -x e -X ).

Para uid e gid pode especificar un nome ou un número.

O campo perms é unha combinación de caracteres que indican os permisos: ler (r) , escribir (w) , executar (x) , executar só se o ficheiro é un directorio ou xa ten permiso de execución para algún usuario (X) . Alternativamente, o campo perms pode ser un díxito octal (0-7).

ENTREGAS AUTOMÁTICAMENTE CREADAS

Inicialmente, os ficheiros e directorios conteñen só as tres entradas de ACL base para o propietario, o grupo e outros. Hai algunhas regras que deben ser satisfeitas para que unha ACL sexa válida:

*

Non se poden eliminar as tres entradas base. Debe haber exactamente unha entrada de cada un destes tipos de entrada base.

*

Sempre que un ACL conteña entradas de usuario ou obxectos de grupo nomeados, tamén debe conter unha máscara de dereitos efectiva.

*

Sempre que unha ACL contén entradas predeterminadas da ACL, tamén deben existir as tres entradas básicas ACL predeterminadas (propietario predeterminado, grupo predeterminado e outras por defecto).

*

Cada vez que un ACL predefinido contén entradas de usuario ou obxectos de grupo nomeados, tamén debe conter unha máscara de dereitos efectiva por defecto.

Para axudar ao usuario a garantir estas regras, setfacl crea entradas de entradas existentes nas seguintes condicións:

*

Se un ACL contén nomes de usuario ou entradas de grupo nomeadas e non hai entrada de máscara, créase unha entrada de máscara que contén os mesmos permisos que a entrada do grupo. A menos que se outorgue a opción -n , os permisos da entrada de máscara axústanse máis para incluír a unión de todos os permisos afectados pola entrada da máscara. (Vexa a descrición da opción -n ).

*

Se se crea unha entrada de ACL predeterminada e a ACL predeterminada non contén un propietario, posúe grupo ou outra entrada, engádese a ACL predeterminada unha copia do propietario do propietario da ACL, da propiedade do grupo ou doutra.

*

Se un ACL predeterminado contén entradas de usuario nomeadas ou entradas de grupo nomeadas e non hai entrada de máscara, engádese unha entrada de máscara que conteña os mesmos permisos que a entrada de grupo predeterminada da ACL. A non ser que se outorgue a opción -n , os permisos da entrada de máscara axústanse tamén para incluir a unión de todos os permisos afectados pola entrada da máscara. (Vexa a descrición da opción -n ).

EXEMPLOS

Conceder un acceso adicional ao lector de usuarios

setfacl -mu: lisa: ficheiro r

Revogando o acceso de escrita de todos os grupos e todos os usuarios nomeados (usando a máscara de dereitos efectivos)

ficheiro setfacl -mm :: rx

Eliminando unha entrada de grupo nomeada desde a ACL dun ficheiro

setfacl -xg: ficheiro de persoal

Copiando a ACL dun ficheiro a outro

getfacl file1 | setfacl --set-file = - file2

Copiando a ACL de acceso á ACL predeterminada

getfacl-a dir | setfacl -d -M-dir

ACORDO A POSIX 1003.1E PROXECTO ESTÁNDAR 17

Se a variable de ambiente POSIXLY_CORRECT está definida, o comportamento predeterminado do setfacl cambia do seguinte xeito: Todas as opcións non estándar están desactivadas. O prefixo `` predeterminado: '' está desactivado. As opcións -x e -X tamén aceptan campos de permiso (e ignóralas).

VER TAMÉN

umask (1),