segunda-feira, 26 de junho de 2023

Laboratório: Como Compartilhar uma Pasta com um Grupo em Linux

Imagem inicio do post, uma pasta com três utilizadores dentro de um círculo.

Índice de conteúdo:

  1. Para que compartilhar pastas?
  2. Como compartilhar uma pasta

Aqui vamos fazer uso de permissões e grupos, pelo que estes posts poderão ser de alguma utilidade para melhor entendimento:

Para que compartilhar pastas?

Compartilhar uma pasta em Linux é uma forma de disponibilizar a vários usuários os mesmos documentos. Isto pode ser útil, seja por razões de colaboração, seja para compartilhar ficheiros ou para fazer backup.

Neste laboratório vamos compartilhar uma pasta com um grupo e para isso vamos fazer o seguinte:
  1. Criar em /home/ uma pasta com o nome DesenvolvimentoWeb, e dentro da pasta DesenvolvimentoWeb vamos criar duas outras pastas: Documentos e Imagens. Nessas pastas colocaremos os ficheiros que queremos disponibilizar ao grupo
  2. Criar um grupo com o nome desenvolvedores
  3. Criar dois usuários: desenvolvedor-1 e desenvolvedor-2
  4. Adicionar ao grupo os usuários que queremos dar acesso ao mesmo, neste caso serão os usuários desenvolvedor-1 e desenvolvedor-2.
  5. Alterar a propriedade da pasta para o grupo.
  6. Definir as permissões na pasta para que o grupo tenha o acesso desejado.

Como compartilhar uma pasta

Aqui vamos seguir com exemplos o passo-a-passo de como compartilhar diretórios. Estou usando o Linux Fedora 38, se você usa uma outra distribuição Linux, também pode funcionar.

Criar a pasta a ser partilhada e as subpastas:

# mkdir /home/DesenvolvimentoWeb

# mkdir /home/DesenvolvimentoWeb/Documentos

# mkdir /home/DesenvolvimentoWeb/Imagens

A pasta DesenvolvimentoWeb e subpastas poderiam também ser criadas desta forma:

# mkdir -p /home/DesenvolvimentoWeb/{Documentos,Imagens}

Atenção à opção -p, também não deverá haver espaço entre a vírgula e o nome das pastas.

Criação das pastas

Vamos colocar uma imagem e um documento de texto nas pastas para efeito de teste:

Para o documento de teste, vamos criar um documento com o nome de documento-de-teste.txt da seguinte forma:

# echo "Estamos com esta mensagem testando a partilha de uma pasta num grupo com dois utilizadores" > /home/DesenvolvimentoWeb/Documentos/documento-de-teste.txt
Criação de um documento de texto usando o comando echo.

Para a imagem de teste, copie uma imagem para a pasta Imagens. Aqui o meu nome de utilizador é administrador, o teu poderá ser outro.

# cp /home/administrador/Transferências/grupos-1.png /home/DesenvolvimentoWeb/Imagens/

Criar o grupo:

# groupadd desenvolvedores
Criando o grupo desenvolvedores

Criar dois utilizadores:

# useradd -c "desenvolvedor-1" -m -d /home/desenvolvedor-1 desenvolvedor-1

# useradd -c "desenvolvedor-2" -m -d /home/desenvolvedor-2 desenvolvedor-2
Criando dois utilizadores: desenvolvedor-1 e desenvolvedor-2

Criar password para desenvolvedor-1 e fazer o mesmo para desenvolvedor-2:

# passwd desenvolvedor-1

# passwd desenvolvedor-2

Criando a palavra passe para os dois utilizadores.

Adicionar utilizadores ao grupo:

# usermod -aG desenvolvedores desenvolvedor-1

# usermod -aG desenvolvedores desenvolvedor-2

Adicionando utilizadores ao grupo de desenvolvedores

Podia-se também criar os utilizadores e incluí-los logo no grupo de desenvolvedores usando a opção -G seguido do nome do grupo:

# useradd -c "desenvolvedor-1" -G desenvolvedores -m -d /home/desenvolvedor-1 desenvolvedor-1

# useradd -c "desenvolvedor-2" -G desenvolvedores -m -d /home/desenvolvedor-2 desenvolvedor-2

Alterar a propriedade da pasta:

# chgrp desenvolvedores /home/DesenvolvimentoWeb

Definir as permissões na pasta:

# chmod 770 /home/DesenvolvimentoWeb

Listagem das pastas Documentos e Imagens criadas dentro da pasta DesenvolvimentoWeb.

