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
9. Administração delegada do ZFS do Oracle Solaris
Visão geral da administração delegada de ZFS
Desativando permissões delegadas do ZFS
Delegação de permissões do ZFS (zfs allow)
Removendo as permissões delegadas do ZFS (zfs unallow)
Exibindo permissões delegadas do ZFS (Exemplos)
Removendo permissões delegadas ZFS (exemplos)
10. Tópicos avançados do ZFS do Oracle Solaris
11. Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS
Exemplo 9-1 Delegando permissões a um usuário individual
Ao delegar as permissões create e mount a um usuário individual, é necessário ter certeza de que o usuário tem as permissões no ponto de montagem subjacente.
Por exemplo, para delegar ao usuário as permissões mark create e mount no sistema de arquivos tank, defina primeiro as permissões:
# chmod A+user:mark:add_subdirectory:fd:allow /tank/home
A seguir, utilize o comando zfs allow para delegar as permissões create, destroy e mount. Por exemplo:
# zfs allow mark create,destroy,mount tank/home
Agora, o usuário mark pode criar seus próprios sistemas de arquivos no sistema de arquivos tank. Por exemplo:
# su mark mark$ zfs create tank/home/mark mark$ ^D # su lp $ zfs create tank/lp cannot create 'tank/lp': permission denied
Exemplo 9-2 Delegando permissões create e destroy a um grupo
O exemplo seguinte mostra como configurar um sistema de arquivos para que todos no grupo staff possam criar e montar sistemas de arquivos no sistema de arquivos tank, bem como destruir seus próprios sistemas de arquivos. No entanto, os membros do grupo staff não podem destruir os sistemas de arquivos de outros.
# zfs allow staff create,mount tank/home # zfs allow -c create,destroy tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------- Create time permissions: create,destroy Local+Descendent permissions: group staff create,mount # su cindy cindy% zfs create tank/home/cindy cindy% exit # su mark mark% zfs create tank/home/mark/data mark% exit cindy% zfs destroy tank/home/mark/data cannot destroy 'tank/home/mark/data': permission denied
Exemplo 9-3 Delegando permissões no nível correto do sistema de arquivos
Certifique-se de ter delegado permissão aos usuários no nível correto do sistema de arquivos. Por exemplo, ao usuário mark são delegadas as permissões create, destroy e mount para os sistemas de arquivos locais e descendentes. Ao usuário mark, é concedida a permissão local para realizar instantâneos do sistema de arquivos tank/home, mas não a permissão para realizar instantâneos do seu próprio sistema de arquivos. Assim, ele não tem a permissão snapshot delegada no nível correto do sistema de arquivos.
# zfs allow -l mark snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------- Create time permissions: create,destroy Local permissions: user mark snapshot Local+Descendent permissions: group staff create,mount # su mark mark$ zfs snapshot tank/home@snap1 mark$ zfs snapshot tank/home/mark@snap1 cannot create snapshot 'tank/home/mark@snap1': permission denied
Para conceder ao usuário mark a permissão no nível do descendente, utilize a opção zfs allow - d. Por exemplo:
# zfs unallow -l mark snapshot tank/home # zfs allow -d mark snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------- Create time permissions: create,destroy Descendent permissions: user mark snapshot Local+Descendent permissions: group staff create,mount # su mark $ zfs snapshot tank/home@snap2 cannot create snapshot 'tank/home@snap2': permission denied $ zfs snapshot tank/home/mark@snappy
Agora, o usuário mark pode apenas criar um instantâneo abaixo do nível do sistema de arquivos tank/home.
Exemplo 9-4 Definindo e usando permissões delegadas complexas
É possível delegar permissões específicas a usuários ou grupos. Por exemplo, o comando zfs allow a seguir delega permissões específicas ao grupo staff. Além disso, as permissões destroy e snapshot são delegadas após a criação dos sistemas de arquivos tank/home.
# zfs allow staff create,mount tank/home # zfs allow -c destroy,snapshot tank/home # zfs allow tank/home ---- Permissions on tank/home ---------------------------------------- Create time permissions: create,destroy,snapshot Local+Descendent permissions: group staff create,mount
Como o usuário mark é membro do grupo staff, ele pode criar sistemas de arquivos tank/home. Além disso, o usuário mark pode criar um instantâneo de tank/home/mark2 porque possui as permissões específicas para isso. Por exemplo:
# su mark $ zfs create tank/home/mark2 $ zfs allow tank/home/mark2 ---- Permissions on tank/home/mark2 ---------------------------------- Local permissions: user mark create,destroy,snapshot ---- Permissions on tank/home ---------------------------------------- Create time permissions: create,destroy,snapshot Local+Descendent permissions: group staff create,mount
Mas o usuário mark não pode criar um instantâneo em tank/home/mark porque ele não possui a permissão específica para fazê-lo. Por exemplo:
$ zfs snapshot tank/home/mark2@snap1 $ zfs snapshot tank/home/mark@snap1 cannot create snapshot 'tank/home/mark@snap1': permission denied
Neste exemplo, usuário mark possui permissão create no diretório home, o que significa que ele pode criar instantâneos. Esta situação é útil quando o sistema de arquivos está montado em NFS.
Exemplo 9-5 Definindo e usando um conjunto de permissões delegadas do ZFS
O exemplo a seguir mostra como criar um conjunto de permissões @myset e delegar o conjunto de permissões no grupo staff para o sistema de arquivos tank. O usuário cindy, membro do grupo staff, possui a permissão para criar um sistema de arquivos em tank. Entretanto, o usuário lp não possui permissão para criar um sistema de arquivos em tank.
# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank # zfs allow tank ---- Permissions on tank --------------------------------------------- Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot # zfs allow staff @myset,rename tank # zfs allow tank ---- Permissions on tank --------------------------------------------- Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot Local+Descendent permissions: group staff @myset,rename # chmod A+group:staff:add_subdirectory:fd:allow tank # su cindy cindy% zfs create tank/data cindy% zfs allow tank ---- Permissions on tank --------------------------------------------- Permission sets: @myset clone,create,destroy,mount,promote,readonly,snapshot Local+Descendent permissions: group staff @myset,rename cindy% ls -l /tank total 15 drwxr-xr-x 2 cindy staff 2 Jun 24 10:55 data cindy% exit # su lp $ zfs create tank/lp cannot create 'tank/lp': permission denied