Guia de administração do ZFS Oracle Solaris

Delegando permissões do ZFS

Você pode usar o comando zfs allow a fim de conceder permissões em conjuntos de dados ZFS a usuários não-privilegiados das seguintes formas:

A tabela abaixo descreve as operações que podem ser delegadas e as permissões dependentes requeridas para realizar as operações delegadas.

Permissão (Subcomando) 

Descrição 

Dependências 

allow

A capacidade que você tem de conceder permissões a outro usuário. 

Também deve ter a permissão que está sendo concedida. 

clone

A capacidade de clonar quaisquer instantâneos do conjunto de dados.  

Também deve possuir as capacidades create e mount no sistema de arquivos original.

create

A capacidade de criar conjuntos de dados descendentes. 

Também deve possuir a capacidade mount.

destroy

A capacidade de destruir um conjunto de dados. 

Também dever possuir a capacidade mount.

mount

A capacidade de montar e desmontar um conjunto de dados e de criar e destruir os links do dispositivo de volume. 

 

promote

A capacidade de promover um clone de um conjunto de dados. 

Também deve possuir as capacidades mount e promote no sistema de arquivos original.

receive

A capacidade de criar sistemas de arquivos descendentes com o comando zfs receive.

Também deve possuir as capacidades mount e create.

rename

A capacidade de renomear um conjunto de dados. 

Também deve possuir as capacidades create e mount no novo pai.

reversão

A capacidade de reverter um instantâneo. 

 

send

A capacidade de enviar um fluxo de instantâneo. 

 

share

A capacidade de compartilhar e cancelar o compartilhamento de um conjunto de dados. 

 

instantâneo

A capacidade de obter um instantâneo de um conjunto de dados. 

 

Você pode delegar os seguintes conjuntos de permissões, mas a permissão pode estar limitada para a permissão de acesso, leitura ou alteração:

Além disso, você pode delegar as seguintes propriedades do ZFS a usuários não raiz:

Algumas destas propriedades podem ser definidas somente durante a criação do conjunto de dados. Para obter uma descrição destas propriedades, consulte Introduzindo as propriedades do ZFS.

Delegação de permissões do ZFS (zfs allow)

A sintaxe de zfs allow é a seguinte:


zfs allow -[ldugecs] everyone|user|group[,...] perm|@setname,...] filesystem| volume

A sintaxe de zfs allow abaixo (em negrito) identifica a quem as permissões são delegadas:


zfs allow [-uge]|user|group|everyone [,...] filesystem | volume

Podem ser especificadas várias entidades em uma lista separada por vírgulas. Se não for especificada nenhuma opção -uge , o argumento é interpretado preferencialmente como a palavra-chave everyone, a seguir, como um nome de usuário e, por último, como um nome de grupo. Para especificar um usuário ou grupo denominado “everyone”, use a opção -u ou -g. Para especificar um grupo com o mesmo nome de um usuário, use a opção -g. A opção -c concede as permissões no momento da criação.

A sintaxe de zfs allow abaixo (em negrito) identifica como as permissões e os conjuntos de permissões são especificados:


zfs allow [-s] ... perm|@setname [,...] filesystem | volume

Podem ser especificadas várias permissões em uma lista separada por vírgulas. Os nomes das permissões são os mesmo dos subcomandos e propriedades do ZFS. Para obter mais informações, consulte a seção anterior.

As permissões podem ser reunidas em conjuntos de permissões e são definidas pela opção -s. Os conjuntos de permissões podem ser usados por outros comandos zfs allow no sistema de arquivos especificado e seus descendentes. Os conjuntos de permissões são avaliados dinamicamente, de modo que as alterações no conjunto são atualizadas imediatamente. Os conjuntos de permissões seguem as mesmas convenções de nomeação dos sistemas de arquivos ZFS, mas o nome deve começar com o sinal de arroba (@) e não pode ter mais de 64 caracteres.

A sintaxe de zfs allow abaixo (em negrito) identifica como as permissões são delegadas:


zfs allow [-ld] ... ... filesystem | volume

A opção -l indica que a permissão é concedida ao conjunto de dados especificado e não a seus descendentes, a menos que a opção -d também seja especificada. A opção -d indica que a permissão é concedida aos conjuntos de dados descendentes e não a este conjunto de dados, a menos que a opção -l também seja especificada. Se nenhuma das opções -ld forem especificadas, as permissões são concedidas ao sistema de arquivos ou volume e a todos os seus descendentes.

Removendo as permissões delegadas do ZFS (zfs unallow)

Você pode remover as permissões concedidas anteriormente com o comando zfs unallow.

Por exemplo, suponha que você delegou as permissões create, destroy, mount e snapshot como a seguir:


# zfs allow cindys create,destroy,mount,snapshot tank/cindys
# zfs allow tank/cindys
-------------------------------------------------------------
Local+Descendent permissions on (tank/cindys)
        user cindys create,destroy,mount,snapshot
-------------------------------------------------------------

Para remover estas permissões, pode ser necessário usar uma sintaxe semelhante à seguinte:


# zfs unallow cindys tank/cindys
# zfs allow tank/cindys