Compartilhamento de dados
Os dados são compartilhados a nível de usuário no HPCC Marvin, usando o sistema de controle de acesso do Linux, conhecido como Access Control Lists (ACLs). As ACLs permitem que você defina permissões específicas para usuários e grupos em diretórios e arquivos, facilitando o compartilhamento seguro de dados entre usuários.
Para garantir a segurança e a privacidade dos dados, cada diretório de usuário no HPCC Marvin possui permissão 700 ou u:rwx, g:---, o:---
. Isso significa que apenas o próprio usuário "u" tem permissão de leitura "r", escrita w
e execução x
, enquanto membros do grupo g
e outros usuários o
não têm acesso.
No entanto, em alguns casos, você pode precisar permitir o acesso a determinados diretórios, como para compartilhar um projeto com outros usuários.
Usando o ACL para compartilhar dados
Nesta seção, vamos usar o usuário hipotético marie.curie
como exemplo para demonstrar como compartilhar dados com outros usuários no HPCC Marvin.
Verificando as permissões
Para verificar as permissões de um arquivo ou um diretório específico, use o seguinte comando no terminal:
getafcl /caminho/do/diretorio_ou_arquivo
Por exemplo, para verificar as permissões do seu HOME
, você pode usar:
$ getafcl /home/marie.curie
# file: /home/marie.curie
# owner: marie.curie
# group: domain\040users
user::rwx
group::---
other::---
Concedendo permissão de acesso a outros usuários
Primeiramente, para compartilhar um arquivo ou diretório com outros usuários, você precisa começar alterarando as permissões do diretório $HOME
para 711. Para isso, use o comando:
chmod 711 /home/marie.curie
Então, cheque as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie
# file: /home/marie.curie
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
Em seguida, você pode usar o comando setfacl
para adicionar permissões de acesso a outros usuários. Por exemplo, para conceder permissão de leitura ao usuário "joao.guerra" no diretório "pasta_compartilhada", use o comando:
setfacl -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
x
foi adicionado para que o usuário consiga executar o comando ls
e listar os arquivos dentro do diretório compartilhado.
Então, cheque as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:r-x
group::--x
mask::r-x
other::--x
Caso você queira dar permissões de acesso recursivamente para todos os arquivos e subdiretórios dentro de "pasta_compartilhada", você pode usar a opção -R
:
setfacl -R -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
Caso você queira conceder acesso para todas os arquivos e subdiretórios que podem ser criados dentro de "pasta_compartilhada", você pode usar a opção -d
:
setfacl -d -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:r-x
group::--x
mask::r-x
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Para adicionar mais permissões, você pode usar outras opções como w
para escrita e x
para execução. Por exemplo, para dar ao usuário "joao.guerra" permissão de escrita e execução na pasta "pasta_compartilhada", use o comando:
setfacl -m u:joao.guerra:rwx /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:rwx
group::--x
mask::rwx
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Removendo permissões de acesso
Para remover as permissões de acesso de um usuário específico, utilize o comando setfacl -x
seguido do usuário desejado. Por exemplo, para remover as permissões de acesso do usuário "joao.guerra" no diretório "pasta_compartilhada", use o comando:
setfacl -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Caso você queira remover permissões de acesso recursivamente para todos os arquivos e subdiretórios dentro de "pasta_compartilhada", você pode usar a opção -R
:
setfacl -R -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Caso você queira remover acesso para todas os arquivos e subdiretórios que podem ser criados dentro de "pasta_compartilhada", você pode usar a opção -d
:
setfacl -d -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
mask::--x
other::--x
default:user::rwx
default:group::--x
default:mask::--x
default:other::--x
Para remover todas as permissões de acesso, você pode usar o comando setfacl -b
seguido do caminho do diretório. Por exemplo, para remover todas as permissões de acesso no diretório "pasta_compartilhada", use o comando:
setfacl -b /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
Usando links simbólicos para pastas compartilhadas
Para facilitar o acesso a pastas compartilhadas, você pode criar links simbólicos (atalhos) para essas pastas em seu HOME
. Isso é especialmente útil quando você precisa acessar frequentemente uma pasta compartilhada sem precisar navegar até o caminho completo toda vez.
Para criar um link simbólico, você pode usar o comando ln -s
seguido do caminho da pasta compartilhada e do caminho onde deseja criar o link. Por exemplo, se você quiser criar um link simbólico para a pasta compartilhada /shared/groups/edb
no seu diretório HOME
, você pode usar o seguinte comando:
ln -s /shared/groups/edb /home/marie.curie/edb
singularity run --bind /caminho/da/pasta/compartilhada:/caminho/dentro/do/container imagem.sif
.