5111 – Ex02
Objetivos:
- Mapeamento de partilhas de rede com protocolo CIFS
- Criação de credenciais para CIFS e MOUNT
- Mapeamentos permanentes em FSTAB
Considerando as partilhas criadas anteriormente, e atualizadas, segundo a tabela:

Tenha atenção que existe uma diferença entre essa tabela e a anterior, nessa tabela a user marta faz parte do grupo IT, por isso a adicione ao grupo IT com o comando sudo usermod -aG it marta.
Vamos começar por adicionar um novo disco de 1GB e formatá-lo com esquema de partições GPT, com uma partição para cada partilha.
Para isso use o comando sudo fdisk /dev/<sdn>, onde <sdn> indica qual é o disco a ser formatado.

Para criar uma tabela de partições GPT use o comando g.

Agora é hora de criar as partições, para isso use o comando n, depois disso será necessário indicar o número da partição, que pode ser de 1 a 128, o fdisk as cria em ordem crescente por definição, por isso nesse caso não há problemas em aceitar a opção padrão, depois disso será pedido para selecionar o primeiro setor da partição.
Cada setor contém 512 bytes, as opções são os setores entre o primeiro setor disponível, que no caso da primeira partição é o setor 2048, e o último, que nesse caso é o setor 2,097,118, o que dá um total de 2,095,070 setores, que dá um total de quase 1023MB ao todo.
Selecione o primeiro setor, 2048 nesse caso, o próximo argumento irá definir o tamanho da partição, isso pode ser feito de diferentes maneiras, selecionando diretamente o número do último setor, adicionando/removendo setores ou adicionando/removendo tamanho em K,M,G,T e P bytes, como quero criar partições de tamanho idêntico irei trabalhar diretamente com setores aqui, e como pretendo criar 5 partições, cada uma delas terá um tamanho de 419,014 setores, nesse caso o próximo argumento será +419013 (termina em 3 porque serão adicionados setores, e já selecionamos o primeiro, portanto se usar +1 a partição ficaria com 2 setores), depois disso a partição foi criada.

Agora é só criar o resto das partições, tendo apenas atenção na hora de escolher o primeiro setor, já que por definição o fdisk não seleciona o próximo setor livre, mas sim alguns setores mais adiante, por isso é preciso selecionar manualmente o setor disponível mais baixo.

Na imagem acima pode ver que o primeiro setor selecionado foi o primeiro disponível, que fica em torno de 800 setores atrás do setor padrão escolhido para essa partição pelo fdisk.
Seguindo esse padrão é só criar o resto das partições.

Na imagem acima podemos ver as 5 partições criadas, agora só falta gravar essa tabela de partições, para isso é só usar o comando w, e depois disso, se utilizarmos o comando lsblk /dev/<sdn> podemos ver o disco com suas 5 partições de tamanho idêntico.

Agora é preciso as formatar, elas serão formatadas como ext4, para isso iremos usar o comando sudo mkfs.ext4 /dev/<sdnx> -L <label>, onde sdnx indica a partição (ex: sde1, sde2) e label é o nome a ser dado a partição.

Depois é só repetir o procedimento para o resto das partições.
E aqui podemos ver as 5 partições.

Com as partições já criadas está na hora de as montar, para isso é preciso primeiro criar os diretórios onde serão montadas, que nesse caso ficarão dentro de /mnt/hddextra/.

Com os mounting points já criados é hora de editar o arquivo /etc/fstab para que as partições sejam montadas automaticamente durante o boot.
Existem três maneiras de selecionar a partição, uma é pelo UUID, outra é selecionando o seu node em /dev, e outra é utilizando seu rótulo, ou label, no caso de usar o UUID, a partição, caso esteja presente no sistema, será sempre montada, independentemente de o disco em que estar ter mudado de sdb para sdc, por exemplo, o que não é o caso se usar seu node em /dev, e o mesmo pode acontecer caso referencie o label, já que esse pode ser alterado, por isso o modo preferencial é identificar as partições pelo seu UUID.

