| 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 deniedExemplo 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