fbpx

Comandos Linux – Comando setfacl

Comando Linux setfacl

comando setfacl

Nos sistemas operacionais do tipo Unix, o comando setfacl define as listas de controle de acesso a arquivos .

Este documento cobre a versão Linux do setfacl .

Sintaxe

setfacl [-bkndRLPvh] [{-m | -x} acl_spec ] [{-M | -X} arquivo acl_file ] ...
setfacl --restore = arquivo

Descrição

O utilitário setfacl define listas de controle de acesso (ACLs) de arquivos e diretórios . Na linha de comando , uma sequência de comandos é seguida por uma sequência de arquivos (que por sua vez pode ser seguida por outra sequência de comandos, e assim por diante).

As opções -m e -x esperam uma ACL na linha de comandos. Várias entradas da ACL são separadas por vírgulas (” , “). As opções -M e -X leem uma ACL de um arquivo ou da entrada padrão . O formato de entrada da ACL é descrito na seção Entradas da ACL , abaixo.

As opções –set e –set-file definem a ACL de um arquivo ou diretório. A ACL anterior é substituída. As entradas da ACL para esta operação devem incluir permissões .

As opções -m ( –modify ) e -M ( –modify-file ) modificam a ACL de um arquivo ou diretório. As entradas da ACL para esta operação devem incluir permissões.

As opções -x ( –remove ) e -X ( –remove-file ) removem as entradas da ACL. Não é um erro remover uma entrada que não existe. Somente entradas ACL sem o campo perms são aceitas como parâmetros , a menos que a variável de ambiente POSIXLY_CORRECT esteja definida.

Ao ler arquivos usando as opções -M e -X , o setfacl aceita a saída produzida pelo getfacl . Há no máximo uma entrada de ACL por linha. Após um sinal de cerquilha (” # “), tudo até o final da linha é tratado como um comentário .

Se setfacl for usado em um sistema de arquivos que não suporta ACLs, setfacl funcionará nos bits de permissão do modo de arquivo . Se a ACL não couber completamente nos bits de permissão, o setfacl modifica os bits de permissão do modo de arquivo para refletir a ACL o mais próximo possível, grava uma mensagem de erro no erro padrão e retorna com um status de saída maior que 0 .

O proprietário do arquivo e os processos capazes de CAP_FOWNER têm o direito de modificar as ACLs de um arquivo, que são análogas às permissões necessárias para acessar o modo de arquivo.

Nos sistemas Linux atuais , o root é o único usuário com o recurso CAP_FOWNER , portanto, você deve ser o superusuário para usar setfacl se você não for o proprietário do arquivo.

Opções

-b , –remove-allRemova todas as entradas estendidas da ACL. As entradas da ACL base do proprietário, grupo e outras pessoas são mantidas.
-k , –remove-defaultRemova a ACL padrão. Se não existir uma ACL padrão, nenhum aviso será emitido.
-n , – sem máscaraNão recalcule a máscara de direitos efetivos . O comportamento padrão do setfacl é recalcular a entrada da máscara da ACL, a menos que uma entrada da máscara tenha sido explicitamente fornecida. A entrada da máscara é configurada para a união de todas as permissões do grupo proprietário e de todas as entradas de usuário e grupo nomeadas. (Essas são exatamente as entradas afetadas pela entrada da máscara).
–mascararRecalcule a máscara de direitos efetivos, mesmo que uma entrada da máscara da ACL tenha sido explicitamente fornecida. (Veja a opção -n .)
-d , –defaultTodas as operações se aplicam à ACL padrão. As entradas regulares da ACL no conjunto de entradas são promovidas para entradas padrão da ACL. As entradas padrão da ACL no conjunto de entradas são descartadas. (Um aviso é emitido se isso acontecer).
–restore = arquivoRestaure um backup de permissão criado por ” getfacl -R ” ou similar. Todas as permissões de uma subárvore de diretório completa são restauradas usando esse mecanismo. Se a entrada contiver comentários do proprietário ou do grupo, setfacl tentará restaurar o proprietário e o grupo proprietário. Se a entrada contiver comentários de sinalizadores (que definem os bits setuid , setgid e sticky), setfacl define esses três bits de acordo; caso contrário, ele os limpa. Esta opção não pode ser combinada com outras opções, exceto ” –test “.
–testeModo de teste. Em vez de alterar as ACLs de qualquer arquivo, as ACLs resultantes são listadas.
-R , –recursivoAplique operações a todos os arquivos e diretórios recursivamente . Esta opção não pode ser combinada com ” –restore “.
-L , –logical“Caminhada lógica”: siga os links simbólicos para os diretórios. O comportamento padrão é seguir os argumentos do link simbólico e pular os links simbólicos encontrados nos subdiretórios . Somente eficaz em combinação com -R . Esta opção não pode ser combinada com ” –restore “.
-P , –físico“Caminhada física”: não siga links simbólicos para diretórios. Isso também ignora os argumentos de link simbólico. Somente eficaz em combinação com -R . Esta opção não pode ser combinada com ” –restore “.
-v , –versionImprima a versão do setfacl e saia.
-h , –helpImprima uma mensagem de ajuda explicando as opções da linha de comando.
Um traço duplo marca o final das opções da linha de comando; todos os parâmetros restantes são interpretados como nomes de arquivos . Esta opção é especialmente útil para nomes de arquivos que começam com um traço.
Se o parâmetro do nome do arquivo for um traço único, o setfacl lê uma lista de arquivos da entrada padrão.

Entradas da ACL

O setfacl reconhece os seguintes formatos de entrada da ACL (os espaços nos seguintes formatos são opcionais, mas foram incluídos para legibilidade):

d [ efault ] : ] [ u [ ser ] : ] uid [ permissões ]Permissões do usuário com o ID do usuário uid ou permissões do proprietário do arquivo, se o uid estiver vazio.
d [ efault ] : ] g [ roup ] gid [ permissões ]Permissões do grupo com o ID do grupo gid ou permissões do grupo proprietário, se o gid estiver vazio.
d [ efault ] : ] m [ ask ] [ : ] [ perms ]Máscara de direitos efetivos.
d [ efault ] : ] o [ ther ] [ : ] [ perms ]Permissões de outros.