Na imagem acima podemos ver como o disco que acabamos de formatar mudou sua localização de /dev/sde para /dev/sdd, enquanto seus UUIDs continuam os mesmos, isso faria com que partições montadas usando esses identificadores não sejam montadas através do fstab.

Na imagem acima podemos ver as entradas das 5 partições no fstab sendo referenciadas pelos seus UUIDs.
Depois de adicionar as novas entradas no fstab é hora de montar essas partições, para isso é só usar o comando sudo mount -a, que irá montar todas as entradas do fstab.

Com as partições já montadas podemos mudar o dono e grupo dos mounting points para melhor os identificar, para isso é só usar o comando sudo chown <user>:<group>.

Agora é preciso alterar a configuração do samba para apontar as partilhas para suas novas localizações, para isso é só abrir o arquivo de configuração em /etc/samba/smb.conf e navegar até as definições das partilhas.

Com o path de cada partilha alterado para apontar para suas novas localizações, e o user marta adicionado à lista de permissão de escrita da partilha IT, o próximo passo é instalar o CIFS no cliente, para isso é só usar o comando sudo apt install cifs-utils, depois disso já será possível montar localmente as partilhas.
Iremos montar as partilhas da seguinte maneira:
- COMERCIAL -> /mnt/COMERCIAL
- IT -> /mnt/IT
- ADMINISTRACAO -> /mnt/admin/ADMINISTRACAO
Vamos primeiro fazer um mapeamento manual das duas primeiras partilhas com autenticação do user marta, e com as credenciais em um arquivo protegido, para evitar colocar credenciais de acesso em locais visíveis.
Para isso é preciso primeiro criar o arquivo com as credenciais, para isso é só criar um novo documento de texto simples com pelo menos dois argumentos, username= e password=, no caso do user marta deve ficar assim:
username=marta password=Passw0rd
Certifique-se de que esse arquivo com as credenciais pertence ao user e grupo root e mude as permissões para 440, depois mova-o para uma pasta segura, como a pasta /root, por exemplo.

Agora está na hora de montar essas pastas, para isso é só usar o comando sudo mount -t cifs -o credentials=<arquivo de credenciais>,rw,uid=<uid do user local>,gid=<gid do user local>,dir_mode=0770 <endereço remoto da partilha> <ponto de montagem>

Como podemos ver, as pastas COMERCIAL e IT, que foram criadas como root agora pertencem ao user e grupo pedro, já que o uid e gid desse user e grupo foram usados como argumentos na hora de mapear a partilha remota.
Vamos agora fazer alguns testes.

Como podemos ver, no cliente, arquivos criados aparecem como pertencendo ao user local que foi identificado na hora de criar o mapeamento.

Enquanto isso no servidor, esses mesmos arquivos aparecem como pertencendo ao user marta, que foi usado na autenticação.
Vamos agora fazer a mesma coisa mas para a partilha ADMINISTRACAO nos autenticando com o user filipa, crie outro arquivo com as credenciais desse user, da mesma maneira que foi feita anteriormente.

Novamente iremos testar essa partilha.

Novamente, o arquivo criado aparece no cliente como pertencendo ao user local identificado na hora do mapeamento.

Enquanto no servidor pertence ao user que foi usado na hora de fazer a autenticação da ligação.
Vamos agora transformar esse mapeamento em um mapeamento permanente editando o arquivo /etc/fstab, mas primeiro vamos “desmontar” essa partilha usando o comando sudo umount /mnt/hddextra/ADMINISTRACAO, depois disso vamos criar um novo arquivo com credenciais, mas dessa vez para o user mariana, que é o outro user que tem permissões de acesso à essa partilha, crie esse arquivo da mesma maneira que foi feita anteriormente, depois disso abra o fstab.

Com isso, se usarmos o comando sudo mount -a iremos mapear a partilha ADMINSTRACAO em /mnt/ADMINISTRACAO automaticamente, e sempre que o sistema for iniciado ela será mapeada automaticamente.



E como podemos ver, funciona perfeitamente da mesma maneira que as partilhas mapeadas manualmente.