Vamos fazer um teste

Agora vamos logar como desenvolvedor-1

$ su - desenvolvedor-1

Digite a palavra-passe para o desenvolvedor-1.

Logado como desenvolvedor-1 para teste.
Experimentando as permissões de acesso como desenvolvedor-1

Agora vamos ver se o desenvolvedor-1 consegue acessar a nossa pasta DesenvolvimentoWeb.

$ cd /home/DesenvolvimentoWeb/Documentos

$ cat documento-de-teste.txt

Acessando o documento de texto na pasta Documentos contido na pasta partilhada como teste

$ cd /home/DesenvolvimentoWeb/Imagens

Como estamos em forma de texto, podemos ver a imagem com o seguinte comando

$ display grupos-1.png

Entrando na pasta Imagens como teste de permissões.

Podemos fazer o mesmo para testar como desenvolvedor-2, mas desta vez vamos usar a forma gráfica.

Vista geral dos utilizadores do sistema

Screen contendo todos os utilizadores do sistema.

Utilizador desenvolvedor-2 com o qual vamos fazer o teste usando GUI (Interface Gráfica do Utilizador)

Utilizador desenvolvedor-2 logando no sistema.

Vista geral dos diretórios em /home/

Vista geral das pastas em /home/ a partir da conta do desenvolvedor-2

Vista das pastas em /home/DesenvolvimentoWeb/

Vista das pastas em /home/DesenvolvimentoWeb/

Vista do documento em /home/DesenvolvimentoWeb/Documentos/

Vista do documento em /home/DesenvolvimentoWeb/Documentos/

Vista da imagem em /home/DesenvolvimentoWeb/Imagens/

Vista da imagem em /home/DesenvolvimentoWeb/Imagens/

Podemos acessar a pasta em /home/DesenvolvimentoWeb/ mas também podemos criar um link simbólico dentro da nossa pasta /home/desenvolvedor-1/Documentos e ter ali disponível o conteúdo da pasta partilhada:

Para isso, na Pasta Pessoal do utilizador desenvolvedor-1, entramos na pasta Documentos com o primeiro comando; com o segundo criamos um link simbólico e com o terceiro comando listamos as informações do ficheiro no atual diretório.

$ cd Documentos

$ ln -s /home/DesenvolvimentoWeb

$ ls -l

Entrando na pasta Documentos do utilizador desenvolvedor-1 para criar um link simbólico

Apresentação gráfica do nosso link simbólico. Daqui podemos acessar todos os documentos contidos na pasta compartilhada.

Apresentação gráfica do link simbólico da pasta DesenvolvimentoWeb
Apresentação das duas pastas Documentos e Imagens dentro da pasta DesenvolvimentoWeb em forma grafica.

Para remover um utilizador do grupo:

# gpasswd -d desenvolvedor-2 desenvolvedores

Para remover um grupo:

# groupdel desenvolvedores

*****************************************

Até agora, os documentos partilhados por cada utilizador podem ser apagados ou renomeados por um outro utilizador pertencente ao grupo.

Para que haja maior proteção para a integridade do documento de cada elemento do grupo, vamos usar uma permissão especial usada em directórios Linux: o sticky bit. Com isto, só o root ou o dono de cada documento ou directório poderá apagar ou editar o documento ou directório.

# ls -l /home | grep DesenvolvimentoWeb

listagem de directórios, pasta partlhada DesenvolvimentoWeb.

Então vamos adicionar esta permissão especial na pasta partilhada DesenvolvimentoWeb:

# chmod +t /home/DesenvolvimentoWeb

# ls -l /home | grep DesenvolvimentoWeb

Comparando esta imagem com a imagem acima, pode-se verificar a existência de um T no final do grupo de permissões, o que indica que foi aplicada a permissão especial na pasta partilhada.

Adicionada a permissão especial: sticky bit

Vários posts foram aqui feitos nos quais foram abordados temas como criação de diretórios, permissões em ficheiros, criação de utilizadores e criação de grupos, entre outros. Neste ponto, considerei que seria interessante se houvesse um post onde colocaríamos em prática uma parte do que tem vindo a ser abordado neste Blog. No que foi aqui tratado usamos como exemplo um grupo de trabalho, mas o princípio pode ser aplicado a qualquer tipo de grupo, como por exemplo, um grupo familiar. Espero que tenhas desfrutado do laboratório. Obrigado pela visita.

Voltar para o início da página

Sem comentários:

Enviar um comentário