As Listas de Controle de Acesso (ACLs) estendem o modelo de permissão padrão do UNIX® em um compatível com o modo POSIX®.1e. Isso permite que um administrador aproveite um modelo de permissões mais refinado.
O kernel FreeBSD GENERIC
fornece suporte a ACL para sistemas de arquivos UFS. Usuários que preferem compilar um kernel personalizado devem incluir a seguinte opção em seu arquivo de configuração do kernel personalizado:
options UFS_ACL
Se esta opção não for ativada na compilação, uma mensagem de aviso será exibida ao tentar montar um sistema de arquivos com o suporte a ACL. As ACLs dependem de atributos estendidos que são suportados nativamente pelo UFS2.
Este capítulo descreve como ativar o suporte a ACL e fornece alguns exemplos de uso.
As ACLs são habilitadas pela flag administrativa de tempo de montagem, acls
, que podem ser adicionadas ao arquivo /etc/fstab
. As flags de tempo de montagem também podem ser configuradas automaticamente de forma persistente usando-se o tunefs(8) para modificar um superbloco de flags ACLs no cabeçalho do sistema de arquivos. Em geral, é preferível usar flags de superbloco por vários motivos:
A flag de superbloco não pode ser alterada por um remount usando mount -u
, pois requer um umount
completo e um mount
completo. Isso significa que as ACLs não podem ser ativadas no sistema de arquivos raiz após a inicialização. Isso também significa que o suporte a ACL em um sistema de arquivos não pode ser alterado enquanto o sistema estiver em uso.
Definir a flag de superbloco faz com que o sistema de arquivos seja sempre montado com a ACL ativada, mesmo que não haja uma entrada no fstab
ou se os dispositivos forem reordenados. Isso evita a montagem acidental do sistema de arquivos sem o suporte a ACL.
É desejável desencorajar a montagem acidental sem que a ACL esteja habilitada porque coisas desagradáveis podem acontecer se ACLs estiverem habilitadas, e então desabilitadas e então reativadas sem limpar os atributos estendidos. Em geral, uma vez que as ACLs forem habilitadas em um sistema de arquivos, elas não devem ser desabilitadas, pois as proteções de arquivos resultantes podem não ser compatíveis com aquelas pretendidas pelos usuários do sistema e ACLs reativadas podem reconectar as ACLs anteriores aos arquivos que tiveram suas permissões alteradas, resultando em um comportamento imprevisível.
Os sistemas de arquivos com a ACL ativada exibirão um sinal de mais (+
) nas configurações de permissão:
drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html
Neste exemplo, o directory1
, directory2
e directory3
estão todos fazendo uso de ACLs, enquanto public_html
não está.
As ACLs de um sistema de arquivos podem ser visualizadas usando getfacl
. Por exemplo, para visualizar as configurações de ACL no arquivo test
:
%
getfacl test
#file:test #owner:1001 #group:1001 user::rw- group::r-- other::r--
Para alterar as configurações de ACL neste arquivo, use setfacl
. Para remover todos os ACLs atualmente definidos de um arquivo ou sistema de arquivos, inclua -k
. No entanto, o método preferido é usar -b
, pois ela deixa os campos básicos necessários para que as ACLs funcionem.
%
setfacl -k test
Para modificar as entradas padrões das ACLs, use -m
:
%
setfacl -m u:trhodes:rwx,group:web:r--,o::--- test
Neste exemplo, não havia entradas predefinidas, pois elas foram removidas pelo comando anterior. Este comando restaura as opções padrões e atribui as opções listadas. Se um usuário ou grupo for adicionado e não existir no sistema, um erro de Invalid argument será exibido.
Consulte getfacl(1) e setfacl(1) para maiores informações sobre as opções disponíveis para esses comandos.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.