Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
Guia de administração do ZFS Oracle Solaris |
1. Sistema de arquivos Oracle Solaris ZFS (introdução)
2. Introdução ao ZFS do Oracle Solaris
3. Diferenças entre o sistema de arquivos tradicional e o ZFS do Oracle Solaris
4. Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris
5. Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris
6. Gerenciando sistemas de arquivos ZFS do Oracle Solaris
7. Trabalhando com instantâneos e clones do ZFS do Oracle Solaris
8. Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris
Descrições de sintaxe para definição de ACLs
Propriedade da ACL (aclinherit)
Definindo ACLs em arquivos ZFS
Definindo e exibindo ACLs em arquivos ZFS no formato verboso
Definindo a herança da ACL em arquivos ZFS no formato verboso
9. Administração delegada do ZFS do Oracle Solaris
10. Tópicos avançados do ZFS do Oracle Solaris
11. Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS
Você pode definir e exibir as permissões em arquivos ZFS em um formato compacto que usa unicamente 14 letras para representar as permissões. As letras que representam as permissões compactas estão listadas na Tabela 8-2 e na Tabela 8-3.
Você pode exibir listagens de ACLs compactas de arquivos e diretórios usando o comando ls -V. Por exemplo:
# 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
A saída de ACL compacta é descrita da seguinte forma:
O proprietário pode ler e modificar o conteúdo do arquivo ( rw=read_data/write_data), (p= append_data). O proprietário também pode modificar os atributos do arquivo, tais como registros de data/hora, atributos estendidos e ACLs (a=read_attributes , A=write_xattr, R= read_xattr, W=write_attributes, c=read_acl, C=write_acl). Além disso, o proprietário pode modificar a propriedade do arquivo (o=write_owner).
A permissão de acesso synchronize não está implementada atualmente.
O grupo recebe permissões de leitura para o arquivo (r= read_data) e os atributos do arquivo (a=read_attributes , R=read_xattr, c= read_acl).
A permissão de acesso synchronize não está implementada atualmente.
Todos os que não são nem usuários nem grupos têm permissões de leitura para o arquivo e para os atributos do arquivo (r=read_data, a=append_data, R=read_xattr , c=read_acl e s= synchronize).
A permissão de acesso synchronize não está implementada atualmente.
A ACL de formato compacto oferece as seguintes vantagens em relação à ACL de formato verboso:
As permissões podem ser especificadas como argumentos posicionais para o comando chmod.
Os hífens (-), que indicam "sem permissões", podem ser removidos e somente as letras requeridas devem ser especificadas.
Ambos sinalizadores, de permissões e de herança, estão definidos no mesmo modo.
Para obter mais informações sobre o uso de ACL de formato compacto, consulte Definindo e exibindo ACLs em arquivos ZFS no formato verboso.
Exemplo 8-10 Definindo e exibindo ACLs em formato compacto
No exemplo abaixo, existe uma ACL comum no file.1:
# 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
Neste exemplo, as permissões read_data/execute são adicionadas ao usuário gozer em 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
No exemplo abaixo, o usuário gozer tem permissões de leitura, gravação e execução que são herdadas pelos novos arquivos e diretórios através do formato compacto de ACL.
# 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
Você também pode recortar e colar os sinalizadores de permissões e de herança da saída ls -V no formato compacto chmod. Por exemplo, para duplicar os sinalizadores de permissões e de herança no dir.2 do usuário gozer para o usuário cindy em dir.2, copie e cole os sinalizadores de permissão e de herança (rwx-----------:fd----:allow )no comando chmod. Por exemplo:
# 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
Exemplo 8-11 Herança da ACL com o modo de ACL herdada definido como passar
Um sistema de arquivos que apresenta a propriedade aclinherit definida como passthrough herda todas as entradas da ACL sem as modificações feitas em tais entradas quando estas são herdadas. Quando o valor da propriedade estiver definido como passthrough, os arquivos são criados com um modo de permissão determinado pelas ACEs herdáveis. Se não houver ACEs herdáveis que afetem o modo de permissão, então o modo de permissão será definido de acordo com o modo solicitado do aplicativo.
Os exemplos seguintes usam a sintaxe compacta de ACL para mostrar como herdar bits de permissão definindo o modo aclinherit como passthrough.
Neste exemplo, uma ACL está definida no test1.dir para forçar a herança. A sintaxe cria uma entrada ACL de owner@, group@ e everyone@ para os arquivos recém-criados. O diretórios recém-criados herdam uma entrada ACL de @owner, group@ e 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
Neste exemplo, o arquivo recém-criado herda a ACL que foi especificada para ser herdada nos arquivos recém-criados.
# 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
Neste exemplo, o diretório recém-criado herda as ACEs que controlam o acesso a este diretório, bem como as ACEs para futuras propagações para os filhos do diretório recém-criado.
# 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
As entradas fd---- servem para propagar herança e não são consideradas durante o controle de acesso. Neste exemplo, é criado um arquivo com uma ACL comum em outro diretório no qual as ACEs herdadas não estão presentes.
# 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
Exemplo 8-12 Herança da ACL com o modo de ACL herdada definido como passar X
Quando aclinherit=passthrough-x estiver habilitado, os arquivos são criados com a permissão de executar (x) para o owner@, group@ ou everyone@, mas somente de a permissão de executar estiver definida no modo de criação de arquivo em uma ACE herdável que afeta o modo
Os exemplos a seguir mostram como herdar a permissão de executar ao definir o modo aclinherit como passthrough-x.
# zfs set aclinherit=passthrough-x tank/cindy
A seguinte ACL é definida em /tank/cindy/test1.dir para fornecer uma herança de ACL executável para arquivos para 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
Um arquivo (file1) é criado com as permissões solicitadas 0666. As permissões resultantes são 0660. A permissão de execução não foi herdada já que o modo de criação não a solicitou.
# 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 seguir, um executável denominado t é gerado com o uso do compilador cc no diretório 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
As permissões resultantes são 0770 porque o cc solicitou permissões 0777, que causou a herança da permissão de executar das entradas owner@, group@ e everyone@.