O espaço em branco entre caracteres delimitadores e não delimitadores é ignorado.

As entradas ACL apropriadas, incluindo permissões, são usadas nas operações de modificação e configuração (opções -m , -M , –set e –set-file ). Entradas sem o campo permanente são usadas para excluir entradas (opções -x e -X ).

Para uid e gid, você pode especificar um nome ou um número.

O campo perms é uma combinação de caracteres que indicam as permissões: ler (” r “), escrever (” w “), executar (” x “) ou “executar apenas se o arquivo for um diretório ou já tiver permissão de execução para algum usuário “(capital” X “). Como alternativa, o campo de permissões pode ser um dígito octal (” 0 ” – ” 7 “).

Entradas criadas automaticamente

Inicialmente, os arquivos e diretórios contêm apenas as três entradas ACL básicas para o proprietário, o grupo e outras. Existem algumas regras que precisam ser atendidas para que uma ACL seja válida:

  • As três entradas básicas não podem ser removidas. Deve haver exatamente uma entrada de cada um desses tipos de entrada base.
  • Sempre que uma ACL contém entradas de usuário nomeadas ou objetos de grupo nomeados, também deve conter uma máscara de direitos efetiva.
  • Sempre que uma ACL contém entradas padrão da ACL, as três entradas base da ACL padrão (proprietário padrão, grupo padrão e outras padrão) também devem existir.
  • Sempre que uma ACL padrão contiver entradas de usuário nomeadas ou objetos de grupos nomeados, também deverá conter uma máscara de direitos efetivos padrão.

Para ajudar o usuário a garantir essas regras, o setfacl cria entradas a partir das entradas existentes nas seguintes condições:

  • Se uma ACL contiver entradas de usuário ou grupo de nomes nomeados e não existir nenhuma entrada de máscara, será criada uma entrada de máscara contendo as mesmas permissões que a entrada de grupo. A menos que a opção -n seja fornecida, as permissões da entrada da máscara serão ajustadas para incluir a união de todas as permissões afetadas pela entrada da máscara. (Veja a descrição da opção -n ).
  • Se uma entrada da ACL padrão for criada e a ACL padrão não contiver nenhuma entrada de proprietário, grupo proprietário ou outras, uma cópia da entrada do proprietário da ACL, grupo proprietário ou outras entradas será adicionada à ACL padrão.
  • Se uma ACL padrão contiver entradas de usuário nomeadas ou entradas de grupo nomeadas e não existir uma entrada de máscara, será adicionada uma entrada de máscara contendo as mesmas permissões que a entrada de grupo da ACL padrão. A menos que a opção -n seja fornecida, as permissões da entrada da máscara serão ajustadas para incluir a união de todas as permissões afetadas pela entrada da máscara. (Veja a descrição da opção -n , acima).

Exemplos

setfacl -mu: arquivo lisa: r

User Grant lisa acesso de leitura para o arquivo arquivo .

arquivo setfacl -mm :: rx

Revogue o acesso de gravação de todos os grupos e todos os usuários nomeados (usando a máscara de direitos efetivos) para o arquivo de arquivo .

setfacl -xg: arquivo de equipe

Remova a entrada de grupo para o grupo equipe a partir do arquivo arquivo ACL ‘s.

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

Copie a ACL do arquivo1 para o arquivo2 .

getfacl --access dir | setfacl -d -M- dir

Copie a ACL de acesso na ACL padrão.

chmod – Altere as permissões de arquivos ou diretórios.
getfacl – exibe listas de controle de acesso a arquivos.
umask – obtém ou define a máscara de criação do modo de arquivo.

21 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.